Tengo un archivo YAML de ServiceAccount que estoy aplicando a un nuevo clúster.
Mi YAML es como a continuación:
apiVersion: v1 items: - apiVersion: v1 kind: ServiceAccount metadata: creationTimestamp: 2019-03-20T23:17:42Z name: default namespace: dev4 resourceVersion: "80999" selfLink: /api/v1/namespaces/dev4/serviceaccounts/default uid: 5c6e0d09-4b66-11e9-b4e3-0a779a87bb40 secrets: - name: default-token-tl4dd - apiVersion: v1 kind: ServiceAccount metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"ServiceAccount","metadata":{"annotations":{},"name":"pod-labeler","namespace":"dev4"}} creationTimestamp: 2020-04-21T05:46:25Z name: pod-labeler namespace: dev4 resourceVersion: "113455688" selfLink: /api/v1/namespaces/dev4/serviceaccounts/pod-labeler uid: 702dadda-8393-11ea-abd9-0a768ca51346 secrets: - name: pod-labeler-token-6vgp7 kind: List metadata: resourceVersion: "" selfLink: "" Cuando solicito el nuevo EKS Cluster en la versión 1.16, mediante el comando kubectl apply -f <yaml file> obtengo el siguiente error:
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply Error from server (Conflict): Operation cannot be fulfilled on serviceaccounts "default": the object has been modified; please apply your changes to the latest version and try again Error from server (Conflict): Operation cannot be fulfilled on serviceaccounts "pod-labeler": the object has been modified; please apply your changes to the latest version and try againElimine resourceVersion , selfLink y uid del yaml antes de aplicar. Kubernetes mantiene la coherencia de los objetos que usan la versión y tratar de anularlo con una versión incorrecta conduce a este error.
resourceVersion: "80999" selfLink: /api/v1/namespaces/dev4/serviceaccounts/default uid: 5c6e0d09-4b66-11e9-b4e3-0a779a87bb40 ... resourceVersion: "113455688" selfLink: /api/v1/namespaces/dev4/serviceaccounts/pod-labeler uid: 702dadda-8393-11ea-abd9-0a768ca51346