Skip to content

Proposal: Support for Kubernetes/Podman POD as Alternatives to Docker Compose #672

@Hypnoes

Description

@Hypnoes

Summary

Propose extending devcontainer functionality to support using Kubernetes (kube.yaml/play.yaml) and Podman POD files for creating and managing pods, similar to how docker-compose files are used.

Motivation

  • Some users and development environments prefer or require using orchestrators like Kubernetes or Podman over Docker Compose.
  • Supporting kube.yaml/play.yaml files or Podman POD files would provide flexibility and expand the usability of devcontainers across more platforms and workflows.

Proposal

  • Allow devcontainers to be defined and managed via Kubernetes POD definition files (e.g., kube.yaml or play.yaml) as a direct alternative to docker-compose.
  • Enable the use of Podman POD files to create/manage multi-container setups.
  • Implement a mechanism so users can select which orchestrator/configuration (docker-compose, kube.yaml, play.yaml, Podman POD) a devcontainer should use, possibly via a configuration option.
  • Ensure integration with the existing devcontainers workflows, CLI, and VS Code experience for a seamless developer experience.

Benefits

  • Unlocks compatibility with more container orchestration platforms.
  • Provides flexibility for organizations already standardized on Kubernetes or Podman.
  • Makes devcontainers more future-proof as container/orchestrator technologies evolve.

Considerations / Open Questions

  • Are there feature differences or limitations between supported orchestrators that need to be addressed?
  • What changes would be needed in devcontainer.json to support this multi-orchestrator configuration?
  • What security or compatibility implications arise from supporting multiple orchestrators?

This proposal is intended to start a discussion about generalizing container orchestration support within devcontainers beyond the Docker Compose model.

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