Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-empty diff due to case sensitivity #1572

Open
t0yv0 opened this issue Dec 28, 2023 · 0 comments
Open

Non-empty diff due to case sensitivity #1572

t0yv0 opened this issue Dec 28, 2023 · 0 comments
Labels
bug/diff kind/bug related to Pulumi generating wrong diffs on preview or up. kind/bug Some behavior is incorrect or out of spec

Comments

@t0yv0
Copy link
Member

t0yv0 commented Dec 28, 2023

What happened?

Getting diffs of the following form on repeat pulumi up:

protocol: "Tcp" => "tcp"

The program is part of the example set (load balancer example). Note that the source casing is "tcp" but something must be normalizing it inconsistently.

import * as azure from "@pulumi/azure";
import * as pulumi from "@pulumi/pulumi";

const resourceGroup = new azure.core.ResourceGroup("resourcegroup");

const storageaccount = new azure.storage.Account("storageaccount", {
    resourceGroupName: resourceGroup.name,
    accountTier: "standard",
    accountReplicationType: "LRS",
});

const avset = new azure.compute.AvailabilitySet("avset", {
    resourceGroupName: resourceGroup.name,
    platformFaultDomainCount: 2,
    platformUpdateDomainCount: 2,
    managed: true,
});

const lbpip = new azure.network.PublicIp("lbpip", {
    resourceGroupName: resourceGroup.name,
    allocationMethod: "Dynamic",
    domainNameLabel: `${pulumi.getStack()}`,
});

const vnet = new azure.network.VirtualNetwork("vnet", {
    resourceGroupName: resourceGroup.name,
    addressSpaces: ["10.0.0.0/16"],
    subnets: [{
        name: "default",
        addressPrefix: "10.0.1.0/24",
    }],
});

const lb = new azure.lb.LoadBalancer("lb", {
    resourceGroupName: resourceGroup.name,
    frontendIpConfigurations: [{
        name: "LoadBalancerFrontEnd",
        publicIpAddressId: lbpip.id,
    }],
});

const backendPool = new azure.lb.BackendAddressPool("backendPool", {
    loadbalancerId: lb.id,
});

const tcp = new azure.lb.NatRule("tcp", {
    resourceGroupName: resourceGroup.name,
    loadbalancerId: lb.id,
    protocol: "tcp",
    frontendPort: 5000,
    backendPort: 3389,
    frontendIpConfigurationName: "LoadBalancerFrontEnd",
});

const lbprobe = new azure.lb.Probe("lbprobe", {
    loadbalancerId: lb.id,
    protocol: "tcp",
    port: 80,
    intervalInSeconds: 5,
    numberOfProbes: 2,
});

const lbrule = new azure.lb.Rule("lbrule", {
    loadbalancerId: lb.id,
    protocol: "tcp",
    frontendPort: 80,
    backendPort: 80,
    frontendIpConfigurationName: "LoadBalancerFrontEnd",
    enableFloatingIp: true,
    backendAddressPoolIds: [backendPool.id],
    idleTimeoutInMinutes: 5,
    probeId: lbprobe.id,
});

const networkinterface = new azure.network.NetworkInterface("networkinterface", {
    resourceGroupName: resourceGroup.name,
    ipConfigurations: [
        {
            name: "ipconfig",
            subnetId: vnet.subnets[0].id,
            privateIpAddressAllocation: "Dynamic",
        },
    ],
});

const backendPoolAssociation = new azure.network.NetworkInterfaceBackendAddressPoolAssociation("pool-association", {
    backendAddressPoolId: backendPool.id,
    networkInterfaceId: networkinterface.id,
    ipConfigurationName: networkinterface.ipConfigurations[0].name,
});

const natRuleAssociation = new azure.network.NetworkInterfaceNatRuleAssociation("nat-rule-association", {
    networkInterfaceId: networkinterface.id,
    ipConfigurationName: networkinterface.ipConfigurations[0].name,
    natRuleId: tcp.id,
});

const vm = new azure.compute.VirtualMachine("vm", {
    resourceGroupName: resourceGroup.name,
    availabilitySetId: avset.id,
    vmSize: "Standard_D1_v2",
    networkInterfaceIds: [networkinterface.id],
    deleteDataDisksOnTermination: true,
    deleteOsDiskOnTermination: true,
    storageImageReference: {
        publisher: "MicrosoftWindowsServer",
        offer: "WindowsServer",
        sku: "2012-R2-Datacenter",
        version: "latest",
    },
    osProfileWindowsConfig: {},
    storageOsDisk: {
        name: "osdisk",
        createOption: "FromImage",
    },
    osProfile: {
        computerName: "hostname",
        adminUsername: "testadmin",
        adminPassword: "Password1234!",
    },
});

