From e7a642969526e695527e4133ebf73e9e8b49004b Mon Sep 17 00:00:00 2001 From: John Ratliff Date: Thu, 9 May 2024 09:57:47 +0000 Subject: [PATCH] add devcontainer for rke2 --- .devcontainer/rke2/Dockerfile | 26 ++++++++++++++ .devcontainer/rke2/devcontainer.json | 54 ++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 .devcontainer/rke2/Dockerfile create mode 100644 .devcontainer/rke2/devcontainer.json diff --git a/.devcontainer/rke2/Dockerfile b/.devcontainer/rke2/Dockerfile new file mode 100644 index 0000000..e435a03 --- /dev/null +++ b/.devcontainer/rke2/Dockerfile @@ -0,0 +1,26 @@ +FROM mcr.microsoft.com/devcontainers/python:1-3.12-bookworm + +# enable git bash completion +RUN ln -s /usr/share/bash-completion/completions/git /usr/share/bash-completion/bash_completion + +# install sshpass for ansible SSH password auth and vim just in case +RUN apt-get update && apt-get upgrade -y +RUN apt-get install -y sshpass vim +RUN apt-get clean + +# install ansible and ansible-lint +RUN python3 -m pip install ansible-core~=2.16.6 ansible-lint~=24.2.3 + +# create /workspace directory +WORKDIR /workspace +RUN chown -R vscode:vscode /workspace + +# run commands as non-root user +USER vscode + +# make prompt multiline cause it's too long by default +RUN sed -i -E -e '/PS1="\$/c\ PS1="${userpart} ${lightblue}\\w ${gitbranch}${removecolor}\\n\\$ "' ~/.bashrc + +# install collection requirements +COPY collections/requirements.yaml . +RUN ansible-galaxy collection install -r requirements.yaml diff --git a/.devcontainer/rke2/devcontainer.json b/.devcontainer/rke2/devcontainer.json new file mode 100644 index 0000000..da1a1f0 --- /dev/null +++ b/.devcontainer/rke2/devcontainer.json @@ -0,0 +1,54 @@ +{ + "name": "ansible-rke2", + "build": { + "dockerfile": "Dockerfile", + "context": "../../Ansible/Playbooks/RKE2" + }, + "mounts": ["source=${env:HOME}/.ssh,target=/home/vscode/.ssh,type=bind"], + + "customizations": { + "vscode": { + "extensions": [ + "bierner.markdown-preview-github-styles", + "DavidAnson.vscode-markdownlint", + "dhoeric.ansible-vault", + "eamodio.gitlens", + "esbenp.prettier-vscode", + "mhutchie.git-graph", + "ms-python.black-formatter", + "ms-python.flake8", + "ms-python.isort", + "oderwat.indent-rainbow", + "redhat.ansible", + "samuelcolvin.jinjahtml", + "tamasfe.even-better-toml", + "yzhang.markdown-all-in-one" + ], + "settings": { + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[jsonc]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[markdown]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[python]": { + "editor.codeActionsOnSave": { + "source.organizeImports": "explicit" + } + }, + "ansible.python.interpreterPath": "/usr/local/bin/python", + "ansibleVault.executable": "/home/vscode/venv/bin/ansible-vault", + "editor.formatOnSave": true, + "files.associations": { + "*.yaml": "ansible" + }, + "files.trimFinalNewlines": true, + "files.trimTrailingWhitespace": true, + "python.defaultInterpreterPath": "/usr/local/bin/python" + } + } + } +}