Skip to content

fix(security): run self-managed images and bootstrap workloads as non-root #2071

Description

@sbaum1994

Problem

Self-managed NVCF needs its distributed containers and generated worker init containers to run as non-root by default. OCI image metadata and Kubernetes security contexts are separate controls: a pod can run as non-root while its image still has an unset Config.User and is reported as root by an image scanner.

The NVCF scope includes core service images, dependencies, and helper images used by the current self-managed stack. The Cassandra runtime and migration path was hardened in #1712.

Out of scope

The following images appear in the source inventory but are not owned by NVCF and are not built or distributed by this repository's self-managed stack:

  • ddcs-dist-kv
  • gxcache-service
  • gxcache-webhook
  • gxcache-init
  • streaming-proxy

This issue does not require changes to these images.

Implementation plan

Acceptance criteria

  • Every NVCF-owned released image in scope declares a numeric non-root OCI user, and its rendered workload explicitly uses a compatible non-root security context.
  • Generated worker init containers can read configuration and write required shared files without root privileges.
  • Cassandra migration hooks remain non-root.
  • Both Helmfile topologies render and install successfully, including relevant migration and bootstrap hooks.
  • Image metadata and runtime execution are verified separately against released digests.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions