fix(control-room): drop bogus LBC image tag and CR IAM permissions boundary - #357
Conversation
…undary - aws-lbc: omit values.image.tag unless an explicit image tag is given, so the chart supplies its own default image (a chart-version string was being injected as an image tag, causing ImagePullBackOff). Remove the dead aws_lbc_version config field/default. - control-room EKS: pass an empty IAM permissions boundary, matching Python and live state; the CR admin identity cannot call iam:PutRolePermissionsBoundary. Builder omits the boundary when empty. - Add regression tests: TestCRAwsLbcImageTag, TestAWSClusterDeployNoPermissionsBoundary.
# Conflicts: # lib/types/controlroom.go
|
Claude finished @stevenolen's task in 1m 12s —— View job Review
Both fixes are correct and well-scoped. The code does what the description says. A few observations: LBC image tag fix ( The conditional guard is the right approach: if version != "" {
values["image"] = pulumi.Map{"tag": pulumi.String(version)}
}This is a clean, minimal change. The existing test Permissions boundary fix ( Straightforward: passing
One nit worth flagging: the test accepts roles where
Removing Overall Both fixes are clearly correct, the regression tests are well-targeted, and the PR description accurately reflects the changes. No blocking issues. |
Description
Two related fixes for the control-room
clusterstep's EKS deploy, both surfaced when running the first Go-based apply on a control room.Code Flow
aws-load-balancer-controller image tag.
WithAwsLbc(version, chartVersion)was always settingvalues.image.tagfrom the config default, which was a chart-version string, not a real controller image tag. That produced a non-existent image andImagePullBackOff. Now:WithAwsLbconly setsvalues.image.tagwhen a non-empty explicit image tag is passed; otherwise the key is omitted and the chart supplies its own default image.clusterstep callsWithAwsLbc("", "")(no image-tag pin, latest chart), matching the prior Python behavior.aws_lbc_versionconfig field and its default accessor are removed.Control-room IAM permissions boundary. The step unconditionally set a
PositTeamDedicatedAdminpermissions boundary on the control-room EKS cluster/node/IRSA roles. The prior Python control-room path set none, the live roles carry none, and the control-room admin identity cannot calliam:PutRolePermissionsBoundary, so the first Go apply failed withAccessDenied. The step now passes an empty boundary; the builder already guards each role withif boundary != "", so this is a no-op diff against live state.Regression tests added:
TestCRAwsLbcImageTag,TestAWSClusterDeployNoPermissionsBoundary.Category of change
Checklist