All skills
google avatar

/gke-app-onboarding

@becc4b8
by googlegoogle/skills21k stars
1,698

Manages GKE application onboarding, covering containerization, deployment manifests, and migration. Use when onboarding or deploying an application to GKE for the first time, or containerizing an app for GKE. Don't use for general GKE cluster administration or upgrades (use gke-basics or gke-upgrades instead).

Use this Skill: https://skilld.dev/gh/google/skills/gke-app-onboarding

This session only. Nothing lands on disk.

referencesgo-example.md

≈512 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Go Containerization & Manifest Example

<!-- disableFinding(LINK_RELATIVE_G3DOC) -->

Worked Go example for the gke-app-onboarding workflow: a multi-stage distroless Dockerfile and a baseline Deployment + Service manifest. For a complete hardened Node.js example (app code, Dockerfile, and manifest), see ../assets/.

Multi-stage Go Dockerfile

Multi-stage build producing a small, non-root distroless image:

# Multi-stage build for smaller, more secure images
FROM golang:1.22 AS builder
WORKDIR /app
COPY . .
RUN CGO_ENABLED=0 go build -o server .

FROM gcr.io/distroless/static:nonroot
COPY --from=builder /app/server /server
USER nonroot:nonroot
EXPOSE 8080
ENTRYPOINT ["/server"]

Baseline Deployment + Service manifest

Starting-point manifest with resource requests/limits, liveness/readiness probes, 2 replicas, and a ClusterIP Service. For a hardened variant (non-root securityContext, read-only root filesystem, digest-pinned image), see ../assets/deployment.yaml.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  namespace: my-app # Replace with your namespace
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: <REGION>-docker.pkg.dev/<PROJECT>/<REPO>/<IMAGE>:<TAG>
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: "250m"
            memory: "256Mi"
          limits:
            cpu: "500m"
            memory: "512Mi"
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8080
          initialDelaySeconds: 10
        readinessProbe:
          httpGet:
            path: /readyz
            port: 8080
          initialDelaySeconds: 5
---
apiVersion: v1
kind: Service
metadata:
  name: my-app
spec:
  selector:
    app: my-app
  ports:
  - port: 80
    targetPort: 8080
  type: ClusterIP

Source: SKILL.md on GitHub

No alerts9d3 checks · Risk SAFE
  • Gen Agent Trust Hub9d

    This skill provides secure templates and workflows for onboarding applications to Google Kubernetes Engine (GKE). It demonstrates security best practices, including the use of non-root container users, minimal base images, and hardened Kubernetes security contexts.

  • Socket9d

    No alerts

  • Snyk9d

    Risk: LOW · No issues

Signed by skilld at becc4b8. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 weeks ago
metadata
{
  "version": "1.0.0",
  "category": "Containers"
}

README badge

README badge for google/skills/gke-app-onboarding