Skip to content

A container with all of the tools I need to manage my GitOps setup.

License

Notifications You must be signed in to change notification settings

mirceanton/gitops-toolkit

Repository files navigation

GitOps Toolkit

GitOps Toolkit is a Docker image that contains a collection of tools necessary for me to manage my GitOps infrastructure. This image is designed to simplify the setup and management of a development environment for infrastructure as code (IaC), Kubernetes management, secret encryption, and other related tasks.

Tools Included

Tool/Dependency Version
Terraform 1.9.8
Tflint v0.54.0
Sops v3.9.1
Age v1.2.0
Age Keygen V1.2.0
Flux v2.4.0
Tfctl v0.16.0
Kubectl 1.31.2
Kubectl Switch v2.0.0
K9S v0.32.6
Helm v3.13.3
Kustomize v5.4.3
Stern 1.31.0
Kubecolor v0.4.0
Talosctl v1.8.3
Talswitcher v1.1.2
Talhelper v3.0.10
Taskfile v3.38.0
Bitwarden Cli 2024.8.1
Minio Cli RELEASE.2024
yamllint 1.35.1
jq 1.8.0
yq 3.4.3

UseCase

This image is mainly intended to be the base for DevContainer setups (hence the devcontainers/python base image) or to be the base image for CI runs.

Sample DevContainer Configuration

Here is an example of a devcontainer configuration using this image.

{
  "name": "GitOps Toolkit",
  "image": "ghcr.io/mirceanton/gitops-toolkit:latest",
  "containerEnv": {
    "KUBECONFIG": "/home/vscode/.kube/config",
    "KUBECONFIG_DIR": "/home/vscode/.kube/configs/",
    "TALOSCONFIG": "/home/vscode/.talos/config",
    "TALOSCONFIG_DIR": "/home/vscode/.talos/configs/"
  },
  "mounts": [
    "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached",
    "source=${localEnv:HOME}${localEnv:USERPROFILE}/.age.key,target=${containerWorkspaceFolder}/.age.key,type=bind,consistency=cached",
    "source=${localEnv:HOME}${localEnv:USERPROFILE}/.kube/,target=/home/vscode/.kube/,type=bind,consistency=cached",
    "source=${localEnv:HOME}${localEnv:USERPROFILE}/.talos/,target=/home/vscode/.talos/,type=bind,consistency=cached"
  ],
  "remoteUser": "vscode",
  "containerUser": "vscode",
  "updateRemoteUserUID": true
}

License

This project is licensed under the MIT License - see the LICENSE file for details.