Skip to content

stackopshq/devcontainer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Infrastructure DevContainer

Image de développement pour l'Infrastructure as Code (IaC) du monorepo infrastructure. Construite sur Rocky Linux 10 (UBI) et publiée sur ghcr.io/stackopshq/devcontainer:latest.

🧰 Outils installés

Les versions sont alignées sur celles de .tasks.d/install/Taskfile.yml et du groupe ansible de pyproject.toml du repo infrastructure.

Catégorie Outil Version
Task runner Task v3.49.1
Runtime Node.js 22
Python uv + Python 0.11.3 / 3.13.9
Kubernetes kubectl v1.35.3
Kubernetes Helm v4.1.3
Kubernetes Kustomize v5.8.0
GitOps Flux 2.7.2
IaC OpenTofu v1.11.5
IaC Terraform v1.15.6
IaC terraform-docs v0.21.0
Secrets Vault (OpenBao-compatible) v1.21.4
Ansible ansible-core 2.20.7
Ansible ansible-lint 26.4.0
Ansible molecule (+ plugins) 26.4.0

Outils système : git, curl, jq, gnupg2, unzip/tar/xz, gcc, libffi/openssl/cairo-devel, vim, bind-utils, net-tools, bash-completion.

👤 Utilisateur

  • Par défaut : root — requis par les jobs CI GitLab qui écrivent dans l'arbre de build partagé (/builds/...).
  • VS Code Dev Container : devops (UID/GID 1000/1000, sudo sans mot de passe) via "containerUser" dans devcontainer.json.

📁 Structure

.
├── Containerfile                       # Définition de l'image
├── init.sh                             # Script d'installation des outils
├── devcontainer.json                   # Configuration VS Code Dev Containers
├── .github/workflows/                  # CI GitHub Actions (build + push GHCR)
└── README.md

🔨 Build local

podman build -t ghcr.io/stackopshq/devcontainer:latest -f Containerfile .

🚀 CI/CD (GitHub Actions)

.github/workflows/build-devcontainer.yml construit l'image et la pousse sur GHCR (ghcr.io/${{ github.repository }}).

Déclencheurs :

  • Push sur main/master si Containerfile/init.sh/le workflow changent.
  • Tag git v* → image taggée avec le tag (release versionnée).
  • Déclenchement manuel (workflow_dispatch).

Tags publiés : :latest, :sha-<short>, et :<git-tag> sur les tags git.

📥 Pull de l'image

podman pull ghcr.io/stackopshq/devcontainer:latest

Si le package GHCR est privé : podman login ghcr.io avec un PAT GitHub disposant du scope read:packages.

➕ Ajouter un outil

  1. Ajouter une fonction install_*() dans init.sh (avec un commentaire # renovate: pour épingler la version).
  2. Appeler la fonction depuis main().
  3. Reconstruire l'image.

About

DevContainer image for IaC (Ansible, OpenTofu/Terraform, Kubernetes, Vault)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors