Skip to content

kubectl create

  • Create a Kubernetes Resource from a file or from stdin

Generic

kubectl create -f "manifest.yaml"
kubectl create -f "manifest.yaml" --save-config # save last applied config to metadata

Deployment

kubectl create deployment "nginx" \
  --image "nginx" \
  --replicas "5" \
  --dry-run="client" \
  -o "yaml" \
  > "deployment.yaml"

Service

kubectl create service clusterip "my-svc" \
  --tcp "6379:6379" \
  --dry-run="client" \
  -o "yaml" \
  > "service.yaml"

ConfigMap

# From literal
kubectl create configmap "simpleconfig" \
  --from-literal "foo_env=bar" \
  --from-literal "hello_env=world"

# From file
kubectl create configmap "simpleconfig" \
  --from-file "config.properties=/config/app-config.properties"

# From folder
kubectl create configmap "simpleconfig" \
  --from-file "/config/" # a key will be added for each file inside of the folder

# From env file
kubectl create configmap "simpleconfig" \
  --from-env-file "local.env" # each key-value pair will be added as a keyvalue pair in the config map

# Dry run and replace
kubectl create configmap "app-envs" \
  --from-env-file "env/dev.env" \
  --dry-run="client" \
  -o "yaml" \
  | kubectl replace -f -

Secret

# generic
kubectl create secret generic "secret-name" \
  --from-literal "key1=value1" \
  --from-literal "key2=value2"

kubectl create secret generic "secret-name" \
  --from-file "mycert.crt=ca.crt"

# tls
kubectl create secret tls "tls-cert" \
  --cert "admin.crt" \
  --key "admin.key"

# docker-registry
kubectl create secret docker-registry "regcred" \
  --docker-server "private-registry.io" \
  --docker-username "registry-user" \
  --docker-password "registry-password" \
  --docker-email "[email protected]"