Tag Azure resources with UID

This commit is contained in:
katexochen 2022-08-29 11:55:46 +02:00 committed by Paul Meyer
parent 69abe17c96
commit 1861dc2744
5 changed files with 74 additions and 25 deletions

View File

@ -14,6 +14,7 @@ func (c *Client) CreateApplicationInsight(ctx context.Context) error {
Properties: &armapplicationinsights.ComponentProperties{ Properties: &armapplicationinsights.ComponentProperties{
ApplicationType: to.Ptr(armapplicationinsights.ApplicationTypeWeb), ApplicationType: to.Ptr(armapplicationinsights.ApplicationTypeWeb),
}, },
Tags: map[string]*string{"uid": to.Ptr(c.uid)},
} }
_, err := c.applicationInsightsAPI.CreateOrUpdate( _, err := c.applicationInsightsAPI.CreateOrUpdate(

View File

@ -113,6 +113,7 @@ func (c *Client) createScaleSet(ctx context.Context, input CreateScaleSetInput)
scaleSet := azure.ScaleSet{ scaleSet := azure.ScaleSet{
Name: input.Name, Name: input.Name,
NamePrefix: input.NamePrefix, NamePrefix: input.NamePrefix,
UID: c.uid,
Location: c.location, Location: c.location,
InstanceType: input.InstanceType, InstanceType: input.InstanceType,
StateDiskSizeGB: input.StateDiskSizeGB, StateDiskSizeGB: input.StateDiskSizeGB,

View File

@ -40,6 +40,7 @@ func (c *Client) CreateVirtualNetwork(ctx context.Context) error {
ctx, c.resourceGroup, createNetworkInput.name, ctx, c.resourceGroup, createNetworkInput.name,
armnetwork.VirtualNetwork{ armnetwork.VirtualNetwork{
Name: to.Ptr(createNetworkInput.name), // this is supposed to be read-only Name: to.Ptr(createNetworkInput.name), // this is supposed to be read-only
Tags: map[string]*string{"uid": to.Ptr(c.uid)},
Location: to.Ptr(createNetworkInput.location), Location: to.Ptr(createNetworkInput.location),
Properties: &armnetwork.VirtualNetworkPropertiesFormat{ Properties: &armnetwork.VirtualNetworkPropertiesFormat{
AddressSpace: &armnetwork.AddressSpace{ AddressSpace: &armnetwork.AddressSpace{
@ -101,6 +102,7 @@ func (c *Client) CreateSecurityGroup(ctx context.Context, input NetworkSecurityG
ctx, c.resourceGroup, createNetworkSecurityGroupInput.name, ctx, c.resourceGroup, createNetworkSecurityGroupInput.name,
armnetwork.SecurityGroup{ armnetwork.SecurityGroup{
Name: to.Ptr(createNetworkSecurityGroupInput.name), Name: to.Ptr(createNetworkSecurityGroupInput.name),
Tags: map[string]*string{"uid": to.Ptr(c.uid)},
Location: to.Ptr(createNetworkSecurityGroupInput.location), Location: to.Ptr(createNetworkSecurityGroupInput.location),
Properties: &armnetwork.SecurityGroupPropertiesFormat{ Properties: &armnetwork.SecurityGroupPropertiesFormat{
SecurityRules: createNetworkSecurityGroupInput.rules, SecurityRules: createNetworkSecurityGroupInput.rules,
@ -125,6 +127,7 @@ func (c *Client) createPublicIPAddress(ctx context.Context, name string) (*armne
poller, err := c.publicIPAddressesAPI.BeginCreateOrUpdate( poller, err := c.publicIPAddressesAPI.BeginCreateOrUpdate(
ctx, c.resourceGroup, name, ctx, c.resourceGroup, name,
armnetwork.PublicIPAddress{ armnetwork.PublicIPAddress{
Tags: map[string]*string{"uid": to.Ptr(c.uid)},
Location: to.Ptr(c.location), Location: to.Ptr(c.location),
SKU: &armnetwork.PublicIPAddressSKU{ SKU: &armnetwork.PublicIPAddressSKU{
Name: to.Ptr(armnetwork.PublicIPAddressSKUNameStandard), Name: to.Ptr(armnetwork.PublicIPAddressSKUNameStandard),

View File

@ -47,15 +47,9 @@ func (l LoadBalancer) Azure() armnetwork.LoadBalancer {
}, },
}, },
BackendAddressPools: []*armnetwork.BackendAddressPool{ BackendAddressPools: []*armnetwork.BackendAddressPool{
{ {Name: to.Ptr(backEndAddressPoolNodeName)},
Name: to.Ptr(backEndAddressPoolNodeName), {Name: to.Ptr(backEndAddressPoolControlPlaneName)},
}, {Name: to.Ptr("all")},
{
Name: to.Ptr(backEndAddressPoolControlPlaneName),
},
{
Name: to.Ptr("all"),
},
}, },
Probes: []*armnetwork.Probe{ Probes: []*armnetwork.Probe{
{ {
@ -92,18 +86,27 @@ func (l LoadBalancer) Azure() armnetwork.LoadBalancer {
Name: to.Ptr("kubeLoadBalancerRule"), Name: to.Ptr("kubeLoadBalancerRule"),
Properties: &armnetwork.LoadBalancingRulePropertiesFormat{ Properties: &armnetwork.LoadBalancingRulePropertiesFormat{
FrontendIPConfiguration: &armnetwork.SubResource{ FrontendIPConfiguration: &armnetwork.SubResource{
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/frontendIPConfigurations/" + frontEndIPConfigName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/frontendIPConfigurations/" + frontEndIPConfigName),
}, },
FrontendPort: to.Ptr[int32](constants.KubernetesPort), FrontendPort: to.Ptr[int32](constants.KubernetesPort),
BackendPort: to.Ptr[int32](constants.KubernetesPort), BackendPort: to.Ptr[int32](constants.KubernetesPort),
Protocol: to.Ptr(armnetwork.TransportProtocolTCP), Protocol: to.Ptr(armnetwork.TransportProtocolTCP),
Probe: &armnetwork.SubResource{ Probe: &armnetwork.SubResource{
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/probes/" + kubeHealthProbeName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/probes/" + kubeHealthProbeName),
}, },
DisableOutboundSnat: to.Ptr(true), DisableOutboundSnat: to.Ptr(true),
BackendAddressPools: []*armnetwork.SubResource{ BackendAddressPools: []*armnetwork.SubResource{
{ {
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/backendAddressPools/" + backEndAddressPoolControlPlaneName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/backendAddressPools/" + backEndAddressPoolControlPlaneName),
}, },
}, },
}, },
@ -112,18 +115,27 @@ func (l LoadBalancer) Azure() armnetwork.LoadBalancer {
Name: to.Ptr("verifyLoadBalancerRule"), Name: to.Ptr("verifyLoadBalancerRule"),
Properties: &armnetwork.LoadBalancingRulePropertiesFormat{ Properties: &armnetwork.LoadBalancingRulePropertiesFormat{
FrontendIPConfiguration: &armnetwork.SubResource{ FrontendIPConfiguration: &armnetwork.SubResource{
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/frontendIPConfigurations/" + frontEndIPConfigName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/frontendIPConfigurations/" + frontEndIPConfigName),
}, },
FrontendPort: to.Ptr[int32](constants.VerifyServiceNodePortGRPC), FrontendPort: to.Ptr[int32](constants.VerifyServiceNodePortGRPC),
BackendPort: to.Ptr[int32](constants.VerifyServiceNodePortGRPC), BackendPort: to.Ptr[int32](constants.VerifyServiceNodePortGRPC),
Protocol: to.Ptr(armnetwork.TransportProtocolTCP), Protocol: to.Ptr(armnetwork.TransportProtocolTCP),
Probe: &armnetwork.SubResource{ Probe: &armnetwork.SubResource{
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/probes/" + verifyHealthProbeName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/probes/" + verifyHealthProbeName),
}, },
DisableOutboundSnat: to.Ptr(true), DisableOutboundSnat: to.Ptr(true),
BackendAddressPools: []*armnetwork.SubResource{ BackendAddressPools: []*armnetwork.SubResource{
{ {
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/backendAddressPools/" + backEndAddressPoolControlPlaneName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/backendAddressPools/" + backEndAddressPoolControlPlaneName),
}, },
}, },
}, },
@ -132,18 +144,27 @@ func (l LoadBalancer) Azure() armnetwork.LoadBalancer {
Name: to.Ptr("coordLoadBalancerRule"), Name: to.Ptr("coordLoadBalancerRule"),
Properties: &armnetwork.LoadBalancingRulePropertiesFormat{ Properties: &armnetwork.LoadBalancingRulePropertiesFormat{
FrontendIPConfiguration: &armnetwork.SubResource{ FrontendIPConfiguration: &armnetwork.SubResource{
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/frontendIPConfigurations/" + frontEndIPConfigName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/frontendIPConfigurations/" + frontEndIPConfigName),
}, },
FrontendPort: to.Ptr[int32](constants.BootstrapperPort), FrontendPort: to.Ptr[int32](constants.BootstrapperPort),
BackendPort: to.Ptr[int32](constants.BootstrapperPort), BackendPort: to.Ptr[int32](constants.BootstrapperPort),
Protocol: to.Ptr(armnetwork.TransportProtocolTCP), Protocol: to.Ptr(armnetwork.TransportProtocolTCP),
Probe: &armnetwork.SubResource{ Probe: &armnetwork.SubResource{
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/probes/" + coordHealthProbeName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/probes/" + coordHealthProbeName),
}, },
DisableOutboundSnat: to.Ptr(true), DisableOutboundSnat: to.Ptr(true),
BackendAddressPools: []*armnetwork.SubResource{ BackendAddressPools: []*armnetwork.SubResource{
{ {
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/backendAddressPools/" + backEndAddressPoolControlPlaneName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/backendAddressPools/" + backEndAddressPoolControlPlaneName),
}, },
}, },
}, },
@ -152,18 +173,27 @@ func (l LoadBalancer) Azure() armnetwork.LoadBalancer {
Name: to.Ptr("debudLoadBalancerRule"), Name: to.Ptr("debudLoadBalancerRule"),
Properties: &armnetwork.LoadBalancingRulePropertiesFormat{ Properties: &armnetwork.LoadBalancingRulePropertiesFormat{
FrontendIPConfiguration: &armnetwork.SubResource{ FrontendIPConfiguration: &armnetwork.SubResource{
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/frontendIPConfigurations/" + frontEndIPConfigName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/frontendIPConfigurations/" + frontEndIPConfigName),
}, },
FrontendPort: to.Ptr[int32](constants.DebugdPort), FrontendPort: to.Ptr[int32](constants.DebugdPort),
BackendPort: to.Ptr[int32](constants.DebugdPort), BackendPort: to.Ptr[int32](constants.DebugdPort),
Protocol: to.Ptr(armnetwork.TransportProtocolTCP), Protocol: to.Ptr(armnetwork.TransportProtocolTCP),
Probe: &armnetwork.SubResource{ Probe: &armnetwork.SubResource{
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/probes/" + debugdHealthProbeName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/probes/" + debugdHealthProbeName),
}, },
DisableOutboundSnat: to.Ptr(true), DisableOutboundSnat: to.Ptr(true),
BackendAddressPools: []*armnetwork.SubResource{ BackendAddressPools: []*armnetwork.SubResource{
{ {
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/backendAddressPools/" + backEndAddressPoolControlPlaneName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/backendAddressPools/" + backEndAddressPoolControlPlaneName),
}, },
}, },
}, },
@ -175,11 +205,17 @@ func (l LoadBalancer) Azure() armnetwork.LoadBalancer {
Properties: &armnetwork.OutboundRulePropertiesFormat{ Properties: &armnetwork.OutboundRulePropertiesFormat{
FrontendIPConfigurations: []*armnetwork.SubResource{ FrontendIPConfigurations: []*armnetwork.SubResource{
{ {
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/frontendIPConfigurations/" + frontEndIPConfigName), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/frontendIPConfigurations/" + frontEndIPConfigName),
}, },
}, },
BackendAddressPool: &armnetwork.SubResource{ BackendAddressPool: &armnetwork.SubResource{
ID: to.Ptr("/subscriptions/" + l.Subscription + "/resourceGroups/" + l.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + l.Name + "/backendAddressPools/all"), ID: to.Ptr("/subscriptions/" + l.Subscription +
"/resourceGroups/" + l.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + l.Name +
"/backendAddressPools/all"),
}, },
Protocol: to.Ptr(armnetwork.LoadBalancerOutboundRuleProtocolAll), Protocol: to.Ptr(armnetwork.LoadBalancerOutboundRuleProtocolAll),
}, },

View File

@ -13,6 +13,7 @@ import (
type ScaleSet struct { type ScaleSet struct {
Name string Name string
NamePrefix string NamePrefix string
UID string
Subscription string Subscription string
ResourceGroup string ResourceGroup string
Location string Location string
@ -101,10 +102,16 @@ func (s ScaleSet) Azure() armcomputev2.VirtualMachineScaleSet {
}, },
LoadBalancerBackendAddressPools: []*armcomputev2.SubResource{ LoadBalancerBackendAddressPools: []*armcomputev2.SubResource{
{ {
ID: to.Ptr("/subscriptions/" + s.Subscription + "/resourcegroups/" + s.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + s.LoadBalancerName + "/backendAddressPools/" + s.LoadBalancerBackendAddressPool), ID: to.Ptr("/subscriptions/" + s.Subscription +
"/resourcegroups/" + s.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + s.LoadBalancerName +
"/backendAddressPools/" + s.LoadBalancerBackendAddressPool),
}, },
{ {
ID: to.Ptr("/subscriptions/" + s.Subscription + "/resourcegroups/" + s.ResourceGroup + "/providers/Microsoft.Network/loadBalancers/" + s.LoadBalancerName + "/backendAddressPools/all"), ID: to.Ptr("/subscriptions/" + s.Subscription +
"/resourcegroups/" + s.ResourceGroup +
"/providers/Microsoft.Network/loadBalancers/" + s.LoadBalancerName +
"/backendAddressPools/all"),
}, },
}, },
}, },
@ -134,6 +141,7 @@ func (s ScaleSet) Azure() armcomputev2.VirtualMachineScaleSet {
s.UserAssignedIdentity: {}, s.UserAssignedIdentity: {},
}, },
}, },
Tags: map[string]*string{"uid": to.Ptr(s.UID)},
} }
} }