The purpose of this skeleton is to establish a consistent version of tools for server configurations, whether for a standalone instance or a managed Kubernetes cluster.
Depending on the environment created, select the necessary components and adjusts the configurations accordingly.
- Pull or build container image.
- List of local directories that will be mounted in the dev container.
- Enable VSCode extensions depending of tools used.
ms-vscode-remote.remote-containers
Instead of using the built image, it can be built locally and the devcontainer configuration file (.devcontainer/devcontainer.json
) needs to be modified to replace the key image
with the code below:
"build": {
"dockerfile": "Dockerfile",
"context": ".",
"args": {
"UBUNTU_VERSION": "22.04",
"UBUNTU_CODENAME": "jammy",
"AGE_VERSION": "1.1.1",
"ANSIBLE_LINT_VERSION": "6.22.1",
"AWSCLI_VERSION": "2.13.37",
"HELM_VERSION": "3.13.2",
"HELMFILE_VERSION": "0.159.0",
"KREW_VERSION": "0.4.4",
"KUBECTL_VERSION": "1.28.4",
"SOPS_VERSION": "3.8.1",
"TERRAFORM_VERSION": "1.6.6",
"TFLINT_VERSION": "0.49.0"
}
},
- /var/run/docker.sock
- ${HOME}/.config/git
- ${HOME}/.ssh
- ${HOME}/.kube
- ${HOME}/.sops
- ${HOME}/.aws
When opening the project in VSCode, you will be prompted to open it in a container based on the configuration file .devcontainer/devcontainer.json
.
To initialize the project after it's opened in a container, there are several tasks that need to be executed. These tasks are predefined in the file .vscode/tasks.json
. To run them, navigate to Terminal > Run Task...
in the menu, and then select the appropriate tasks.