Repository navigation
feat(operator): Add explicit manifest workload security profiles - #381
Conversation
| Triage *ApplicationTriage `yaml:"triage,omitempty"` | ||
| // SecurityProfile opts this workload into security settings supported by | ||
| // newer server images. A nil or empty profile preserves legacy behavior. | ||
| SecurityProfile *WorkloadSecurityProfile `yaml:"securityProfile,omitempty"` |
There was a problem hiding this comment.
would it make sense to make this not be a pointer, since all the values within are pointers it would reduce the amount of nil checks needed, assuming that new values will be added within the struct those might always need explicit behaviors for nil values, it should reduce the complexity abit to remove the outer nil check.
|
I toggled both |
| image: | ||
| repository: us-docker.pkg.dev/wandb-production/public/wandb/megabinary | ||
| tag: 0.84.0-notifications-security-flags.1 | ||
| tag: 0.85.1-rc.1790791511 |
There was a problem hiding this comment.
🟡 Local development manifest lookup fails
The renamed fixture no longer matches the version in wandb-dev-v2. Loading that sample from file:///server-manifest fails because its requested version directory is gone.
Learn more
The checked-in wandb-dev-v2 custom resource selects a local, versioned server manifest. The fixture directory was renamed, but that custom resource still names the removed version. LoadManifestFromFile first searches for a matching version file, then a matching directory, and returns an error when neither exists. Local users applying the sample cannot reconcile the deployment.
Example: Apply wandb-dev-v2 with its existing file:///server-manifest repository. It requests 0.84.0-notifications-security-flags.1, but the fixture now exists only under 0.85.1-rc.1790791511, so manifest loading fails.
Recommended fix: Update the version in the checked-in wandb-dev-v2 sample to match the renamed fixture, or retain the old fixture alongside the new one if the sample must continue using the old version.
Was this helpful? React with 👍 or 👎 to provide feedback.
j7m4
left a comment
There was a problem hiding this comment.
Addressed issues raised and verified CIS intended support for 0.85.1 and 0.86.0-daily.14
Server images differ in whether they support non-root execution and a read-only
root filesystem. Add an explicit per-application and per-migration server-manifest
contract so Core can select compatible workloads without changing older releases
based on their version string.
securityProfile.runAsNonRootandsecurityProfile.readOnlyRootFilesystemareoptional booleans. Omitted/empty profiles preserve legacy rendering; explicit
falseis retained. Application profiles cover all containers and init containers.Migration profiles apply to newly created Jobs without restarting completed
migrations. No numeric pod identity is introduced.
Application fragments merge profile fields in filename order; later explicit
values win. Migration definitions retain their existing whole-entry replacement
semantics. Documentation includes examples, rollback behavior, and image/runtime
requirements. Current Watchtower triage fields and baseline contexts are preserved.
Validation:
fragments, sizing merge, version independence, single/multiple/init containers,
migration rendering, completed migrations, and stable reconciliation/rollback.
make testandmake buildpassed, including vet. Chart dependencies wereresolved locally; no Chart.lock or generated API changes.
definitions remain unprofiled; application rendering is unchanged across tested
server versions.
Test output
Selected excerpts from saved validation logs (not a complete log):