edit

Edit a resource

Edit a resource from the default editor.

The edit command allows you to directly edit any API resource you can retrieve via the command line tools. It will open the editor defined by your KUBE_EDITOR, or EDITOR environment variables, or fall back to ‘vi’ for Linux or ‘notepad’ for Windows. You can edit multiple objects, although changes are applied one at a time. The command accepts filenames as well as command line arguments, although the files you point to must be previously saved versions of resources.

Editing is done with the API version used to fetch the resource. To edit using a specific API version, fully-qualify the resource, version, and group.

The default format is YAML. To edit in JSON, specify “-o json”.

Command

$ kubectl edit (RESOURCE/NAME | -f FILENAME) 

Example

Current State

apiVersion: apps/v1 kind: Deployment metadata:  name: nginx-dev  labels:  app: nginx spec:  selector:  matchLabels:  app: nginx  template:  metadata:  labels:  app: nginx  spec:  containers:  - name: nginx  image: nginx:1.14.2 
$ kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE nginx-dev 1/1 1 1 13m 

Command

$ kubectl edit deployment/nginx-dev 

Edit

kind: Deployment apiVersion: apps/v1 metadata:  name: nginx-dev  namespace: default  selfLink: /apis/apps/v1/namespaces/default/deployments/nginx-dev  uid: 8799f7a6-e971-4285-bfac-0be1af6557d9  resourceVersion: '2180'  generation: 1  creationTimestamp: '2020-09-20T14:48:35Z'  annotations:  deployment.kubernetes.io/revision: '1'  kubectl.kubernetes.io/last-applied-configuration: >   {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"name":"nginx-dev","namespace":"default"},"spec":{"selector":{"matchLabels":{"app":"nginx"}},"template":{"metadata":{"labels":{"app":"nginx"}},"spec":{"containers":[{"image":"nginx:1.14.2","name":"nginx"}]}}}} spec:  replicas: 2  selector:  matchLabels:  app: nginx  template:  metadata:  creationTimestamp: null  labels:  app: nginx  spec:  containers:  - name: nginx  image: 'nginx:1.14.2'  resources: {}  terminationMessagePath: /dev/termination-log  terminationMessagePolicy: File  imagePullPolicy: IfNotPresent  restartPolicy: Always  terminationGracePeriodSeconds: 30  dnsPolicy: ClusterFirst  securityContext: {}  schedulerName: default-scheduler  strategy:  type: RollingUpdate  rollingUpdate:  maxUnavailable: 25%  maxSurge: 25%  revisionHistoryLimit: 10  progressDeadlineSeconds: 600 status:  observedGeneration: 1  replicas: 1  updatedReplicas: 1  readyReplicas: 1  availableReplicas: 1  conditions:  - type: Available  status: 'True'  lastUpdateTime: '2020-09-20T14:48:43Z'  lastTransitionTime: '2020-09-20T14:48:43Z'  reason: MinimumReplicasAvailable  message: Deployment has minimum availability.  - type: Progressing  status: 'True'  lastUpdateTime: '2020-09-20T14:48:43Z'  lastTransitionTime: '2020-09-20T14:48:35Z'  reason: NewReplicaSetAvailable  message: ReplicaSet "nginx-dev-59d7cd6545" has successfully progressed. 

Notice that the number of replicas is changes from 1 to 2

deployment.apps/nginx-dev edited 

Result

NAME READY UP-TO-DATE AVAILABLE AGE nginx-dev 2/2 2 2 105s 


Last modified September 23, 2020: docs update (b46eb86)