بنقرة واحدة
nais
Nais-deployment, GCP-ressurser, pod-lifecycle og feilsøking på plattformen
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Nais-deployment, GCP-ressurser, pod-lifecycle og feilsøking på plattformen
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Generer conventional commit-meldinger med Nav-relevante scopes og breaking change-format
Expert builder for the Aksel design system (Nav / @navikt) React components, design tokens, layout primitives, theming (light/dark), icons, CSS, the Tailwind preset, version migrations, and Figma-to-code. Trigger on any frontend UI task that mentions Aksel, Nav/Navikt, "designsystemet", or @navikt/ds-* / @navikt/aksel-* packages — or that asks to add, create, build, or refactor a component (button, input, modal, table, alert, card, form) or layout, or to implement a design from Figma (a pasted figma.com/design/...?node-id link, "implement this design", "build this from Figma", design-to-code). Strong signals "using/with aksel", "@navikt/ds-react", "design system", a pasted figma.com link. If the work is frontend UI and there is any Aksel signal, invoke this skill unless the user explicitly opts out.
Integrer og konfigurer Nav Dekoratøren – felles header og footer for nav.no-applikasjoner. Bruk når et team skal ta i bruk Dekoratøren, oppdatere konfigurasjon, legge til breadcrumbs/språkvelger/analytics, håndtere samtykke (ekomloven), CSP eller feilsøke integrasjon mot dekoratøren.
Lag responsive layouts med Aksel Design System (v8+) - spacing tokens, layout primitives (Box, HStack, VStack, HGrid, Page, Bleed) og ResponsiveProp
Generer og kjør Playwright E2E-tester for webapplikasjoner med page objects, auth fixtures og tilgjengelighetstester
Kompakt output-stil som kutter fyllord og beholder teknisk substans — spar output-tokens uten å miste nøyaktighet.
| name | nais |
| description | Nais-deployment, GCP-ressurser, pod-lifecycle og feilsøking på plattformen |
| license | MIT |
| compatibility | Application deployed on Nais (Kubernetes on GCP) |
| metadata | {"domain":"platform","tags":"nais kubernetes gcp deployment infrastructure troubleshooting"} |
Patterns and procedures for deploying, configuring, and troubleshooting applications on Nais (Kubernetes on GCP).
# Check pod status
kubectl get pods -n <namespace> -l app=<app-name>
# View pod logs
kubectl logs -n <namespace> -l app=<app-name> --tail=100
# Describe pod (events, errors)
kubectl describe pod -n <namespace> <pod-name>
# View Nais app status
kubectl get app -n <namespace> <app-name> -o yaml
# Restart deployment (rolling)
kubectl rollout restart deployment/<app-name> -n <namespace>
# Port-forward for local debugging
kubectl port-forward -n <namespace> svc/<app-name> 8080:80
Every Nais application requires:
apiVersion: nais.io/v1alpha1
kind: Application
metadata:
name: app-name
namespace: team-namespace
labels:
team: team-namespace
spec:
image: {{ image }} # Replaced by CI/CD
port: 8080
# Observability (required)
prometheus:
enabled: true
path: /metrics
# Health checks (required)
liveness:
path: /isalive
initialDelay: 5
readiness:
path: /isready
initialDelay: 5
# Resources (required)
resources:
requests:
cpu: 50m
memory: 256Mi
limits:
memory: 512Mi
When Kubernetes terminates a pod on NAIS:
sleep 5 — gives LB time to stop routing new trafficterminationGracePeriodSeconds (default 30s): SIGKILLKey insight: Readiness probes are NOT involved in shutdown. Your app just needs to handle SIGTERM, finish in-flight requests, and exit cleanly.
Common anti-patterns:
false on SIGTERM — unnecessaryterminationGracePeriodSeconds too low — must be > 5s (preStop) + drain timepreStop hook with extra sleep — NAIS already injects sleep 5gcp:
sqlInstances:
- type: POSTGRES_15
databases:
- name: myapp-db
envVarPrefix: DB
Application receives: DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
kafka:
pool: nav-dev # or nav-prod
azure:
application:
enabled: true
tenant: nav.no
tokenx:
enabled: true
accessPolicy:
inbound:
rules:
- application: calling-app
namespace: calling-namespace
outbound:
rules:
- application: downstream-app
namespace: downstream-namespace
ingresses:
- https://myapp.intern.dev.nav.no # Internal dev
- https://myapp.dev.nav.no # External dev
replicas:
min: 2
max: 4
cpuThresholdPercentage: 80
| Size | CPU request | Memory request | Memory limit |
|---|---|---|---|
| Small | 50m | 256Mi | 512Mi |
| Medium | 100m | 512Mi | 1Gi |
| Large | 200m | 1Gi | 2Gi |
Never set CPU limits — causes throttling. Use requests only.
kubectl logs -n namespace pod-namekubectl describe pod -n namespace pod-namekafka.pool is correct (nav-dev/nav-prod).nais/app.yaml manifest/isalive, /isready, /metrics).nais/app-prod.yaml)accessPolicy defaults to deny-all — you must explicitly allow trafficpreStop: sleep 5 — don't add your own{{ image }} in manifest is replaced by CI/CD — don't hardcode imagesapp-dev.yaml, app-prod.yaml) are the normaccessPolicy for network traffickubectl get app <name> -o yaml to verify deploymentaccessPolicy)