Repository navigation
fix(helm): isolate collector pod selectors (ALIEN-1082) - #785
lilienblum merged 9 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
This comment has been minimized.
This comment has been minimized.
f89f890 to
b167839
Compare
|
@greptile review |
|
@greptile review |
Collector Pods carried their receiver's name and instance labels. The receiver Deployment and Service selected them, and runtime collectors also matched its PDB and NetworkPolicy. Lifecycle hook Pods had the same runtime label overlap.
Give collectors their own name label and lifecycle hook Pods a separate name label. Preserve both receiver Deployment selectors. Rename only collector DaemonSets with
v2so a normal Helm upgrade creates the replacement DaemonSet and deletes the old one instead of patching an immutable selector. Collector ConfigMap, ServiceAccount and RBAC names remain stable, as do the component labels. When switching to podApi, the chart supplies both the original and replacement DaemonSet names, and the Operator waits for either DaemonSet and its remaining Pods to disappear. This also works for offline Helm rendering. Use the matching Operator image for that transition. Replacement collectors read retained log files again because their buffers are ephemeral.The Rust CI job also restores the eight-job Cargo build limit after two runners lost communication during workspace compilation at the twelve-job limit. This reduces compiler/linker memory pressure while preserving the workspace build, test filter and runtime test concurrency.
Selector audit:
Validation:
cargo test -p alien-helm --locked: 77 tests pass, including offline nodeAgent-to-podApi rendering for both collector paths. Rendered selector isolation covers both collector paths, hook Jobs, PDB, NetworkPolicy, metrics-server and custom runtime names equal to auxiliary workload names, and a 63-character fullname override. Duplicate resource identities are rejected. Reintroducing the original overlap makes the regression test fail.INSTA_UPDATE=always cargo test -p alien-helm --locked.cargo clippy -p alien-helm -p alien-operator --locked --lib --no-deps, formatting and diff checks pass with existing Clippy warnings.cargo test -p alien-operator --locked --lib pod_logs::tests: all four tests pass. Kubernetes API tests exercise both collector generations, terminating Pods after DaemonSet deletion, unrelated releases, and denied API access. Pod API collection remains blocked while either collector generation exists; failed reads do not authorize cutover.All tests passedcheck is green.ALIEN-1082