Skip to content

Commit 91882d5

Browse files
CORS-2890: aws/machines: add CAPI sg, subnet filters (openshift#8006)
* aws/machines: add CAPI sg, subnet filters Adds filters to the machine api machinesets so they will recognize CAPI-created security groups and subnets. Adds these filters in addition to the Terraform-specific filters, which should be subsequently removed. * fixup! aws/machines: add CAPI sg, subnet filters
1 parent bf70447 commit 91882d5

File tree

1 file changed

+50
-15
lines changed

1 file changed

+50
-15
lines changed

pkg/asset/machines/aws/machines.go

Lines changed: 50 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,15 @@ func Machines(clusterID string, region string, subnets map[string]string, pool *
111111
}
112112
if subnet == "" {
113113
domain.Subnet.Type = machinev1.AWSFiltersReferenceType
114-
domain.Subnet.Filters = &[]machinev1.AWSResourceFilter{{
115-
Name: "tag:Name",
116-
Values: []string{fmt.Sprintf("%s-private-%s", clusterID, zone)},
117-
}}
114+
domain.Subnet.Filters = &[]machinev1.AWSResourceFilter{
115+
{
116+
Name: "tag:Name",
117+
Values: []string{
118+
fmt.Sprintf("%s-private-%s", clusterID, zone), // legacy Terraform config, TODO remove
119+
fmt.Sprintf("%s-subnet-private-%s", clusterID, zone),
120+
},
121+
},
122+
}
118123
} else {
119124
domain.Subnet.Type = machinev1.AWSIDReferenceType
120125
domain.Subnet.ID = pointer.String(subnet)
@@ -178,12 +183,35 @@ func provider(in *machineProviderInput) (*machineapi.AWSMachineProviderConfig, e
178183
return nil, errors.Wrap(err, "failed to create machineapi.TagSpecifications from UserTags")
179184
}
180185

181-
securityGroups := []machineapi.AWSResourceReference{{
182-
Filters: []machineapi.Filter{{
186+
sgFilters := []machineapi.Filter{
187+
{
183188
Name: "tag:Name",
184-
Values: []string{fmt.Sprintf("%s-%s-sg", in.clusterID, in.role)},
185-
}},
186-
}}
189+
Values: []string{fmt.Sprintf("%s-%s-sg", in.clusterID, in.role)}, // legacy Terraform config, remove with Terraform
190+
},
191+
{
192+
Name: "tag:Name",
193+
Values: []string{fmt.Sprintf("%s-node", in.clusterID)},
194+
},
195+
{
196+
Name: "tag:Name",
197+
Values: []string{fmt.Sprintf("%s-lb", in.clusterID)},
198+
},
199+
}
200+
201+
if in.role == "master" {
202+
cpFilter := machineapi.Filter{
203+
Name: "tag:Name",
204+
Values: []string{fmt.Sprintf("%s-controlplane", in.clusterID)},
205+
}
206+
sgFilters = append(sgFilters, cpFilter)
207+
}
208+
209+
securityGroups := []machineapi.AWSResourceReference{}
210+
for _, filter := range sgFilters {
211+
securityGroups = append(securityGroups, machineapi.AWSResourceReference{
212+
Filters: []machineapi.Filter{filter},
213+
})
214+
}
187215
securityGroupsIn := []machineapi.AWSResourceReference{}
188216
for _, sgID := range in.securityGroupIDs {
189217
sgID := sgID
@@ -223,17 +251,24 @@ func provider(in *machineProviderInput) (*machineapi.AWSMachineProviderConfig, e
223251
SecurityGroups: securityGroups,
224252
}
225253

226-
subnetName := fmt.Sprintf("%s-private-%s", in.clusterID, in.zone)
254+
visibility := "private"
227255
if in.publicSubnet {
228256
config.PublicIP = pointer.Bool(in.publicSubnet)
229-
subnetName = fmt.Sprintf("%s-public-%s", in.clusterID, in.zone)
257+
visibility = "public"
258+
}
259+
260+
subnetFilters := []machineapi.Filter{
261+
{
262+
Name: "tag:Name",
263+
Values: []string{
264+
fmt.Sprintf("%s-%s-%s", in.clusterID, visibility, in.zone),
265+
fmt.Sprintf("%s-subnet-%s-%s", in.clusterID, visibility, in.zone), // legacy Terraform config, remove with Terraform
266+
},
267+
},
230268
}
231269

232270
if in.subnet == "" {
233-
config.Subnet.Filters = []machineapi.Filter{{
234-
Name: "tag:Name",
235-
Values: []string{subnetName},
236-
}}
271+
config.Subnet.Filters = subnetFilters
237272
} else {
238273
config.Subnet.ID = pointer.String(in.subnet)
239274
}

0 commit comments

Comments
 (0)