OCPBUGS-115159: aws: provision dedicated IAM resources for edge compute pool - #10836
OCPBUGS-115159: aws: provision dedicated IAM resources for edge compute pool#10836tthvo wants to merge 2 commits into
Conversation
The installer only creates IAM resources for the control-plane and worker pool while the edge (local/wavelength zone) pool has none and re-uses the those of worker nodes. This introduces a few problems: - If an IAM role is specified for edge pool, it is ignored. - If an IAM role is specified for worker pool, it's also applied to edge pool unexpectedly. - If an IAM instance profile is specified for worker pool, the edge pool references a non-existing default worker profile since the installer doesn't create one.
Worker and edge machine sets both derived the default instance profile name from a hard-coded "-worker-profile" suffix. Use the pool role so edge machine sets reference the edge instance profile instead of pointing to the worker profile.
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
@tthvo: This pull request references Jira Issue OCPBUGS-115159, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review. 📝 WalkthroughWalkthroughAWS machine sets now generate IAM profiles from the cluster and machine role. AWS IAM provisioning now processes all configured compute pools and supports edge-specific policies, profiles, and roles. ChangesAWS IAM role and profile support
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to The change gives edge compute pools dedicated IAM resources while preserving custom instance-profile behavior, and no actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 14 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (14 passed)
Full details: Stable And Deterministic Test NamesExplanation The pull request adds and changes only static table-test names in Full details: Test Structure And QualityExplanation PASS. The pull request changes a standard Go Full details: Microshift Test CompatibilityExplanation PASS — The pull request adds no new Ginkgo e2e tests. The changed test uses Go's Full details: Single Node Openshift (Sno) Test CompatibilityExplanation PASS: The pull request adds no Ginkgo e2e tests. The only test change is a standard Go Full details: Topology-Aware Scheduling CompatibilityExplanation PASS — The pull request changes AWS IAM role/profile selection and default profile names. It does not add or modify deployment manifests, operator scheduling logic, pod affinity, topology spread constraints, PDBs, replica calculations, or control-plane/worker node selectors. The existing MachineSet worker and edge labels, taints, and replica distribution are unchanged in the PR diff. Therefore, no topology-unaware scheduling constraint is introduced. Full details: Ote Binary Stdout ContractExplanation PASS: The PR adds no process-level stdout writes. Added production code uses Full details: Ipv6 And Disconnected Network Test CompatibilityExplanation PASS: The PR adds no new Ginkgo e2e tests. The only changed test file uses Go Full details: No-Weak-CryptoExplanation The pull request does not introduce weak cryptography or custom cryptographic code. The four changed Go files only add role-specific IAM profile and policy handling. Added-line analysis found no MD5, SHA1, RC4, Blowfish, ECB, encryption, or secret/token comparisons. The apparent DES matches are AWS API names such as Full details: Container-PrivilegesExplanation PASS: The pull request changes only Go IAM and machine-set logic plus tests. The two-commit diff adds no Kubernetes/container manifest and no Full details: No-Sensitive-Data-In-LogsExplanation No sensitive-data logging was introduced. The pull request adds no log calls or log arguments; it only changes IAM profile selection and expands existing IAM reconciliation to edge pools. The existing debug message logs an IAM instance-profile name, which is an infrastructure identifier, not a password, token, API key, PII, session ID, hostname, or customer payload.
✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Some tools did not complete. Review the errors below. 🔧 golangci-lint (2.12.2)Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions Comment |
|
@tthvo: This pull request references Jira Issue OCPBUGS-115159, which is valid. 3 validation(s) were run on this bug
DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/test e2e-aws-ovn e2e-aws-default-config |
|
/test aws-private e2e-aws-default-config |
|
/pipeline required |
|
Scheduling tests matching the |
|
/test e2e-aws-ovn-edge-zones These e2es failed because no preferred instance type was found for the selected zones. However, they previously passed with the same commit for other local/wavelength zones. This is expected as some zones have limited capacity and we also randomize zone selection in CI. |
|
@tthvo: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Description
The installer only creates IAM resources for the control-plane and worker pool while the edge (local/wavelength zone) pool has none and re-uses the those of worker nodes.
This introduces a few problems:
This PR configures the installer to create dedicated IAM resources for edge pool. When a custom instance profile is defined, that profile continues to be utilized as before.
Summary by CodeRabbit