From b84bf4eeb8ce959529e5f6fe902ef21341916242 Mon Sep 17 00:00:00 2001 From: FabrizioCafolla Date: Fri, 9 May 2025 09:05:59 +0000 Subject: [PATCH] feat: add devcontainer and vscode settings --- .devcontainer/Dockerfile | 34 +++++++++++++++++++++++++++++++++ .devcontainer/devcontainer.json | 32 +++++++++++++++++++++++++++++++ .gitignore | 3 +++ 3 files changed, 69 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..8457cd8c --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,34 @@ +FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04 + +ENV WORKDIR="/home/vscode/add-controller" + +WORKDIR ${WORKDIR} + +COPY . . + +ARG ARCH + +ARG GO_VERSION +RUN export ARCH=${ARCH:-$(dpkg --print-architecture)} && \ + curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-${ARCH}.tar.gz" | tar -C /usr/local -xzf - && \ + echo 'export PATH=$PATH:/usr/local/go/bin:/home/vscode/go/bin' >> /home/vscode/.bashrc + +ENV PATH="${PATH}:/usr/local/go/bin:/home/vscode/go/bin" +ENV GOPATH="/home/vscode/go" +ENV GOROOT="/usr/local/go" + +RUN make tools +ENV PATH="${PATH}:/home/vscode/project-sveltos/hack/tools/bin" + +ARG KUBECTX_VERSION +RUN export ARCH=${ARCH:-$(dpkg --print-architecture)} && \ + echo "Installing kubectx version ${KUBECTX_VERSION}..." && \ + curl -sLo /usr/local/bin/kubectx https://github.com/ahmetb/kubectx/releases/download/v${KUBECTX_VERSION}/kubectx && \ + chmod +x /usr/local/bin/kubectx + +ARG SVELTOSCTL_VERSION +RUN export ARCH=${ARCH:-$(dpkg --print-architecture)} && \ + echo "Installing svletosctl version ${SVELTOSCTL_VERSION}..." && \ + curl -sLo /usr/local/bin/sveltosctl https://github.com/projectsveltos/sveltosctl/releases/download/v${SVELTOSCTL_VERSION}/sveltosctl-linux-${ARCH} && \ + chmod +x /usr/local/bin/sveltosctl + \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..5c9dc4ce --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,32 @@ +{ + "name": "Project Sveltos", + "containerEnv": { + "KUBECONFIG": "/vscode/.kube/config", + "WORKDIR": "${localWorkspaceFolder}" + }, + "build": { + "dockerfile": "${localWorkspaceFolder}/.devcontainer/Dockerfile", + "context": "${localWorkspaceFolder}", + "args": { + "GO_VERSION": "1.24.1", + "KUBECTX_VERSION": "0.9.5", + "SVELTOSCTL_VERSION": "0.53.0" + } + }, + "workspaceFolder": "${localWorkspaceFolder}", + "workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind", + "mounts": [ + "source=${localWorkspaceFolder}/test/.kube,target=/vscode/.kube,type=bind" + ], + "runArgs": [], + "features": { + "ghcr.io/devcontainers/features/docker-in-docker:2": {} + }, + "customizations": { + "vscode": { + "extensions": [], + "settings": {} + } + }, + "initializeCommand": "mkdir -p ${localWorkspaceFolder}/test/.kube" +} diff --git a/.gitignore b/.gitignore index df2556e0..9569d5f8 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,6 @@ pkg/drift-detection/drift-detection-manager-in-mgmt-cluster.yaml-e pkg/drift-detection/drift-detection-manager.yaml-e version.txt + +# Test Kubernetes config files +test/.kube \ No newline at end of file