Example

See above.

Output of pulumi about

CLI
Version 3.97.0
Go Version go1.21.4
Go Compiler gc

Plugins
NAME VERSION
nodejs unknown

Host
OS darwin
Version 14.1.1
Arch x86_64

This project is written in nodejs: executable='/Users/t0yv0/bin/node' version='v18.18.2'

Current Stack: t0yv0/loadbalancer/loadbalancerchecks

TYPE URN
pulumi:pulumi:Stack urn:pulumi:loadbalancerchecks::loadbalancer::pulumi:pulumi:Stack::loadbalancer-loadbalancerchecks
pulumi:providers:azure urn:pulumi:loadbalancerchecks::loadbalancer::pulumi:providers:azure::default_5_61_0_alpha_1703713941_4df0901e
azure:core/resourceGroup:ResourceGroup urn:pulumi:loadbalancerchecks::loadbalancer::azure:core/resourceGroup:ResourceGroup::resourcegroup
azure:compute/availabilitySet:AvailabilitySet urn:pulumi:loadbalancerchecks::loadbalancer::azure:compute/availabilitySet:AvailabilitySet::avset
azure:network/virtualNetwork:VirtualNetwork urn:pulumi:loadbalancerchecks::loadbalancer::azure:network/virtualNetwork:VirtualNetwork::vnet
azure:network/publicIp:PublicIp urn:pulumi:loadbalancerchecks::loadbalancer::azure:network/publicIp:PublicIp::lbpip
azure:lb/loadBalancer:LoadBalancer urn:pulumi:loadbalancerchecks::loadbalancer::azure:lb/loadBalancer:LoadBalancer::lb
azure:lb/backendAddressPool:BackendAddressPool urn:pulumi:loadbalancerchecks::loadbalancer::azure:lb/backendAddressPool:BackendAddressPool::backendPool
azure:lb/probe:Probe urn:pulumi:loadbalancerchecks::loadbalancer::azure:lb/probe:Probe::lbprobe
azure:lb/natRule:NatRule urn:pulumi:loadbalancerchecks::loadbalancer::azure:lb/natRule:NatRule::tcp
azure:lb/rule:Rule urn:pulumi:loadbalancerchecks::loadbalancer::azure:lb/rule:Rule::lbrule
azure:network/networkInterface:NetworkInterface urn:pulumi:loadbalancerchecks::loadbalancer::azure:network/networkInterface:NetworkInterface::networkinterface
azure:network/networkInterfaceNatRuleAssociation:NetworkInterfaceNatRuleAssociation urn:pulumi:loadbalancerchecks::loadbalancer::azure:network/networkInterfaceNatRuleAssociation:NetworkInterfaceNatRuleAssociation::nat-rule-association
azure:network/networkInterfaceBackendAddressPoolAssociation:NetworkInterfaceBackendAddressPoolAssociation urn:pulumi:loadbalancerchecks::loadbalancer::azure:network/networkInterfaceBackendAddressPoolAssociation:NetworkInterfaceBackendAddressPoolAssociation::pool-association
azure:storage/account:Account urn:pulumi:loadbalancerchecks::loadbalancer::azure:storage/account:Account::storageaccount
azure:compute/virtualMachine:VirtualMachine urn:pulumi:loadbalancerchecks::loadbalancer::azure:compute/virtualMachine:VirtualMachine::vm

Found no pending operations associated with loadbalancerchecks

Backend
Name pulumi.com
URL https://app.pulumi.com/t0yv0
User t0yv0
Organizations t0yv0, pulumi
Token type personal

Pulumi locates its logs in /var/folders/gk/cchgxh512m72f_dmkcc3d09h0000gp/T/com.apple.shortcuts.mac-helper// by default

Additional context

N/A

Contributing

Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

@t0yv0 t0yv0 added kind/bug Some behavior is incorrect or out of spec needs-triage Needs attention from the triage team labels Dec 28, 2023
@iwahbe iwahbe added bug/diff kind/bug related to Pulumi generating wrong diffs on preview or up. and removed needs-triage Needs attention from the triage team labels Jan 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug/diff kind/bug related to Pulumi generating wrong diffs on preview or up. kind/bug Some behavior is incorrect or out of spec
Projects
None yet
Development

No branches or pull requests

2 participants