diff --git a/Dockerfile b/Dockerfile index 8148693..00575ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,17 @@ FROM node:22-bookworm-slim AS base WORKDIR /usr/local/app COPY package.json . +# Installing kubectl and gcloud with gke-gcloud-auth-plugin for accessing GKE +RUN apt-get update && apt-get install -y curl +RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl" +RUN chmod +x kubectl +RUN ln -s /usr/local/app/kubectl /usr/local/bin/kubectl +RUN apt-get install -y apt-transport-https ca-certificates gnupg curl +RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg +RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list +RUN apt-get update && apt-get install -y google-cloud-cli +RUN apt-get install -y google-cloud-cli-gke-gcloud-auth-plugin + # Build the typescript code FROM base AS dependencies RUN npm install @@ -16,4 +27,4 @@ ENV NODE_ENV=production RUN npm install --only=production COPY --from=dependencies /usr/local/app/dist ./dist USER appuser -CMD ["node", "dist/index.js"] \ No newline at end of file +CMD ["node", "dist/index.js"] diff --git a/README.md b/README.md index 45647bd..277e0b7 100644 --- a/README.md +++ b/README.md @@ -40,15 +40,11 @@ If you have errors, open up a standard terminal and run `kubectl get pods` to se - [x] Delete a pod - [x] Describe a pod - [x] List all namespaces -- [ ] Port forward to a pod - [x] Get logs from a pod for debugging (supports pods, deployments, jobs, and label selectors) +- [ ] Port forward to a pod - [ ] Choose namespace for next commands (memory) - [ ] Support Helm for installing charts -## In Progress - -- [ ] [Docker support](https://github.com/Flux159/mcp-server-kubernetes/pull/9) - ## Local Development ```bash diff --git a/package.json b/package.json index 4825568..a7af130 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mcp-server-kubernetes", - "version": "0.1.2", + "version": "0.1.4", "description": "MCP server for interacting with Kubernetes clusters via kubectl", "license": "MIT", "type": "module",