From 2a016e36cfa1023e8935de22af6aae11379bb5b5 Mon Sep 17 00:00:00 2001 From: Dominik Przybyl Date: Tue, 28 May 2024 18:58:29 +0200 Subject: [PATCH] Added devcontainer submodule --- .devcontainer/aws/Dockerfile | 28 ++ .devcontainer/aws/devcontainer.json | 328 ++++++++++++++++++++ .devcontainer/extra/Dockerfile | 1 + .devcontainer/extra/devcontainer.json | 328 ++++++++++++++++++++ .devcontainer/gcp/Dockerfile | 30 ++ .devcontainer/gcp/devcontainer.json | 328 ++++++++++++++++++++ .devcontainer/hugo/Dockerfile | 1 + .devcontainer/hugo/devcontainer.json | 326 ++++++++++++++++++++ .devcontainer/localstack/Dockerfile | 28 ++ .devcontainer/localstack/devcontainer.json | 329 +++++++++++++++++++++ .devcontainer/micro/Dockerfile | 1 + .devcontainer/micro/devcontainer.json | 277 +++++++++++++++++ .github/devcontainer | 1 + .gitmodules | 3 + 14 files changed, 2009 insertions(+) create mode 100644 .devcontainer/aws/Dockerfile create mode 100644 .devcontainer/aws/devcontainer.json create mode 100644 .devcontainer/extra/Dockerfile create mode 100644 .devcontainer/extra/devcontainer.json create mode 100644 .devcontainer/gcp/Dockerfile create mode 100644 .devcontainer/gcp/devcontainer.json create mode 100644 .devcontainer/hugo/Dockerfile create mode 100644 .devcontainer/hugo/devcontainer.json create mode 100644 .devcontainer/localstack/Dockerfile create mode 100644 .devcontainer/localstack/devcontainer.json create mode 100644 .devcontainer/micro/Dockerfile create mode 100644 .devcontainer/micro/devcontainer.json create mode 160000 .github/devcontainer diff --git a/.devcontainer/aws/Dockerfile b/.devcontainer/aws/Dockerfile new file mode 100644 index 0000000..8b0bedf --- /dev/null +++ b/.devcontainer/aws/Dockerfile @@ -0,0 +1,28 @@ +FROM ghcr.io/pulumi/devcontainer:extra + +################################################################################## +# Install AWS CLI v2 + +USER root +RUN echo \ + && export ARCH=$(uname -m | awk '{ if ($1 == "x86_64") print "x86_64"; else if ($1 == "aarch64" || $1 == "arm64") print "aarch64"; else print "unknown" }') \ + && export NAME="aws" \ + && export TEST="${NAME} --version" \ + && export PKG="awscli-exe-linux-${ARCH}.zip" \ + && export URL="https://awscli.amazonaws.com/${PKG}" \ + && export DIR="/tmp/awscli" \ + && echo "---------------------------------------------------------"\ + && echo "INFO[${NAME}] Installed:" \ + && echo "INFO[${NAME}] Command: ${NAME}" \ + && echo "INFO[${NAME}] Package: ${PKG}" \ + && echo "INFO[${NAME}] Architecture: ${ARCH}" \ + && echo "INFO[${NAME}] Source: ${URL}" \ + && echo "---------------------------------------------------------"\ + && mkdir -p ${DIR} \ + && ${curl} ${URL} --output ${DIR}/${PKG} \ + && unzip ${DIR}/${PKG} -d ${DIR} \ + && bash -c "${DIR}/aws/install" \ + && ${dir_clean} \ + && ${TEST} \ + && echo +USER vscode diff --git a/.devcontainer/aws/devcontainer.json b/.devcontainer/aws/devcontainer.json new file mode 100644 index 0000000..11630f5 --- /dev/null +++ b/.devcontainer/aws/devcontainer.json @@ -0,0 +1,328 @@ +{ + "name": "devcontainer-extra-gcp", + "remoteUser": "vscode", + "dockerFile": "Dockerfile", + "init": true, + "runArgs": [], + "privileged": true, + "overrideCommand": false, + "updateRemoteUserUID": true, + "shutdownAction": "stopContainer", + "securityOpt": ["seccomp=unconfined"], + "features": { + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {} + }, + "mounts": ["source=dind-var-lib-docker,target=/var/lib/docker,type=volume"], + "postCreateCommand": "devcontainer-links", + //"workspaceFolder": "/workspaces/devcontainer", + //"workspaceMount": "source=.,target=/home/vscode/devcontainer,type=bind,consistency=cached", + //"workspaceFolder": "/home/vscode/devcontainer", + "forwardPorts": [1313, 2222, 6000, 7681, 8080], + "customizations": { + "vscode": { + "settings": { + "telemetry.enableTelemetry": "off", + "initializeCommand": "echo 'Initializing...'", + "postCreateCommand": "echo 'Post create...'", + "postStartCommand": "echo 'Post start...'", + "postAttachCommand": "echo 'Post attach...'", + "window": { + "titleBarStyle": "custom", + "title": "${localWorkspaceFolderBasename}${separator}${containerName}${separator}${profileName}${separator}${activeEditorShort}" + }, + "search": { + "defaultViewMode": "list" + }, + "vim": { + "disableExtension": true, + "useSystemClipboard": true, + "useCtrlKeys": true, + "easymotion": true, + "incsearch": true, + "hlsearch": true, + "cursorStylePerMode": { + "normal": "block", + "insert": "line", + "visual": "underline", + "visualline": "underline", + "visualblock": "underline", + "replace": "block" + }, + "insertModeKeyBindings": [ + { + "before": ["j", "j"], + "after": [""] + } + ], + "handleKeys": { + "": false, + "": false + } + }, + "extensions.experimental.affinity": { + "vscodevim.vim": 1 + }, + "zenmode": { + "toggle": true, + "hideTabs": false, + "fullScreen": true, + "hideMinimap": true, + "centerLayout": false, + "hideStatusBar": false, + "hideActivityBar": false, + "hideLineNumbers": false, + "silentNotifications": true, + "hideLineDecorations": false, + "hideCursorInOverviewRuler": true + }, + "editor": { + "tabSize": 4, + "fontSize": 14, + "autoSave": "onFocusChange", + "wordWrap": "off", + "showTabs": true, + "showIcons": true, + "tabSizing": "shrink", + "lineHeight": 20, + "autoIndent": true, + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "tabScrolling": "auto", + //"tabFocusMode": false, + //"tabMovesFocus": false, + "tabCompletion": "on", + "tabDecoration": true, + "fontLigatures": true, + "enablePreview": true, + "startupEditor": "readme", + "tabCloseButton": "right", + "minimap.enabled": false, + "openPositioning": "right", + "restoreViewState": true, + "renderWhitespace": "all", + "suggestSelection": "first", + "closeOnFileDelete": true, + "autoClosingQuotes": "always", + "snippetSuggestions": "top", + "autoClosingBrackets": "always", + "tabHistoryNavigation": true, + "quickSuggestionsDelay": 50, + "autoImportCompletions": true, + "scrollBeyondLastLine": true, + "highlightModifiedTabs": true, + "inlineSuggest.enabled": true, + "parameterHints.enabled": true, + "trimTrailingWhitespace": true, + "lineHighlightBackground": "#30BFBF", + "highlightActiveIndentGuide": true, + "fontFamily": "'FiraMono Nerd Font Mono', monospace", + "gotoLocation": { + "multipleReferences": "goto", + "multipleDefinitions": "goto", + "multipleDeclarations": "goto", + "multipleImplementations": "goto", + "multipleTypeDefinitions": "goto" + }, + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "bracketPairColorization": { + "enabled": true + } + }, + "files": { + "encoding": "utf8", + "autoSave": "onFocusChange", + "trimFinalNewlines": true, + "insertFinalNewline": true, + "trimTrailingWhitespace": true + }, + "git": { + "enabled": true, + "autofetch": true, + "autoStash": true, + "autorefresh": true, + "gitProtocol": "https", + "ignoreSubmodules": true, + "enableSmartCommit": true, + "ignoreLegacyWarning": true, + "autoRepositoryDetection": "openEditors", + "defaultCloneParentDirectory": "/home/vscode", + "scanRepositories": ["/home/vscode", "/workspaces"], + "path": "/usr/local/bin/git" + }, + "github.copilot": { + "enable": { + "*": false, + "markdown": false, + "plaintext": false + } + }, + "go": { + "testTags": "all", + "vetOnSave": "off", + "buildTags": "all", + "lintOnSave": "off", + "testOnSave": "off", + "buildOnSave": "off", + "formatTool": "goimports", + "testEnvVars": { + "GOFLAGS": "-count=1" + }, + "generateTestsFlags": ["-count=1"] + }, + "terminal": { + "integrated": { + //"cwd": "/home/vscode/devcontainer", + "fontSize": 14, + "scrollback": 10000, + "cursorStyle": "outline", + "cursorBlinking": true, + "copyOnSelection": true, + "sendKeybindingsToShell": false, + "cursorStyleInactive": "line", + "fontFamily": "FiraMono Nerd Font Mono", + "commandsToSkipShell": [], + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "shell": { + "linux": "/usr/bin/bash" + } + } + }, + "vs-kubernetes": { + "vs-kubernetes.namespace": "*", + "vs-kubernetes.outputFormat": "yaml", + "vs-kubernetes.helm-path": "/usr/local/bin/helm", + "vs-kubernetes.kubeconfig": "/home/vscode/.kube/config", + "vs-kubernetes.kubectl-path": "/usr/local/bin/kubectl", + "vs-kubernetes.knownKubeconfigs": [ + "/workspaces/*/.kube/config", + "/home/vscode/*/.kube/config", + "/home/vscode/.kube/config" + ] + }, + "remote": { + "restoreForwardedPorts": true, + "localPortHost": "127.0.0.1" + }, + "2gua.rainbow-brackets": true, + "indentRainbow": { + "indicatorStyle": "light", + "colorOnWhiteSpaceOnly": true, + "lightIndicatorStyleLineWidth": 12, + "ignoreEmptyLines": true, + "errorColor": "rgba(255, 20, 147, 0.3)", // Bright Pink for errors + "tabmixColor": "rgba(128, 32, 96, 0.3)", // Purple for mixed tabs and spaces + "colors": [ + "rgba(50, 150, 250, 0.1)", // Bright Blue + "rgba(200, 50, 250, 0.1)", // Purple + "rgba(50, 250, 150, 0.1)", // Neon Green + "rgba(250, 50, 150, 0.1)", // Pink + "rgba(50, 200, 250, 0.1)", // Lighter Blue + "rgba(150, 50, 250, 0.1)", // Darker Purple + "rgba(50, 250, 200, 0.1)", // Brighter Green + "rgba(250, 150, 50, 0.1)" // Orange + ], + "ignoreErrorLanguages": [ + "haskell", + "markdown", + "plaintext", + "shellscript", + "dockerfile", + "plaintext" + ] + }, + "workbench": { + "colorTheme": "Cyberpunk", + "startupEditor": "readme", + "action.terminal.focusNext": { + "key": "ctrl+shift+down", + "mac": "cmd+shift+down" + } + }, + "autoOpenPreviewPanel.openPreviewToTheSide": false, + "explorer.openEditors.visible": 1, + "explorer": { + "openEditors": { + "visible": 1 + }, + "autoRevealExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/node_modules/**": true + }, + "autoReveal": true, + "sortOrder": "filesFirst" + } + }, + "[makefile]": { + "editor.insertSpaces": false, + "editor.renderWhitespace": "selection" + }, + "[yaml]": { + "editor": { + "trimTrailingWhitespace": true, + "insertFinalNewline": true, + "wordWrap": "off", + "lineNumbers": "relative", + "renderWhitespace": "all", + "autoSave": "onFocusChange", + "formatOnSave": true, + "insertSpaces": true, + "tabSize": 2, + "minimap.enabled": true, + "scrollBeyondLastLine": true, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "[markdown]": { + "editor": { + "tabSize": 4, + "wordWrap": "on", + "autoSave": "onFocusChange", + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "minimap.enabled": false, + "renderWhitespace": "all", + "insertFinalNewline": true, + "scrollBeyondLastLine": true, + "trimTrailingWhitespace": false, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "extensions": [ + "golang.go", + "vscodevim.vim", + "github.copilot", + "max-ss.cyberpunk", + "ms-python.python", + "redhat.vscode-yaml", + "esbenp.prettier-vscode", + "oderwat.indent-rainbow", + "okteto.kubernetes-context", + "ms-vsliveshare.vsliveshare", + "chadonsom.auto-view-readme", + "ms-azuretools.vscode-docker", + "github.vscode-github-actions", + "ms-kubernetes-tools.kind-vscode", + "ms-vscode.vscode-typescript-next", + "github.vscode-pull-request-github", + "matt-rudge.auto-open-preview-panel", + "ms-vscode-remote.remote-containers", + "ms-edgedevtools.vscode-edge-devtools", + "bierner.markdown-preview-github-styles", + "visualstudioexptteam.vscodeintellicode", + "bierner.markdown-preview-github-styles", + "ms-kubernetes-tools.vscode-kubernetes-tools" + ] + } + } +} diff --git a/.devcontainer/extra/Dockerfile b/.devcontainer/extra/Dockerfile new file mode 100644 index 0000000..eaac975 --- /dev/null +++ b/.devcontainer/extra/Dockerfile @@ -0,0 +1 @@ +FROM ghcr.io/pulumi/devcontainer:extra diff --git a/.devcontainer/extra/devcontainer.json b/.devcontainer/extra/devcontainer.json new file mode 100644 index 0000000..60fbcc3 --- /dev/null +++ b/.devcontainer/extra/devcontainer.json @@ -0,0 +1,328 @@ +{ + "name": "pulumi/devcontainer:extra", + "remoteUser": "vscode", + "dockerFile": "Dockerfile", + "init": true, + "runArgs": [], + "privileged": true, + "overrideCommand": false, + "updateRemoteUserUID": true, + "shutdownAction": "stopContainer", + "securityOpt": ["seccomp=unconfined"], + "features": { + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {} + }, + "mounts": ["source=dind-var-lib-docker,target=/var/lib/docker,type=volume"], + "postCreateCommand": "devcontainer-links", + //"workspaceFolder": "/workspaces/devcontainer", + //"workspaceMount": "source=.,target=/home/vscode/devcontainer,type=bind,consistency=cached", + //"workspaceFolder": "/home/vscode/devcontainer", + "forwardPorts": [1313, 2222, 6000, 7681, 8080], + "customizations": { + "vscode": { + "settings": { + "telemetry.enableTelemetry": "off", + "initializeCommand": "echo 'Initializing...'", + "postCreateCommand": "echo 'Post create...'", + "postStartCommand": "echo 'Post start...'", + "postAttachCommand": "echo 'Post attach...'", + "window": { + "titleBarStyle": "custom", + "title": "${localWorkspaceFolderBasename}${separator}${containerName}${separator}${profileName}${separator}${activeEditorShort}" + }, + "search": { + "defaultViewMode": "list" + }, + "vim": { + "disableExtension": true, + "useSystemClipboard": true, + "useCtrlKeys": true, + "easymotion": true, + "incsearch": true, + "hlsearch": true, + "cursorStylePerMode": { + "normal": "block", + "insert": "line", + "visual": "underline", + "visualline": "underline", + "visualblock": "underline", + "replace": "block" + }, + "insertModeKeyBindings": [ + { + "before": ["j", "j"], + "after": [""] + } + ], + "handleKeys": { + "": false, + "": false + } + }, + "extensions.experimental.affinity": { + "vscodevim.vim": 1 + }, + "zenmode": { + "toggle": true, + "hideTabs": false, + "fullScreen": true, + "hideMinimap": true, + "centerLayout": false, + "hideStatusBar": false, + "hideActivityBar": false, + "hideLineNumbers": false, + "silentNotifications": true, + "hideLineDecorations": false, + "hideCursorInOverviewRuler": true + }, + "editor": { + "tabSize": 4, + "fontSize": 14, + "autoSave": "onFocusChange", + "wordWrap": "off", + "showTabs": true, + "showIcons": true, + "tabSizing": "shrink", + "lineHeight": 20, + "autoIndent": true, + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "tabScrolling": "auto", + //"tabFocusMode": false, + //"tabMovesFocus": false, + "tabCompletion": "on", + "tabDecoration": true, + "fontLigatures": true, + "enablePreview": true, + "startupEditor": "readme", + "tabCloseButton": "right", + "minimap.enabled": false, + "openPositioning": "right", + "restoreViewState": true, + "renderWhitespace": "all", + "suggestSelection": "first", + "closeOnFileDelete": true, + "autoClosingQuotes": "always", + "snippetSuggestions": "top", + "autoClosingBrackets": "always", + "tabHistoryNavigation": true, + "quickSuggestionsDelay": 50, + "autoImportCompletions": true, + "scrollBeyondLastLine": true, + "highlightModifiedTabs": true, + "inlineSuggest.enabled": true, + "parameterHints.enabled": true, + "trimTrailingWhitespace": true, + "lineHighlightBackground": "#30BFBF", + "highlightActiveIndentGuide": true, + "fontFamily": "'FiraMono Nerd Font Mono', monospace", + "gotoLocation": { + "multipleReferences": "goto", + "multipleDefinitions": "goto", + "multipleDeclarations": "goto", + "multipleImplementations": "goto", + "multipleTypeDefinitions": "goto" + }, + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "bracketPairColorization": { + "enabled": true + } + }, + "files": { + "encoding": "utf8", + "autoSave": "onFocusChange", + "trimFinalNewlines": true, + "insertFinalNewline": true, + "trimTrailingWhitespace": true + }, + "git": { + "enabled": true, + "autofetch": true, + "autoStash": true, + "autorefresh": true, + "gitProtocol": "https", + "ignoreSubmodules": true, + "enableSmartCommit": true, + "ignoreLegacyWarning": true, + "autoRepositoryDetection": "openEditors", + "defaultCloneParentDirectory": "/home/vscode", + "scanRepositories": ["/home/vscode", "/workspaces"], + "path": "/usr/local/bin/git" + }, + "github.copilot": { + "enable": { + "*": false, + "markdown": false, + "plaintext": false + } + }, + "go": { + "testTags": "all", + "vetOnSave": "off", + "buildTags": "all", + "lintOnSave": "off", + "testOnSave": "off", + "buildOnSave": "off", + "formatTool": "goimports", + "testEnvVars": { + "GOFLAGS": "-count=1" + }, + "generateTestsFlags": ["-count=1"] + }, + "terminal": { + "integrated": { + //"cwd": "/home/vscode/devcontainer", + "fontSize": 14, + "scrollback": 10000, + "cursorStyle": "outline", + "cursorBlinking": true, + "copyOnSelection": true, + "sendKeybindingsToShell": false, + "cursorStyleInactive": "line", + "fontFamily": "FiraMono Nerd Font Mono", + "commandsToSkipShell": [], + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "shell": { + "linux": "/usr/bin/bash" + } + } + }, + "vs-kubernetes": { + "vs-kubernetes.namespace": "*", + "vs-kubernetes.outputFormat": "yaml", + "vs-kubernetes.helm-path": "/usr/local/bin/helm", + "vs-kubernetes.kubeconfig": "/home/vscode/.kube/config", + "vs-kubernetes.kubectl-path": "/usr/local/bin/kubectl", + "vs-kubernetes.knownKubeconfigs": [ + "/workspaces/*/.kube/config", + "/home/vscode/*/.kube/config", + "/home/vscode/.kube/config" + ] + }, + "remote": { + "restoreForwardedPorts": true, + "localPortHost": "127.0.0.1" + }, + "2gua.rainbow-brackets": true, + "indentRainbow": { + "indicatorStyle": "light", + "colorOnWhiteSpaceOnly": true, + "lightIndicatorStyleLineWidth": 12, + "ignoreEmptyLines": true, + "errorColor": "rgba(255, 20, 147, 0.3)", // Bright Pink for errors + "tabmixColor": "rgba(128, 32, 96, 0.3)", // Purple for mixed tabs and spaces + "colors": [ + "rgba(50, 150, 250, 0.1)", // Bright Blue + "rgba(200, 50, 250, 0.1)", // Purple + "rgba(50, 250, 150, 0.1)", // Neon Green + "rgba(250, 50, 150, 0.1)", // Pink + "rgba(50, 200, 250, 0.1)", // Lighter Blue + "rgba(150, 50, 250, 0.1)", // Darker Purple + "rgba(50, 250, 200, 0.1)", // Brighter Green + "rgba(250, 150, 50, 0.1)" // Orange + ], + "ignoreErrorLanguages": [ + "haskell", + "markdown", + "plaintext", + "shellscript", + "dockerfile", + "plaintext" + ] + }, + "workbench": { + "colorTheme": "Cyberpunk", + "startupEditor": "readme", + "action.terminal.focusNext": { + "key": "ctrl+shift+down", + "mac": "cmd+shift+down" + } + }, + "autoOpenPreviewPanel.openPreviewToTheSide": false, + "explorer.openEditors.visible": 1, + "explorer": { + "openEditors": { + "visible": 1 + }, + "autoRevealExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/node_modules/**": true + }, + "autoReveal": true, + "sortOrder": "filesFirst" + } + }, + "[makefile]": { + "editor.insertSpaces": false, + "editor.renderWhitespace": "selection" + }, + "[yaml]": { + "editor": { + "trimTrailingWhitespace": true, + "insertFinalNewline": true, + "wordWrap": "off", + "lineNumbers": "relative", + "renderWhitespace": "all", + "autoSave": "onFocusChange", + "formatOnSave": true, + "insertSpaces": true, + "tabSize": 2, + "minimap.enabled": true, + "scrollBeyondLastLine": true, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "[markdown]": { + "editor": { + "tabSize": 4, + "wordWrap": "on", + "autoSave": "onFocusChange", + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "minimap.enabled": false, + "renderWhitespace": "all", + "insertFinalNewline": true, + "scrollBeyondLastLine": true, + "trimTrailingWhitespace": false, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "extensions": [ + "golang.go", + "vscodevim.vim", + "github.copilot", + "max-ss.cyberpunk", + "ms-python.python", + "redhat.vscode-yaml", + "esbenp.prettier-vscode", + "oderwat.indent-rainbow", + "okteto.kubernetes-context", + "ms-vsliveshare.vsliveshare", + "chadonsom.auto-view-readme", + "ms-azuretools.vscode-docker", + "github.vscode-github-actions", + "ms-kubernetes-tools.kind-vscode", + "ms-vscode.vscode-typescript-next", + "github.vscode-pull-request-github", + "matt-rudge.auto-open-preview-panel", + "ms-vscode-remote.remote-containers", + "ms-edgedevtools.vscode-edge-devtools", + "bierner.markdown-preview-github-styles", + "visualstudioexptteam.vscodeintellicode", + "bierner.markdown-preview-github-styles", + "ms-kubernetes-tools.vscode-kubernetes-tools" + ] + } + } +} diff --git a/.devcontainer/gcp/Dockerfile b/.devcontainer/gcp/Dockerfile new file mode 100644 index 0000000..ce2a55e --- /dev/null +++ b/.devcontainer/gcp/Dockerfile @@ -0,0 +1,30 @@ +FROM ghcr.io/pulumi/devcontainer:extra + +################################################################################## +# Install Google Cloud SDK + +ENV CLOUDSDK_INSTALL_DIR /usr/local/gcloud/ +ENV PATH $PATH:/usr/local/gcloud/google-cloud-sdk/bin + +USER root +RUN echo \ + && export ARCH=$(uname -m | awk '{ if ($1 == "x86_64") print "amd64"; else if ($1 == "aarch64" || $1 == "arm64") print "arm64"; else print "unknown" }') \ + && export NAME="gcloud" \ + && export TEST="${NAME} version" \ + && export PKG="google-cloud-sdk.tar.gz" \ + && export URL="https://dl.google.com/dl/cloudsdk/release/${PKG}" \ + && export DIR="/usr/local/gcloud" \ + && echo "---------------------------------------------------------"\ + && echo "INFO[${NAME}] Installed:" \ + && echo "INFO[${NAME}] Command: ${NAME}" \ + && echo "INFO[${NAME}] Package: ${PKG}" \ + && echo "INFO[${NAME}] Architecture: ${ARCH}" \ + && echo "INFO[${NAME}] Source: ${URL}" \ + && echo "---------------------------------------------------------"\ + && mkdir -p ${DIR} \ + && ${curl} ${URL} | tar xzvf - --directory ${DIR} \ + && /usr/local/gcloud/google-cloud-sdk/install.sh -q \ + && ${dir_clean} \ + && ${TEST} \ + && echo +USER vscode \ No newline at end of file diff --git a/.devcontainer/gcp/devcontainer.json b/.devcontainer/gcp/devcontainer.json new file mode 100644 index 0000000..11630f5 --- /dev/null +++ b/.devcontainer/gcp/devcontainer.json @@ -0,0 +1,328 @@ +{ + "name": "devcontainer-extra-gcp", + "remoteUser": "vscode", + "dockerFile": "Dockerfile", + "init": true, + "runArgs": [], + "privileged": true, + "overrideCommand": false, + "updateRemoteUserUID": true, + "shutdownAction": "stopContainer", + "securityOpt": ["seccomp=unconfined"], + "features": { + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {} + }, + "mounts": ["source=dind-var-lib-docker,target=/var/lib/docker,type=volume"], + "postCreateCommand": "devcontainer-links", + //"workspaceFolder": "/workspaces/devcontainer", + //"workspaceMount": "source=.,target=/home/vscode/devcontainer,type=bind,consistency=cached", + //"workspaceFolder": "/home/vscode/devcontainer", + "forwardPorts": [1313, 2222, 6000, 7681, 8080], + "customizations": { + "vscode": { + "settings": { + "telemetry.enableTelemetry": "off", + "initializeCommand": "echo 'Initializing...'", + "postCreateCommand": "echo 'Post create...'", + "postStartCommand": "echo 'Post start...'", + "postAttachCommand": "echo 'Post attach...'", + "window": { + "titleBarStyle": "custom", + "title": "${localWorkspaceFolderBasename}${separator}${containerName}${separator}${profileName}${separator}${activeEditorShort}" + }, + "search": { + "defaultViewMode": "list" + }, + "vim": { + "disableExtension": true, + "useSystemClipboard": true, + "useCtrlKeys": true, + "easymotion": true, + "incsearch": true, + "hlsearch": true, + "cursorStylePerMode": { + "normal": "block", + "insert": "line", + "visual": "underline", + "visualline": "underline", + "visualblock": "underline", + "replace": "block" + }, + "insertModeKeyBindings": [ + { + "before": ["j", "j"], + "after": [""] + } + ], + "handleKeys": { + "": false, + "": false + } + }, + "extensions.experimental.affinity": { + "vscodevim.vim": 1 + }, + "zenmode": { + "toggle": true, + "hideTabs": false, + "fullScreen": true, + "hideMinimap": true, + "centerLayout": false, + "hideStatusBar": false, + "hideActivityBar": false, + "hideLineNumbers": false, + "silentNotifications": true, + "hideLineDecorations": false, + "hideCursorInOverviewRuler": true + }, + "editor": { + "tabSize": 4, + "fontSize": 14, + "autoSave": "onFocusChange", + "wordWrap": "off", + "showTabs": true, + "showIcons": true, + "tabSizing": "shrink", + "lineHeight": 20, + "autoIndent": true, + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "tabScrolling": "auto", + //"tabFocusMode": false, + //"tabMovesFocus": false, + "tabCompletion": "on", + "tabDecoration": true, + "fontLigatures": true, + "enablePreview": true, + "startupEditor": "readme", + "tabCloseButton": "right", + "minimap.enabled": false, + "openPositioning": "right", + "restoreViewState": true, + "renderWhitespace": "all", + "suggestSelection": "first", + "closeOnFileDelete": true, + "autoClosingQuotes": "always", + "snippetSuggestions": "top", + "autoClosingBrackets": "always", + "tabHistoryNavigation": true, + "quickSuggestionsDelay": 50, + "autoImportCompletions": true, + "scrollBeyondLastLine": true, + "highlightModifiedTabs": true, + "inlineSuggest.enabled": true, + "parameterHints.enabled": true, + "trimTrailingWhitespace": true, + "lineHighlightBackground": "#30BFBF", + "highlightActiveIndentGuide": true, + "fontFamily": "'FiraMono Nerd Font Mono', monospace", + "gotoLocation": { + "multipleReferences": "goto", + "multipleDefinitions": "goto", + "multipleDeclarations": "goto", + "multipleImplementations": "goto", + "multipleTypeDefinitions": "goto" + }, + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "bracketPairColorization": { + "enabled": true + } + }, + "files": { + "encoding": "utf8", + "autoSave": "onFocusChange", + "trimFinalNewlines": true, + "insertFinalNewline": true, + "trimTrailingWhitespace": true + }, + "git": { + "enabled": true, + "autofetch": true, + "autoStash": true, + "autorefresh": true, + "gitProtocol": "https", + "ignoreSubmodules": true, + "enableSmartCommit": true, + "ignoreLegacyWarning": true, + "autoRepositoryDetection": "openEditors", + "defaultCloneParentDirectory": "/home/vscode", + "scanRepositories": ["/home/vscode", "/workspaces"], + "path": "/usr/local/bin/git" + }, + "github.copilot": { + "enable": { + "*": false, + "markdown": false, + "plaintext": false + } + }, + "go": { + "testTags": "all", + "vetOnSave": "off", + "buildTags": "all", + "lintOnSave": "off", + "testOnSave": "off", + "buildOnSave": "off", + "formatTool": "goimports", + "testEnvVars": { + "GOFLAGS": "-count=1" + }, + "generateTestsFlags": ["-count=1"] + }, + "terminal": { + "integrated": { + //"cwd": "/home/vscode/devcontainer", + "fontSize": 14, + "scrollback": 10000, + "cursorStyle": "outline", + "cursorBlinking": true, + "copyOnSelection": true, + "sendKeybindingsToShell": false, + "cursorStyleInactive": "line", + "fontFamily": "FiraMono Nerd Font Mono", + "commandsToSkipShell": [], + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "shell": { + "linux": "/usr/bin/bash" + } + } + }, + "vs-kubernetes": { + "vs-kubernetes.namespace": "*", + "vs-kubernetes.outputFormat": "yaml", + "vs-kubernetes.helm-path": "/usr/local/bin/helm", + "vs-kubernetes.kubeconfig": "/home/vscode/.kube/config", + "vs-kubernetes.kubectl-path": "/usr/local/bin/kubectl", + "vs-kubernetes.knownKubeconfigs": [ + "/workspaces/*/.kube/config", + "/home/vscode/*/.kube/config", + "/home/vscode/.kube/config" + ] + }, + "remote": { + "restoreForwardedPorts": true, + "localPortHost": "127.0.0.1" + }, + "2gua.rainbow-brackets": true, + "indentRainbow": { + "indicatorStyle": "light", + "colorOnWhiteSpaceOnly": true, + "lightIndicatorStyleLineWidth": 12, + "ignoreEmptyLines": true, + "errorColor": "rgba(255, 20, 147, 0.3)", // Bright Pink for errors + "tabmixColor": "rgba(128, 32, 96, 0.3)", // Purple for mixed tabs and spaces + "colors": [ + "rgba(50, 150, 250, 0.1)", // Bright Blue + "rgba(200, 50, 250, 0.1)", // Purple + "rgba(50, 250, 150, 0.1)", // Neon Green + "rgba(250, 50, 150, 0.1)", // Pink + "rgba(50, 200, 250, 0.1)", // Lighter Blue + "rgba(150, 50, 250, 0.1)", // Darker Purple + "rgba(50, 250, 200, 0.1)", // Brighter Green + "rgba(250, 150, 50, 0.1)" // Orange + ], + "ignoreErrorLanguages": [ + "haskell", + "markdown", + "plaintext", + "shellscript", + "dockerfile", + "plaintext" + ] + }, + "workbench": { + "colorTheme": "Cyberpunk", + "startupEditor": "readme", + "action.terminal.focusNext": { + "key": "ctrl+shift+down", + "mac": "cmd+shift+down" + } + }, + "autoOpenPreviewPanel.openPreviewToTheSide": false, + "explorer.openEditors.visible": 1, + "explorer": { + "openEditors": { + "visible": 1 + }, + "autoRevealExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/node_modules/**": true + }, + "autoReveal": true, + "sortOrder": "filesFirst" + } + }, + "[makefile]": { + "editor.insertSpaces": false, + "editor.renderWhitespace": "selection" + }, + "[yaml]": { + "editor": { + "trimTrailingWhitespace": true, + "insertFinalNewline": true, + "wordWrap": "off", + "lineNumbers": "relative", + "renderWhitespace": "all", + "autoSave": "onFocusChange", + "formatOnSave": true, + "insertSpaces": true, + "tabSize": 2, + "minimap.enabled": true, + "scrollBeyondLastLine": true, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "[markdown]": { + "editor": { + "tabSize": 4, + "wordWrap": "on", + "autoSave": "onFocusChange", + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "minimap.enabled": false, + "renderWhitespace": "all", + "insertFinalNewline": true, + "scrollBeyondLastLine": true, + "trimTrailingWhitespace": false, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "extensions": [ + "golang.go", + "vscodevim.vim", + "github.copilot", + "max-ss.cyberpunk", + "ms-python.python", + "redhat.vscode-yaml", + "esbenp.prettier-vscode", + "oderwat.indent-rainbow", + "okteto.kubernetes-context", + "ms-vsliveshare.vsliveshare", + "chadonsom.auto-view-readme", + "ms-azuretools.vscode-docker", + "github.vscode-github-actions", + "ms-kubernetes-tools.kind-vscode", + "ms-vscode.vscode-typescript-next", + "github.vscode-pull-request-github", + "matt-rudge.auto-open-preview-panel", + "ms-vscode-remote.remote-containers", + "ms-edgedevtools.vscode-edge-devtools", + "bierner.markdown-preview-github-styles", + "visualstudioexptteam.vscodeintellicode", + "bierner.markdown-preview-github-styles", + "ms-kubernetes-tools.vscode-kubernetes-tools" + ] + } + } +} diff --git a/.devcontainer/hugo/Dockerfile b/.devcontainer/hugo/Dockerfile new file mode 100644 index 0000000..e2b6534 --- /dev/null +++ b/.devcontainer/hugo/Dockerfile @@ -0,0 +1 @@ +FROM ghcr.io/pulumi/devcontainer:hugo diff --git a/.devcontainer/hugo/devcontainer.json b/.devcontainer/hugo/devcontainer.json new file mode 100644 index 0000000..1093de0 --- /dev/null +++ b/.devcontainer/hugo/devcontainer.json @@ -0,0 +1,326 @@ +{ + "name": "pulumi/devcontainer:hugo", + "remoteUser": "vscode", + "dockerFile": "Dockerfile", + "init": true, + "runArgs": [], + "privileged": true, + "overrideCommand": false, + "updateRemoteUserUID": true, + "shutdownAction": "stopContainer", + "securityOpt": ["seccomp=unconfined"], + "features": {}, + "mounts": [], + "postCreateCommand": "devcontainer-links", + //"workspaceFolder": "/workspaces/devcontainer", + //"workspaceMount": "source=.,target=/home/vscode/devcontainer,type=bind,consistency=cached", + //"workspaceFolder": "/home/vscode/devcontainer", + "forwardPorts": [1313, 2222, 6000, 7681, 8080], + "customizations": { + "vscode": { + "settings": { + "telemetry.enableTelemetry": "off", + "initializeCommand": "echo 'Initializing...'", + "postCreateCommand": "echo 'Post create...'", + "postStartCommand": "echo 'Post start...'", + "postAttachCommand": "echo 'Post attach...'", + "window": { + "titleBarStyle": "custom", + "title": "${localWorkspaceFolderBasename}${separator}${containerName}${separator}${profileName}${separator}${activeEditorShort}" + }, + "search": { + "defaultViewMode": "list" + }, + "vim": { + "disableExtension": true, + "useSystemClipboard": true, + "useCtrlKeys": true, + "easymotion": true, + "incsearch": true, + "hlsearch": true, + "cursorStylePerMode": { + "normal": "block", + "insert": "line", + "visual": "underline", + "visualline": "underline", + "visualblock": "underline", + "replace": "block" + }, + "insertModeKeyBindings": [ + { + "before": ["j", "j"], + "after": [""] + } + ], + "handleKeys": { + "": false, + "": false + } + }, + "extensions.experimental.affinity": { + "vscodevim.vim": 1 + }, + "zenmode": { + "toggle": true, + "hideTabs": false, + "fullScreen": true, + "hideMinimap": true, + "centerLayout": false, + "hideStatusBar": false, + "hideActivityBar": false, + "hideLineNumbers": false, + "silentNotifications": true, + "hideLineDecorations": false, + "hideCursorInOverviewRuler": true + }, + "editor": { + "tabSize": 4, + "fontSize": 14, + "autoSave": "onFocusChange", + "wordWrap": "off", + "showTabs": true, + "showIcons": true, + "tabSizing": "shrink", + "lineHeight": 20, + "autoIndent": true, + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "tabScrolling": "auto", + //"tabFocusMode": false, + //"tabMovesFocus": false, + "tabCompletion": "on", + "tabDecoration": true, + "fontLigatures": true, + "enablePreview": true, + "startupEditor": "readme", + "tabCloseButton": "right", + "minimap.enabled": false, + "openPositioning": "right", + "restoreViewState": true, + "renderWhitespace": "all", + "suggestSelection": "first", + "closeOnFileDelete": true, + "autoClosingQuotes": "always", + "snippetSuggestions": "top", + "autoClosingBrackets": "always", + "tabHistoryNavigation": true, + "quickSuggestionsDelay": 50, + "autoImportCompletions": true, + "scrollBeyondLastLine": true, + "highlightModifiedTabs": true, + "inlineSuggest.enabled": true, + "parameterHints.enabled": true, + "trimTrailingWhitespace": true, + "lineHighlightBackground": "#30BFBF", + "highlightActiveIndentGuide": true, + "fontFamily": "'FiraMono Nerd Font Mono', monospace", + "gotoLocation": { + "multipleReferences": "goto", + "multipleDefinitions": "goto", + "multipleDeclarations": "goto", + "multipleImplementations": "goto", + "multipleTypeDefinitions": "goto" + }, + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "bracketPairColorization": { + "enabled": true + } + }, + "files": { + "encoding": "utf8", + "autoSave": "onFocusChange", + "trimFinalNewlines": true, + "insertFinalNewline": true, + "trimTrailingWhitespace": true + }, + "git": { + "enabled": true, + "autofetch": true, + "autoStash": true, + "autorefresh": true, + "gitProtocol": "https", + "ignoreSubmodules": true, + "enableSmartCommit": true, + "ignoreLegacyWarning": true, + "autoRepositoryDetection": "openEditors", + "defaultCloneParentDirectory": "/home/vscode", + "scanRepositories": ["/home/vscode", "/workspaces"], + "path": "/usr/local/bin/git" + }, + "github.copilot": { + "enable": { + "*": false, + "markdown": false, + "plaintext": false + } + }, + "go": { + "testTags": "all", + "vetOnSave": "off", + "buildTags": "all", + "lintOnSave": "off", + "testOnSave": "off", + "buildOnSave": "off", + "formatTool": "goimports", + "testEnvVars": { + "GOFLAGS": "-count=1" + }, + "generateTestsFlags": ["-count=1"] + }, + "terminal": { + "integrated": { + //"cwd": "/home/vscode/devcontainer", + "fontSize": 14, + "scrollback": 10000, + "cursorStyle": "outline", + "cursorBlinking": true, + "copyOnSelection": true, + "sendKeybindingsToShell": false, + "cursorStyleInactive": "line", + "fontFamily": "FiraMono Nerd Font Mono", + "commandsToSkipShell": [], + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "shell": { + "linux": "/usr/bin/bash" + } + } + }, + "vs-kubernetes": { + "vs-kubernetes.namespace": "*", + "vs-kubernetes.outputFormat": "yaml", + "vs-kubernetes.helm-path": "/usr/local/bin/helm", + "vs-kubernetes.kubeconfig": "/home/vscode/.kube/config", + "vs-kubernetes.kubectl-path": "/usr/local/bin/kubectl", + "vs-kubernetes.knownKubeconfigs": [ + "/workspaces/*/.kube/config", + "/home/vscode/*/.kube/config", + "/home/vscode/.kube/config" + ] + }, + "remote": { + "restoreForwardedPorts": true, + "localPortHost": "127.0.0.1" + }, + "2gua.rainbow-brackets": true, + "indentRainbow": { + "indicatorStyle": "light", + "colorOnWhiteSpaceOnly": true, + "lightIndicatorStyleLineWidth": 12, + "ignoreEmptyLines": true, + "errorColor": "rgba(255, 20, 147, 0.3)", + "tabmixColor": "rgba(128, 32, 96, 0.3)", + "colors": [ + "rgba(50, 150, 250, 0.1)", + "rgba(200, 50, 250, 0.1)", + "rgba(50, 250, 150, 0.1)", + "rgba(250, 50, 150, 0.1)", + "rgba(50, 200, 250, 0.1)", + "rgba(150, 50, 250, 0.1)", + "rgba(50, 250, 200, 0.1)", + "rgba(250, 150, 50, 0.1)" + ], + "ignoreErrorLanguages": [ + "haskell", + "markdown", + "plaintext", + "shellscript", + "dockerfile", + "plaintext" + ] + }, + "workbench": { + "colorTheme": "Cyberpunk", + "startupEditor": "readme", + "action.terminal.focusNext": { + "key": "ctrl+shift+down", + "mac": "cmd+shift+down" + } + }, + "autoOpenPreviewPanel.openPreviewToTheSide": false, + "explorer.openEditors.visible": 1, + "explorer": { + "openEditors": { + "visible": 1 + }, + "autoRevealExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/node_modules/**": true + }, + "autoReveal": true, + "sortOrder": "filesFirst" + } + }, + "[makefile]": { + "editor.insertSpaces": false, + "editor.renderWhitespace": "selection" + }, + "[yaml]": { + "editor": { + "trimTrailingWhitespace": true, + "insertFinalNewline": true, + "wordWrap": "off", + "lineNumbers": "relative", + "renderWhitespace": "all", + "autoSave": "onFocusChange", + "formatOnSave": true, + "insertSpaces": true, + "tabSize": 2, + "minimap.enabled": true, + "scrollBeyondLastLine": true, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "[markdown]": { + "editor": { + "tabSize": 4, + "wordWrap": "on", + "autoSave": "onFocusChange", + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "minimap.enabled": false, + "renderWhitespace": "all", + "insertFinalNewline": true, + "scrollBeyondLastLine": true, + "trimTrailingWhitespace": false, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "extensions": [ + "golang.go", + "vscodevim.vim", + "github.copilot", + "max-ss.cyberpunk", + "ms-python.python", + "redhat.vscode-yaml", + "esbenp.prettier-vscode", + "oderwat.indent-rainbow", + "okteto.kubernetes-context", + "ms-vsliveshare.vsliveshare", + "chadonsom.auto-view-readme", + "ms-azuretools.vscode-docker", + "github.vscode-github-actions", + "ms-kubernetes-tools.kind-vscode", + "ms-vscode.vscode-typescript-next", + "github.vscode-pull-request-github", + "matt-rudge.auto-open-preview-panel", + "ms-vscode-remote.remote-containers", + "ms-edgedevtools.vscode-edge-devtools", + "bierner.markdown-preview-github-styles", + "visualstudioexptteam.vscodeintellicode", + "bierner.markdown-preview-github-styles", + "ms-kubernetes-tools.vscode-kubernetes-tools" + ] + } + } +} diff --git a/.devcontainer/localstack/Dockerfile b/.devcontainer/localstack/Dockerfile new file mode 100644 index 0000000..8b0bedf --- /dev/null +++ b/.devcontainer/localstack/Dockerfile @@ -0,0 +1,28 @@ +FROM ghcr.io/pulumi/devcontainer:extra + +################################################################################## +# Install AWS CLI v2 + +USER root +RUN echo \ + && export ARCH=$(uname -m | awk '{ if ($1 == "x86_64") print "x86_64"; else if ($1 == "aarch64" || $1 == "arm64") print "aarch64"; else print "unknown" }') \ + && export NAME="aws" \ + && export TEST="${NAME} --version" \ + && export PKG="awscli-exe-linux-${ARCH}.zip" \ + && export URL="https://awscli.amazonaws.com/${PKG}" \ + && export DIR="/tmp/awscli" \ + && echo "---------------------------------------------------------"\ + && echo "INFO[${NAME}] Installed:" \ + && echo "INFO[${NAME}] Command: ${NAME}" \ + && echo "INFO[${NAME}] Package: ${PKG}" \ + && echo "INFO[${NAME}] Architecture: ${ARCH}" \ + && echo "INFO[${NAME}] Source: ${URL}" \ + && echo "---------------------------------------------------------"\ + && mkdir -p ${DIR} \ + && ${curl} ${URL} --output ${DIR}/${PKG} \ + && unzip ${DIR}/${PKG} -d ${DIR} \ + && bash -c "${DIR}/aws/install" \ + && ${dir_clean} \ + && ${TEST} \ + && echo +USER vscode diff --git a/.devcontainer/localstack/devcontainer.json b/.devcontainer/localstack/devcontainer.json new file mode 100644 index 0000000..93ac510 --- /dev/null +++ b/.devcontainer/localstack/devcontainer.json @@ -0,0 +1,329 @@ +{ + "name": "pulumi-localstack", + "remoteUser": "vscode", + "dockerFile": "Dockerfile", + "init": true, + "runArgs": [], + "privileged": true, + "overrideCommand": false, + "updateRemoteUserUID": true, + "shutdownAction": "stopContainer", + "securityOpt": ["seccomp=unconfined"], + "features": { + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}, + "ghcr.io/audacioustux/devcontainers/localstack:1": {} + }, + "mounts": ["source=dind-var-lib-docker,target=/var/lib/docker,type=volume"], + "postCreateCommand": "devcontainer-links", + //"workspaceFolder": "/workspaces/devcontainer", + //"workspaceMount": "source=.,target=/home/vscode/devcontainer,type=bind,consistency=cached", + //"workspaceFolder": "/home/vscode/devcontainer", + "forwardPorts": [1313, 2222, 6000, 7681, 8080], + "customizations": { + "vscode": { + "settings": { + "telemetry.enableTelemetry": "off", + "initializeCommand": "echo 'Initializing...'", + "postCreateCommand": "echo 'Post create...'", + "postStartCommand": "echo 'Post start...'", + "postAttachCommand": "echo 'Post attach...'", + "window": { + "titleBarStyle": "custom", + "title": "${localWorkspaceFolderBasename}${separator}${containerName}${separator}${profileName}${separator}${activeEditorShort}" + }, + "search": { + "defaultViewMode": "list" + }, + "vim": { + "disableExtension": true, + "useSystemClipboard": true, + "useCtrlKeys": true, + "easymotion": true, + "incsearch": true, + "hlsearch": true, + "cursorStylePerMode": { + "normal": "block", + "insert": "line", + "visual": "underline", + "visualline": "underline", + "visualblock": "underline", + "replace": "block" + }, + "insertModeKeyBindings": [ + { + "before": ["j", "j"], + "after": [""] + } + ], + "handleKeys": { + "": false, + "": false + } + }, + "extensions.experimental.affinity": { + "vscodevim.vim": 1 + }, + "zenmode": { + "toggle": true, + "hideTabs": false, + "fullScreen": true, + "hideMinimap": true, + "centerLayout": false, + "hideStatusBar": false, + "hideActivityBar": false, + "hideLineNumbers": false, + "silentNotifications": true, + "hideLineDecorations": false, + "hideCursorInOverviewRuler": true + }, + "editor": { + "tabSize": 4, + "fontSize": 14, + "autoSave": "onFocusChange", + "wordWrap": "off", + "showTabs": true, + "showIcons": true, + "tabSizing": "shrink", + "lineHeight": 20, + "autoIndent": true, + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "tabScrolling": "auto", + //"tabFocusMode": false, + //"tabMovesFocus": false, + "tabCompletion": "on", + "tabDecoration": true, + "fontLigatures": true, + "enablePreview": true, + "startupEditor": "readme", + "tabCloseButton": "right", + "minimap.enabled": false, + "openPositioning": "right", + "restoreViewState": true, + "renderWhitespace": "all", + "suggestSelection": "first", + "closeOnFileDelete": true, + "autoClosingQuotes": "always", + "snippetSuggestions": "top", + "autoClosingBrackets": "always", + "tabHistoryNavigation": true, + "quickSuggestionsDelay": 50, + "autoImportCompletions": true, + "scrollBeyondLastLine": true, + "highlightModifiedTabs": true, + "inlineSuggest.enabled": true, + "parameterHints.enabled": true, + "trimTrailingWhitespace": true, + "lineHighlightBackground": "#30BFBF", + "highlightActiveIndentGuide": true, + "fontFamily": "'FiraMono Nerd Font Mono', monospace", + "gotoLocation": { + "multipleReferences": "goto", + "multipleDefinitions": "goto", + "multipleDeclarations": "goto", + "multipleImplementations": "goto", + "multipleTypeDefinitions": "goto" + }, + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "bracketPairColorization": { + "enabled": true + } + }, + "files": { + "encoding": "utf8", + "autoSave": "onFocusChange", + "trimFinalNewlines": true, + "insertFinalNewline": true, + "trimTrailingWhitespace": true + }, + "git": { + "enabled": true, + "autofetch": true, + "autoStash": true, + "autorefresh": true, + "gitProtocol": "https", + "ignoreSubmodules": true, + "enableSmartCommit": true, + "ignoreLegacyWarning": true, + "autoRepositoryDetection": "openEditors", + "defaultCloneParentDirectory": "/home/vscode", + "scanRepositories": ["/home/vscode", "/workspaces"], + "path": "/usr/local/bin/git" + }, + "github.copilot": { + "enable": { + "*": false, + "markdown": false, + "plaintext": false + } + }, + "go": { + "testTags": "all", + "vetOnSave": "off", + "buildTags": "all", + "lintOnSave": "off", + "testOnSave": "off", + "buildOnSave": "off", + "formatTool": "goimports", + "testEnvVars": { + "GOFLAGS": "-count=1" + }, + "generateTestsFlags": ["-count=1"] + }, + "terminal": { + "integrated": { + //"cwd": "/home/vscode/devcontainer", + "fontSize": 14, + "scrollback": 10000, + "cursorStyle": "outline", + "cursorBlinking": true, + "copyOnSelection": true, + "sendKeybindingsToShell": false, + "cursorStyleInactive": "line", + "fontFamily": "FiraMono Nerd Font Mono", + "commandsToSkipShell": [], + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "shell": { + "linux": "/usr/bin/bash" + } + } + }, + "vs-kubernetes": { + "vs-kubernetes.namespace": "*", + "vs-kubernetes.outputFormat": "yaml", + "vs-kubernetes.helm-path": "/usr/local/bin/helm", + "vs-kubernetes.kubeconfig": "/home/vscode/.kube/config", + "vs-kubernetes.kubectl-path": "/usr/local/bin/kubectl", + "vs-kubernetes.knownKubeconfigs": [ + "/workspaces/*/.kube/config", + "/home/vscode/*/.kube/config", + "/home/vscode/.kube/config" + ] + }, + "remote": { + "restoreForwardedPorts": true, + "localPortHost": "127.0.0.1" + }, + "2gua.rainbow-brackets": true, + "indentRainbow": { + "indicatorStyle": "light", + "colorOnWhiteSpaceOnly": true, + "lightIndicatorStyleLineWidth": 12, + "ignoreEmptyLines": true, + "errorColor": "rgba(255, 20, 147, 0.3)", // Bright Pink for errors + "tabmixColor": "rgba(128, 32, 96, 0.3)", // Purple for mixed tabs and spaces + "colors": [ + "rgba(50, 150, 250, 0.1)", // Bright Blue + "rgba(200, 50, 250, 0.1)", // Purple + "rgba(50, 250, 150, 0.1)", // Neon Green + "rgba(250, 50, 150, 0.1)", // Pink + "rgba(50, 200, 250, 0.1)", // Lighter Blue + "rgba(150, 50, 250, 0.1)", // Darker Purple + "rgba(50, 250, 200, 0.1)", // Brighter Green + "rgba(250, 150, 50, 0.1)" // Orange + ], + "ignoreErrorLanguages": [ + "haskell", + "markdown", + "plaintext", + "shellscript", + "dockerfile", + "plaintext" + ] + }, + "workbench": { + "colorTheme": "Cyberpunk", + "startupEditor": "readme", + "action.terminal.focusNext": { + "key": "ctrl+shift+down", + "mac": "cmd+shift+down" + } + }, + "autoOpenPreviewPanel.openPreviewToTheSide": false, + "explorer.openEditors.visible": 1, + "explorer": { + "openEditors": { + "visible": 1 + }, + "autoRevealExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/node_modules/**": true + }, + "autoReveal": true, + "sortOrder": "filesFirst" + } + }, + "[makefile]": { + "editor.insertSpaces": false, + "editor.renderWhitespace": "selection" + }, + "[yaml]": { + "editor": { + "trimTrailingWhitespace": true, + "insertFinalNewline": true, + "wordWrap": "off", + "lineNumbers": "relative", + "renderWhitespace": "all", + "autoSave": "onFocusChange", + "formatOnSave": true, + "insertSpaces": true, + "tabSize": 2, + "minimap.enabled": true, + "scrollBeyondLastLine": true, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "[markdown]": { + "editor": { + "tabSize": 4, + "wordWrap": "on", + "autoSave": "onFocusChange", + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "minimap.enabled": false, + "renderWhitespace": "all", + "insertFinalNewline": true, + "scrollBeyondLastLine": true, + "trimTrailingWhitespace": false, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "extensions": [ + "golang.go", + "vscodevim.vim", + "github.copilot", + "max-ss.cyberpunk", + "ms-python.python", + "redhat.vscode-yaml", + "esbenp.prettier-vscode", + "oderwat.indent-rainbow", + "okteto.kubernetes-context", + "ms-vsliveshare.vsliveshare", + "chadonsom.auto-view-readme", + "ms-azuretools.vscode-docker", + "github.vscode-github-actions", + "ms-kubernetes-tools.kind-vscode", + "ms-vscode.vscode-typescript-next", + "github.vscode-pull-request-github", + "matt-rudge.auto-open-preview-panel", + "ms-vscode-remote.remote-containers", + "ms-edgedevtools.vscode-edge-devtools", + "bierner.markdown-preview-github-styles", + "visualstudioexptteam.vscodeintellicode", + "bierner.markdown-preview-github-styles", + "ms-kubernetes-tools.vscode-kubernetes-tools" + ] + } + } +} diff --git a/.devcontainer/micro/Dockerfile b/.devcontainer/micro/Dockerfile new file mode 100644 index 0000000..e2b6534 --- /dev/null +++ b/.devcontainer/micro/Dockerfile @@ -0,0 +1 @@ +FROM ghcr.io/pulumi/devcontainer:hugo diff --git a/.devcontainer/micro/devcontainer.json b/.devcontainer/micro/devcontainer.json new file mode 100644 index 0000000..dd0ac1a --- /dev/null +++ b/.devcontainer/micro/devcontainer.json @@ -0,0 +1,277 @@ +{ + "name": "pulumi/devcontainer:hugo-micro", + "remoteUser": "vscode", + "dockerFile": "Dockerfile", + "init": true, + "runArgs": [], + "privileged": true, + "overrideCommand": false, + "updateRemoteUserUID": true, + "shutdownAction": "stopContainer", + "securityOpt": ["seccomp=unconfined"], + "features": {}, + "mounts": [], + "forwardPorts": [1313, 2222, 6000, 7681, 8080], + "customizations": { + "vscode": { + "settings": { + "telemetry.enableTelemetry": "off", + "window": { + "titleBarStyle": "custom", + "title": "${localWorkspaceFolderBasename}${separator}${containerName}${separator}${profileName}${separator}${activeEditorShort}" + }, + "search": { + "defaultViewMode": "list" + }, + "vim": { + "disableExtension": true, + "useSystemClipboard": true, + "useCtrlKeys": true, + "easymotion": true, + "incsearch": true, + "hlsearch": true, + "cursorStylePerMode": { + "normal": "block", + "insert": "line", + "visual": "underline", + "visualline": "underline", + "visualblock": "underline", + "replace": "block" + }, + "insertModeKeyBindings": [ + { + "before": ["j", "j"], + "after": [""] + } + ], + "handleKeys": { + "": false, + "": false + } + }, + "extensions.experimental.affinity": { + "vscodevim.vim": 1 + }, + "zenmode": { + "toggle": true, + "hideTabs": false, + "fullScreen": true, + "hideMinimap": true, + "centerLayout": false, + "hideStatusBar": false, + "hideActivityBar": false, + "hideLineNumbers": false, + "silentNotifications": true, + "hideLineDecorations": false, + "hideCursorInOverviewRuler": true + }, + "editor": { + "tabSize": 4, + "fontSize": 14, + "autoSave": "onFocusChange", + "wordWrap": "off", + "showTabs": true, + "showIcons": true, + "tabSizing": "shrink", + "lineHeight": 20, + "autoIndent": true, + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "tabScrolling": "auto", + "tabCompletion": "on", + "tabDecoration": true, + "fontLigatures": true, + "enablePreview": true, + "startupEditor": "readme", + "tabCloseButton": "right", + "minimap.enabled": false, + "openPositioning": "right", + "restoreViewState": true, + "renderWhitespace": "all", + "suggestSelection": "first", + "closeOnFileDelete": true, + "autoClosingQuotes": "always", + "snippetSuggestions": "top", + "autoClosingBrackets": "always", + "tabHistoryNavigation": true, + "quickSuggestionsDelay": 50, + "autoImportCompletions": true, + "scrollBeyondLastLine": true, + "highlightModifiedTabs": true, + "inlineSuggest.enabled": true, + "parameterHints.enabled": true, + "trimTrailingWhitespace": true, + "lineHighlightBackground": "#30BFBF", + "highlightActiveIndentGuide": true, + "fontFamily": "'FiraMono Nerd Font Mono', monospace", + "gotoLocation": { + "multipleReferences": "goto", + "multipleDefinitions": "goto", + "multipleDeclarations": "goto", + "multipleImplementations": "goto", + "multipleTypeDefinitions": "goto" + }, + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "bracketPairColorization": { + "enabled": true + } + }, + "files": { + "encoding": "utf8", + "autoSave": "onFocusChange", + "trimFinalNewlines": true, + "insertFinalNewline": true, + "trimTrailingWhitespace": true + }, + "git": { + "enabled": true, + "autofetch": true, + "autoStash": true, + "autorefresh": true, + "gitProtocol": "https", + "ignoreSubmodules": true, + "enableSmartCommit": true, + "ignoreLegacyWarning": true, + "autoRepositoryDetection": "openEditors", + "defaultCloneParentDirectory": "/home/vscode", + "scanRepositories": ["/home/vscode", "/workspaces"], + "path": "/usr/local/bin/git" + }, + "go": { + "testTags": "all", + "vetOnSave": "off", + "buildTags": "all", + "lintOnSave": "off", + "testOnSave": "off", + "buildOnSave": "off", + "formatTool": "goimports", + "testEnvVars": { + "GOFLAGS": "-count=1" + }, + "generateTestsFlags": ["-count=1"] + }, + "terminal": { + "integrated": { + "fontSize": 14, + "scrollback": 10000, + "cursorStyle": "outline", + "cursorBlinking": true, + "copyOnSelection": true, + "sendKeybindingsToShell": false, + "cursorStyleInactive": "line", + "fontFamily": "FiraMono Nerd Font Mono", + "commandsToSkipShell": [], + "scrollbar": { + "alwaysConsumeMouseWheel": true + }, + "shell": { + "linux": "/usr/bin/bash" + } + } + }, + "remote": { + "restoreForwardedPorts": true, + "localPortHost": "127.0.0.1" + }, + "2gua.rainbow-brackets": true, + "indentRainbow": { + "indicatorStyle": "light", + "colorOnWhiteSpaceOnly": true, + "lightIndicatorStyleLineWidth": 12, + "ignoreEmptyLines": true, + "errorColor": "rgba(255, 20, 147, 0.3)", + "tabmixColor": "rgba(128, 32, 96, 0.3)", + "colors": [ + "rgba(50, 150, 250, 0.1)", + "rgba(200, 50, 250, 0.1)", + "rgba(50, 250, 150, 0.1)", + "rgba(250, 50, 150, 0.1)", + "rgba(50, 200, 250, 0.1)", + "rgba(150, 50, 250, 0.1)", + "rgba(50, 250, 200, 0.1)", + "rgba(250, 150, 50, 0.1)" + ], + "ignoreErrorLanguages": [ + "haskell", + "markdown", + "plaintext", + "shellscript", + "dockerfile", + "plaintext" + ] + }, + "workbench": { + "startupEditor": "readme", + "action.terminal.focusNext": { + "key": "ctrl+shift+down", + "mac": "cmd+shift+down" + } + }, + "autoOpenPreviewPanel.openPreviewToTheSide": false, + "explorer.openEditors.visible": 1, + "explorer": { + "openEditors": { + "visible": 1 + }, + "autoRevealExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/node_modules/**": true + }, + "autoReveal": true, + "sortOrder": "filesFirst" + } + }, + "[makefile]": { + "editor.insertSpaces": false, + "editor.renderWhitespace": "selection" + }, + "[yaml]": { + "editor": { + "trimTrailingWhitespace": true, + "insertFinalNewline": true, + "wordWrap": "off", + "lineNumbers": "relative", + "renderWhitespace": "all", + "autoSave": "onFocusChange", + "formatOnSave": true, + "insertSpaces": true, + "tabSize": 2, + "minimap.enabled": true, + "scrollBeyondLastLine": true, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "[markdown]": { + "editor": { + "tabSize": 4, + "wordWrap": "on", + "autoSave": "onFocusChange", + "lineNumbers": "relative", + "formatOnSave": true, + "insertSpaces": true, + "minimap.enabled": false, + "renderWhitespace": "all", + "insertFinalNewline": true, + "scrollBeyondLastLine": true, + "trimTrailingWhitespace": false, + "scrollbar": { + "alwaysConsumeMouseWheel": true + } + } + }, + "extensions": [ + "golang.go", + "ms-python.python", + "redhat.vscode-yaml", + "oderwat.indent-rainbow", + "ms-vscode.vscode-typescript-next" + ] + } + } +} diff --git a/.github/devcontainer b/.github/devcontainer new file mode 160000 index 0000000..42885c9 --- /dev/null +++ b/.github/devcontainer @@ -0,0 +1 @@ +Subproject commit 42885c919ca875ff954f17f171e2390c671be3d7 diff --git a/.gitmodules b/.gitmodules index e69de29..25a840b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule ".github/devcontainer"] + path = .github/devcontainer + url = https://github.com/pulumi/devcontainer