2 min read | by Jordi Prats
When you create a new deployment you usually focus on:
Beside this, all the other required lines on the yaml are boilerplate so it's quite easy to forget about them.
Using kubectl create in dry-run mode and setting the output as yaml we can get the yaml file it would use to create a new resource without actually applying any change:
$ kubectl create deployment demo --dry-run=client --image=nginx -r 3 -o yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: demo
name: demo
spec:
replicas: 3
selector:
matchLabels:
app: demo
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: demo
spec:
containers:
- image: nginx
name: nginx
resources: {}
status: {}
We can create most resources this way, but not every single available resource:
$ kubectl create --help
(...)
Available Commands:
clusterrole Create a ClusterRole.
clusterrolebinding Create a ClusterRoleBinding for a particular ClusterRole
configmap Create a configmap from a local file, directory or literal value
cronjob Create a cronjob with the specified name.
deployment Create a deployment with the specified name.
ingress Create an ingress with the specified name.
job Create a job with the specified name.
namespace Create a namespace with the specified name
poddisruptionbudget Create a pod disruption budget with the specified name.
priorityclass Create a priorityclass with the specified name.
quota Create a quota with the specified name.
role Create a role with single rule.
rolebinding Create a RoleBinding for a particular Role or ClusterRole
secret Create a secret using specified subcommand
service Create a service using specified subcommand.
serviceaccount Create a service account with the specified name
(...)
Posted on 14/01/2021