This repository builds a Docker image whose container is a client for interacting with different cloud providers (IBM Cloud, AWS, Azure).
The container includes the following tools:
- bash
- terraform cli
- terragrunt cli
- kubectl cli
- oc cli
- git cli
- perl cli
- jq cli
- yq3 cli
- yq4 cli
- helm cli
- igc cli
- gitu cli
- kubeseal cli
- argocd cli
- kustomize cli
- htpasswd
Warning: The material contained in this repository has not been thoroughly tested. Proceed with caution.
To run this image, the following tools are required:
dockerclidockerbackend - Docker Desktop, colima, etc
Start the client to use it.
-
To run the
toolkitcontainer:docker run -itd --name toolkit quay.io/cloudnativetoolkit/cli-tools-core
Once the client is running in the background, use it by opening a shell in it.
-
To use the
toolkitcontainer, exec shell into it:docker exec -it toolkit /bin/bashYour terminal is now in the container.
Use this shell to run commands using the installed tools and scripts.
When you're finished running commands, to exit the client.
-
To leave the
toolkitcontainer shell, as with any shell:exitThe container will keep running after you exit its shell.
If the client stops:
-
To run the
toolkitcontainer again:docker start toolkit
The toolkit container is just a Docker container, so all Docker CLI commands work.
The build automation pushes the built container image to quay.io/cloudnativetoolkit/cli-tools-core
The floating image tags use the following convention:
latest- the latest alpine version of the image (currently terraform v1.2)alpine- the latest alpine version of the image (currently terraform v1.2)fedora- the latest fedora version of the image (currently terraform v1.2)v1.2- the latest alpine version of the image using terraform v1.2v1.1- the latest alpine version of the image using terraform v1.1v1.0- the latest alpine version of the image using terraform v1.0v1.2-alpine- the latest alpine version of the image using terraform v1.2v1.1-alpine- the latest alpine version of the image using terraform v1.1v1.0-alpine- the latest alpine version of the image using terraform v1.0v1.2-fedora- the latest fedora version of the image using terraform v1.2v1.1-fedora- the latest fedora version of the image using terraform v1.1v1.0-fedora- the latest fedora version of the image using terraform v1.0
Each release within the repository corresponds to a pinned image tag that will never be moved to another image. The pinned tags use the following naming convention:
{terraform version}-{release tag}-{base OS image}
where:
{terraform version}- is the major and minor version of the terraform cli (e.g. v1.1){release tag}- is the release tag for this repository (e.g. v1.0.0){base OS image}- is the base OS image (alpineorfedora)
For example:
v1.1-v1.0.0-alpine
The image can be used by referring to the image url. The following can be used to run the container image interactively:
docker run -it quay.io/cloudnativetoolkit/cli-tools-coreTo build the default image using the latest version of terraform on alpine, run the following:
docker build -t cli-tools-core .The terraform version can be changed by passing the TERRAFORM_VERSION as a build arg. For example:
docker build --build-arg TERRAFORM_VERSION=v1.1 -t cli-tools-core:v1.1 .The base OS can be changed by using the Dockerfile-fedora file. For example:
docker build -f Dockerfile-fedora -t cli-tools-core:fedora .