Helpful tools for CI all packaged up into a container
- Jsonnet 75%
- Dockerfile 25%
| .crow | ||
| .gitlab-ci.yml | ||
| Dockerfile | ||
| mise.lock | ||
| mise.toml | ||
| README.md | ||
| renovate.json | ||
CI Tools Image
This is a fairly basic container that installs a few specific tools needed to run Kubernetes related CI steps.
The tools are managed using mise and specified
in ./mise.toml. The container is built on every push.
Tools included:
kubectlfor communicating with the Kubernetes cluster via the CLI.go-jsonnetGoogle's semi-official Go implementationhelmfor fetching and deploying charts.jbfor managing jsonnet dependencies.tankafor compiling the jsonnet into Kubernetes manifests.sopsfor safely storing secrets in git repos.kustomizefor editing and creating Kustomization manifests.kubeconformfor validating Kubernetes manifests.fluxfor managing FluxCD related steps
Also installed using the package manager is git, ssh, and jq.
Building the container yourself
If you want to build it on your computer, do something like the following:
git clone "https://code.nogweii.net/ops/k8s/ci-tools-image.git"
cd ./ci-tools-image/
podman build -t ci-tools-image:latest .
Usage
For a Gitlab CI job:
tanka ci job example:
image: c.code.nogweii.net/ops/k8s/ci-tools-image:latest
stage: deploy
script:
- jb install
- tk export export-stuff --recursive environments/ --merge-strategy=replace-envs
cache:
key:
files:
- jsonnetfile.lock.json
paths:
- vendor/