sigs.k8s.io/cluster-api-provider-aws@v1.5.5/test/e2e/data/infrastructure-aws/e2e_test_templates/cluster-template-external-cloud-provider.yaml (about)

     1  apiVersion: cluster.x-k8s.io/v1beta1
     2  kind: Cluster
     3  metadata:
     4    labels:
     5      ccm: external
     6      cni: ${CLUSTER_NAME}-crs-0
     7      csi: external
     8    name: ${CLUSTER_NAME}
     9  spec:
    10    clusterNetwork:
    11      pods:
    12        cidrBlocks:
    13        - 192.168.0.0/16
    14    controlPlaneRef:
    15      apiVersion: controlplane.cluster.x-k8s.io/v1beta1
    16      kind: KubeadmControlPlane
    17      name: ${CLUSTER_NAME}-control-plane
    18    infrastructureRef:
    19      apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    20      kind: AWSCluster
    21      name: ${CLUSTER_NAME}
    22  ---
    23  apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    24  kind: AWSCluster
    25  metadata:
    26    name: ${CLUSTER_NAME}
    27  spec:
    28    network:
    29      vpc:
    30        availabilityZoneUsageLimit: 1
    31    region: ${AWS_REGION}
    32    sshKeyName: ${AWS_SSH_KEY_NAME}
    33  ---
    34  apiVersion: controlplane.cluster.x-k8s.io/v1beta1
    35  kind: KubeadmControlPlane
    36  metadata:
    37    name: ${CLUSTER_NAME}-control-plane
    38  spec:
    39    kubeadmConfigSpec:
    40      clusterConfiguration:
    41        apiServer:
    42          extraArgs:
    43            cloud-provider: external
    44        controllerManager:
    45          extraArgs:
    46            cloud-provider: external
    47            external-cloud-volume-plugin: aws
    48      initConfiguration:
    49        nodeRegistration:
    50          kubeletExtraArgs:
    51            cloud-provider: external
    52          name: '{{ ds.meta_data.local_hostname }}'
    53      joinConfiguration:
    54        nodeRegistration:
    55          kubeletExtraArgs:
    56            cloud-provider: external
    57          name: '{{ ds.meta_data.local_hostname }}'
    58    machineTemplate:
    59      infrastructureRef:
    60        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    61        kind: AWSMachineTemplate
    62        name: ${CLUSTER_NAME}-control-plane
    63    replicas: ${CONTROL_PLANE_MACHINE_COUNT}
    64    version: ${KUBERNETES_VERSION}
    65  ---
    66  apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    67  kind: AWSMachineTemplate
    68  metadata:
    69    name: ${CLUSTER_NAME}-control-plane
    70  spec:
    71    template:
    72      spec:
    73        iamInstanceProfile: control-plane.cluster-api-provider-aws.sigs.k8s.io
    74        instanceType: ${AWS_CONTROL_PLANE_MACHINE_TYPE}
    75        sshKeyName: ${AWS_SSH_KEY_NAME}
    76  ---
    77  apiVersion: cluster.x-k8s.io/v1beta1
    78  kind: MachineDeployment
    79  metadata:
    80    name: ${CLUSTER_NAME}-md-0
    81  spec:
    82    clusterName: ${CLUSTER_NAME}
    83    replicas: ${WORKER_MACHINE_COUNT}
    84    selector:
    85      matchLabels: null
    86    template:
    87      spec:
    88        bootstrap:
    89          configRef:
    90            apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
    91            kind: KubeadmConfigTemplate
    92            name: ${CLUSTER_NAME}-md-0
    93        clusterName: ${CLUSTER_NAME}
    94        infrastructureRef:
    95          apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    96          kind: AWSMachineTemplate
    97          name: ${CLUSTER_NAME}-md-0
    98        version: ${KUBERNETES_VERSION}
    99  ---
   100  apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
   101  kind: AWSMachineTemplate
   102  metadata:
   103    name: ${CLUSTER_NAME}-md-0
   104  spec:
   105    template:
   106      spec:
   107        iamInstanceProfile: nodes.cluster-api-provider-aws.sigs.k8s.io
   108        instanceType: ${AWS_NODE_MACHINE_TYPE}
   109        sshKeyName: ${AWS_SSH_KEY_NAME}
   110  ---
   111  apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
   112  kind: KubeadmConfigTemplate
   113  metadata:
   114    name: ${CLUSTER_NAME}-md-0
   115  spec:
   116    template:
   117      spec:
   118        joinConfiguration:
   119          nodeRegistration:
   120            kubeletExtraArgs:
   121              cloud-provider: external
   122            name: '{{ ds.meta_data.local_hostname }}'
   123  ---
   124  apiVersion: v1
   125  data: ${CNI_RESOURCES}
   126  kind: ConfigMap
   127  metadata:
   128    name: cni-${CLUSTER_NAME}-crs-0
   129  ---
   130  apiVersion: addons.cluster.x-k8s.io/v1beta1
   131  kind: ClusterResourceSet
   132  metadata:
   133    name: ${CLUSTER_NAME}-crs-0
   134  spec:
   135    clusterSelector:
   136      matchLabels:
   137        cni: ${CLUSTER_NAME}-crs-0
   138    resources:
   139    - kind: ConfigMap
   140      name: cni-${CLUSTER_NAME}-crs-0
   141    strategy: ApplyOnce
   142  ---
   143  apiVersion: addons.cluster.x-k8s.io/v1beta1
   144  kind: ClusterResourceSet
   145  metadata:
   146    name: crs-ccm
   147  spec:
   148    clusterSelector:
   149      matchLabels:
   150        ccm: external
   151    resources:
   152    - kind: ConfigMap
   153      name: cloud-controller-manager-addon
   154    strategy: ApplyOnce
   155  ---
   156  apiVersion: addons.cluster.x-k8s.io/v1beta1
   157  kind: ClusterResourceSet
   158  metadata:
   159    name: crs-csi
   160  spec:
   161    clusterSelector:
   162      matchLabels:
   163        csi: external
   164    resources:
   165    - kind: ConfigMap
   166      name: aws-ebs-csi-driver-addon
   167    strategy: ApplyOnce
   168  ---
   169  apiVersion: v1
   170  data:
   171    aws-ccm-external.yaml: |
   172      ---
   173      apiVersion: apps/v1
   174      kind: DaemonSet
   175      metadata:
   176        name: aws-cloud-controller-manager
   177        namespace: kube-system
   178        labels:
   179          k8s-app: aws-cloud-controller-manager
   180      spec:
   181        selector:
   182          matchLabels:
   183            k8s-app: aws-cloud-controller-manager
   184        updateStrategy:
   185          type: RollingUpdate
   186        template:
   187          metadata:
   188            labels:
   189              k8s-app: aws-cloud-controller-manager
   190          spec:
   191            nodeSelector:
   192              node-role.kubernetes.io/master: ""
   193            tolerations:
   194              - key: node.cloudprovider.kubernetes.io/uninitialized
   195                value: "true"
   196                effect: NoSchedule
   197              - key: node-role.kubernetes.io/master
   198                effect: NoSchedule
   199              - effect: NoSchedule
   200                key: node-role.kubernetes.io/control-plane
   201            affinity:
   202              nodeAffinity:
   203                requiredDuringSchedulingIgnoredDuringExecution:
   204                  nodeSelectorTerms:
   205                    - matchExpressions:
   206                        - key: node-role.kubernetes.io/control-plane
   207                          operator: Exists
   208                    - matchExpressions:
   209                        - key: node-role.kubernetes.io/master
   210                          operator: Exists
   211            serviceAccountName: cloud-controller-manager
   212            containers:
   213              - name: aws-cloud-controller-manager
   214                image: gcr.io/k8s-staging-provider-aws/cloud-controller-manager:v1.20.0-alpha.0
   215                args:
   216                  - --v=2
   217                resources:
   218                  requests:
   219                    cpu: 200m
   220            hostNetwork: true
   221      ---
   222      apiVersion: v1
   223      kind: ServiceAccount
   224      metadata:
   225        name: cloud-controller-manager
   226        namespace: kube-system
   227      ---
   228      apiVersion: rbac.authorization.k8s.io/v1
   229      kind: RoleBinding
   230      metadata:
   231        name: cloud-controller-manager:apiserver-authentication-reader
   232        namespace: kube-system
   233      roleRef:
   234        apiGroup: rbac.authorization.k8s.io
   235        kind: Role
   236        name: extension-apiserver-authentication-reader
   237      subjects:
   238        - apiGroup: ""
   239          kind: ServiceAccount
   240          name: cloud-controller-manager
   241          namespace: kube-system
   242      ---
   243      apiVersion: rbac.authorization.k8s.io/v1
   244      kind: ClusterRole
   245      metadata:
   246        name: system:cloud-controller-manager
   247      rules:
   248        - apiGroups:
   249            - ""
   250          resources:
   251            - events
   252          verbs:
   253            - create
   254            - patch
   255            - update
   256        - apiGroups:
   257            - ""
   258          resources:
   259            - nodes
   260          verbs:
   261            - '*'
   262        - apiGroups:
   263            - ""
   264          resources:
   265            - nodes/status
   266          verbs:
   267            - patch
   268        - apiGroups:
   269            - ""
   270          resources:
   271            - services
   272          verbs:
   273            - list
   274            - patch
   275            - update
   276            - watch
   277        - apiGroups:
   278            - ""
   279          resources:
   280            - services/status
   281          verbs:
   282            - list
   283            - patch
   284            - update
   285            - watch
   286        - apiGroups:
   287            - ""
   288          resources:
   289            - serviceaccounts
   290          verbs:
   291            - create
   292        - apiGroups:
   293            - ""
   294          resources:
   295            - persistentvolumes
   296          verbs:
   297            - get
   298            - list
   299            - update
   300            - watch
   301        - apiGroups:
   302            - ""
   303          resources:
   304            - configmaps
   305          verbs:
   306            - list
   307            - watch
   308        - apiGroups:
   309            - ""
   310          resources:
   311            - endpoints
   312          verbs:
   313            - create
   314            - get
   315            - list
   316            - watch
   317            - update
   318        - apiGroups:
   319            - coordination.k8s.io
   320          resources:
   321            - leases
   322          verbs:
   323            - create
   324            - get
   325            - list
   326            - watch
   327            - update
   328      ---
   329      kind: ClusterRoleBinding
   330      apiVersion: rbac.authorization.k8s.io/v1
   331      metadata:
   332        name: system:cloud-controller-manager
   333      roleRef:
   334        apiGroup: rbac.authorization.k8s.io
   335        kind: ClusterRole
   336        name: system:cloud-controller-manager
   337      subjects:
   338        - apiGroup: ""
   339          kind: ServiceAccount
   340          name: cloud-controller-manager
   341          namespace: kube-system
   342  kind: ConfigMap
   343  metadata:
   344    annotations:
   345      note: generated
   346    labels:
   347      type: generated
   348    name: cloud-controller-manager-addon
   349  ---
   350  apiVersion: v1
   351  data:
   352    aws-ebs-csi-external.yaml: |-
   353      apiVersion: v1
   354      kind: Secret
   355      metadata:
   356        name: aws-secret
   357        namespace: kube-system
   358      stringData:
   359        key_id: ""
   360        access_key: ""
   361      ---
   362      apiVersion: v1
   363      kind: ServiceAccount
   364      metadata:
   365        labels:
   366          app.kubernetes.io/name: aws-ebs-csi-driver
   367        name: ebs-csi-controller-sa
   368        namespace: kube-system
   369      ---
   370      apiVersion: v1
   371      kind: ServiceAccount
   372      metadata:
   373        labels:
   374          app.kubernetes.io/name: aws-ebs-csi-driver
   375        name: ebs-csi-node-sa
   376        namespace: kube-system
   377      ---
   378      apiVersion: rbac.authorization.k8s.io/v1
   379      kind: ClusterRole
   380      metadata:
   381        labels:
   382          app.kubernetes.io/name: aws-ebs-csi-driver
   383        name: ebs-external-attacher-role
   384      rules:
   385        - apiGroups:
   386            - ""
   387          resources:
   388            - persistentvolumes
   389          verbs:
   390            - get
   391            - list
   392            - watch
   393            - update
   394            - patch
   395        - apiGroups:
   396            - ""
   397          resources:
   398            - nodes
   399          verbs:
   400            - get
   401            - list
   402            - watch
   403        - apiGroups:
   404            - csi.storage.k8s.io
   405          resources:
   406            - csinodeinfos
   407          verbs:
   408            - get
   409            - list
   410            - watch
   411        - apiGroups:
   412            - storage.k8s.io
   413          resources:
   414            - volumeattachments
   415          verbs:
   416            - get
   417            - list
   418            - watch
   419            - update
   420            - patch
   421        - apiGroups:
   422            - storage.k8s.io
   423          resources:
   424            - volumeattachments/status
   425          verbs:
   426            - patch
   427      ---
   428      apiVersion: rbac.authorization.k8s.io/v1
   429      kind: ClusterRole
   430      metadata:
   431        labels:
   432          app.kubernetes.io/name: aws-ebs-csi-driver
   433        name: ebs-external-provisioner-role
   434      rules:
   435        - apiGroups:
   436            - ""
   437          resources:
   438            - persistentvolumes
   439          verbs:
   440            - get
   441            - list
   442            - watch
   443            - create
   444            - delete
   445        - apiGroups:
   446            - ""
   447          resources:
   448            - persistentvolumeclaims
   449          verbs:
   450            - get
   451            - list
   452            - watch
   453            - update
   454        - apiGroups:
   455            - storage.k8s.io
   456          resources:
   457            - storageclasses
   458          verbs:
   459            - get
   460            - list
   461            - watch
   462        - apiGroups:
   463            - ""
   464          resources:
   465            - events
   466          verbs:
   467            - list
   468            - watch
   469            - create
   470            - update
   471            - patch
   472        - apiGroups:
   473            - snapshot.storage.k8s.io
   474          resources:
   475            - volumesnapshots
   476          verbs:
   477            - get
   478            - list
   479        - apiGroups:
   480            - snapshot.storage.k8s.io
   481          resources:
   482            - volumesnapshotcontents
   483          verbs:
   484            - get
   485            - list
   486        - apiGroups:
   487            - storage.k8s.io
   488          resources:
   489            - csinodes
   490          verbs:
   491            - get
   492            - list
   493            - watch
   494        - apiGroups:
   495            - ""
   496          resources:
   497            - nodes
   498          verbs:
   499            - get
   500            - list
   501            - watch
   502        - apiGroups:
   503            - coordination.k8s.io
   504          resources:
   505            - leases
   506          verbs:
   507            - get
   508            - watch
   509            - list
   510            - delete
   511            - update
   512            - create
   513        - apiGroups:
   514            - storage.k8s.io
   515          resources:
   516            - volumeattachments
   517          verbs:
   518            - get
   519            - list
   520            - watch
   521      ---
   522      apiVersion: rbac.authorization.k8s.io/v1
   523      kind: ClusterRole
   524      metadata:
   525        labels:
   526          app.kubernetes.io/name: aws-ebs-csi-driver
   527        name: ebs-external-resizer-role
   528      rules:
   529        - apiGroups:
   530            - ""
   531          resources:
   532            - persistentvolumes
   533          verbs:
   534            - get
   535            - list
   536            - watch
   537            - update
   538            - patch
   539        - apiGroups:
   540            - ""
   541          resources:
   542            - persistentvolumeclaims
   543          verbs:
   544            - get
   545            - list
   546            - watch
   547        - apiGroups:
   548            - ""
   549          resources:
   550            - persistentvolumeclaims/status
   551          verbs:
   552            - update
   553            - patch
   554        - apiGroups:
   555            - storage.k8s.io
   556          resources:
   557            - storageclasses
   558          verbs:
   559            - get
   560            - list
   561            - watch
   562        - apiGroups:
   563            - ""
   564          resources:
   565            - events
   566          verbs:
   567            - list
   568            - watch
   569            - create
   570            - update
   571            - patch
   572        - apiGroups:
   573            - ""
   574          resources:
   575            - pods
   576          verbs:
   577            - get
   578            - list
   579            - watch
   580      ---
   581      apiVersion: rbac.authorization.k8s.io/v1
   582      kind: ClusterRole
   583      metadata:
   584        labels:
   585          app.kubernetes.io/name: aws-ebs-csi-driver
   586        name: ebs-external-snapshotter-role
   587      rules:
   588        - apiGroups:
   589            - ""
   590          resources:
   591            - events
   592          verbs:
   593            - list
   594            - watch
   595            - create
   596            - update
   597            - patch
   598        - apiGroups:
   599            - ""
   600          resources:
   601            - secrets
   602          verbs:
   603            - get
   604            - list
   605        - apiGroups:
   606            - snapshot.storage.k8s.io
   607          resources:
   608            - volumesnapshotclasses
   609          verbs:
   610            - get
   611            - list
   612            - watch
   613        - apiGroups:
   614            - snapshot.storage.k8s.io
   615          resources:
   616            - volumesnapshotcontents
   617          verbs:
   618            - create
   619            - get
   620            - list
   621            - watch
   622            - update
   623            - delete
   624        - apiGroups:
   625            - snapshot.storage.k8s.io
   626          resources:
   627            - volumesnapshotcontents/status
   628          verbs:
   629            - update
   630      ---
   631      apiVersion: rbac.authorization.k8s.io/v1
   632      kind: ClusterRoleBinding
   633      metadata:
   634        labels:
   635          app.kubernetes.io/name: aws-ebs-csi-driver
   636        name: ebs-csi-attacher-binding
   637      roleRef:
   638        apiGroup: rbac.authorization.k8s.io
   639        kind: ClusterRole
   640        name: ebs-external-attacher-role
   641      subjects:
   642        - kind: ServiceAccount
   643          name: ebs-csi-controller-sa
   644          namespace: kube-system
   645      ---
   646      apiVersion: rbac.authorization.k8s.io/v1
   647      kind: ClusterRoleBinding
   648      metadata:
   649        labels:
   650          app.kubernetes.io/name: aws-ebs-csi-driver
   651        name: ebs-csi-provisioner-binding
   652      roleRef:
   653        apiGroup: rbac.authorization.k8s.io
   654        kind: ClusterRole
   655        name: ebs-external-provisioner-role
   656      subjects:
   657        - kind: ServiceAccount
   658          name: ebs-csi-controller-sa
   659          namespace: kube-system
   660      ---
   661      apiVersion: rbac.authorization.k8s.io/v1
   662      kind: ClusterRoleBinding
   663      metadata:
   664        labels:
   665          app.kubernetes.io/name: aws-ebs-csi-driver
   666        name: ebs-csi-resizer-binding
   667      roleRef:
   668        apiGroup: rbac.authorization.k8s.io
   669        kind: ClusterRole
   670        name: ebs-external-resizer-role
   671      subjects:
   672        - kind: ServiceAccount
   673          name: ebs-csi-controller-sa
   674          namespace: kube-system
   675      ---
   676      apiVersion: rbac.authorization.k8s.io/v1
   677      kind: ClusterRoleBinding
   678      metadata:
   679        labels:
   680          app.kubernetes.io/name: aws-ebs-csi-driver
   681        name: ebs-csi-snapshotter-binding
   682      roleRef:
   683        apiGroup: rbac.authorization.k8s.io
   684        kind: ClusterRole
   685        name: ebs-external-snapshotter-role
   686      subjects:
   687        - kind: ServiceAccount
   688          name: ebs-csi-controller-sa
   689          namespace: kube-system
   690      ---
   691      apiVersion: apps/v1
   692      kind: Deployment
   693      metadata:
   694        labels:
   695          app.kubernetes.io/name: aws-ebs-csi-driver
   696        name: ebs-csi-controller
   697        namespace: kube-system
   698      spec:
   699        replicas: 2
   700        selector:
   701          matchLabels:
   702            app: ebs-csi-controller
   703            app.kubernetes.io/name: aws-ebs-csi-driver
   704        template:
   705          metadata:
   706            labels:
   707              app: ebs-csi-controller
   708              app.kubernetes.io/name: aws-ebs-csi-driver
   709          spec:
   710            containers:
   711              - args:
   712                  - --endpoint=$(CSI_ENDPOINT)
   713                  - --logtostderr
   714                  - --v=2
   715                env:
   716                  - name: CSI_ENDPOINT
   717                    value: unix:///var/lib/csi/sockets/pluginproxy/csi.sock
   718                  - name: CSI_NODE_NAME
   719                    valueFrom:
   720                      fieldRef:
   721                        fieldPath: spec.nodeName
   722                  - name: AWS_ACCESS_KEY_ID
   723                    valueFrom:
   724                      secretKeyRef:
   725                        key: key_id
   726                        name: aws-secret
   727                        optional: true
   728                  - name: AWS_SECRET_ACCESS_KEY
   729                    valueFrom:
   730                      secretKeyRef:
   731                        key: access_key
   732                        name: aws-secret
   733                        optional: true
   734                image: registry.k8s.io/provider-aws/aws-ebs-csi-driver:v1.2.0
   735                imagePullPolicy: IfNotPresent
   736                livenessProbe:
   737                  failureThreshold: 5
   738                  httpGet:
   739                    path: /healthz
   740                    port: healthz
   741                  initialDelaySeconds: 10
   742                  periodSeconds: 10
   743                  timeoutSeconds: 3
   744                name: ebs-plugin
   745                ports:
   746                  - containerPort: 9808
   747                    name: healthz
   748                    protocol: TCP
   749                readinessProbe:
   750                  failureThreshold: 5
   751                  httpGet:
   752                    path: /healthz
   753                    port: healthz
   754                  initialDelaySeconds: 10
   755                  periodSeconds: 10
   756                  timeoutSeconds: 3
   757                volumeMounts:
   758                  - mountPath: /var/lib/csi/sockets/pluginproxy/
   759                    name: socket-dir
   760              - args:
   761                  - --csi-address=$(ADDRESS)
   762                  - --v=2
   763                  - --feature-gates=Topology=true
   764                  - --extra-create-metadata
   765                  - --leader-election=true
   766                  - --default-fstype=ext4
   767                env:
   768                  - name: ADDRESS
   769                    value: /var/lib/csi/sockets/pluginproxy/csi.sock
   770                image: registry.k8s.io/sig-storage/csi-provisioner:v2.1.1
   771                name: csi-provisioner
   772                volumeMounts:
   773                  - mountPath: /var/lib/csi/sockets/pluginproxy/
   774                    name: socket-dir
   775              - args:
   776                  - --csi-address=$(ADDRESS)
   777                  - --v=2
   778                  - --leader-election=true
   779                env:
   780                  - name: ADDRESS
   781                    value: /var/lib/csi/sockets/pluginproxy/csi.sock
   782                image: registry.k8s.io/sig-storage/csi-attacher:v3.1.0
   783                name: csi-attacher
   784                volumeMounts:
   785                  - mountPath: /var/lib/csi/sockets/pluginproxy/
   786                    name: socket-dir
   787              - args:
   788                  - --csi-address=$(ADDRESS)
   789                  - --leader-election=true
   790                env:
   791                  - name: ADDRESS
   792                    value: /var/lib/csi/sockets/pluginproxy/csi.sock
   793                image: registry.k8s.io/sig-storage/csi-snapshotter:v3.0.3
   794                name: csi-snapshotter
   795                volumeMounts:
   796                  - mountPath: /var/lib/csi/sockets/pluginproxy/
   797                    name: socket-dir
   798              - args:
   799                  - --csi-address=$(ADDRESS)
   800                  - --v=2
   801                env:
   802                  - name: ADDRESS
   803                    value: /var/lib/csi/sockets/pluginproxy/csi.sock
   804                image: registry.k8s.io/sig-storage/csi-resizer:v1.0.0
   805                imagePullPolicy: Always
   806                name: csi-resizer
   807                volumeMounts:
   808                  - mountPath: /var/lib/csi/sockets/pluginproxy/
   809                    name: socket-dir
   810              - args:
   811                  - --csi-address=/csi/csi.sock
   812                image: registry.k8s.io/sig-storage/livenessprobe:v2.2.0
   813                name: liveness-probe
   814                volumeMounts:
   815                  - mountPath: /csi
   816                    name: socket-dir
   817            nodeSelector:
   818              kubernetes.io/os: linux
   819            priorityClassName: system-cluster-critical
   820            serviceAccountName: ebs-csi-controller-sa
   821            tolerations:
   822              - key: CriticalAddonsOnly
   823                operator: Exists
   824              - effect: NoExecute
   825                operator: Exists
   826                tolerationSeconds: 300
   827              - key: node-role.kubernetes.io/master
   828                effect: NoSchedule
   829              - effect: NoSchedule
   830                key: node-role.kubernetes.io/control-plane
   831            affinity:
   832              nodeAffinity:
   833                requiredDuringSchedulingIgnoredDuringExecution:
   834                  nodeSelectorTerms:
   835                    - matchExpressions:
   836                        - key: node-role.kubernetes.io/control-plane
   837                          operator: Exists
   838                    - matchExpressions:
   839                        - key: node-role.kubernetes.io/master
   840                          operator: Exists
   841            volumes:
   842              - emptyDir: {}
   843                name: socket-dir
   844      ---
   845      apiVersion: policy/v1beta1
   846      kind: PodDisruptionBudget
   847      metadata:
   848        labels:
   849          app.kubernetes.io/name: aws-ebs-csi-driver
   850        name: ebs-csi-controller
   851        namespace: kube-system
   852      spec:
   853        maxUnavailable: 1
   854        selector:
   855          matchLabels:
   856            app: ebs-csi-controller
   857            app.kubernetes.io/name: aws-ebs-csi-driver
   858      ---
   859      apiVersion: apps/v1
   860      kind: DaemonSet
   861      metadata:
   862        labels:
   863          app.kubernetes.io/name: aws-ebs-csi-driver
   864        name: ebs-csi-node
   865        namespace: kube-system
   866      spec:
   867        selector:
   868          matchLabels:
   869            app: ebs-csi-node
   870            app.kubernetes.io/name: aws-ebs-csi-driver
   871        template:
   872          metadata:
   873            labels:
   874              app: ebs-csi-node
   875              app.kubernetes.io/name: aws-ebs-csi-driver
   876          spec:
   877            affinity:
   878              nodeAffinity:
   879                requiredDuringSchedulingIgnoredDuringExecution:
   880                  nodeSelectorTerms:
   881                    - matchExpressions:
   882                        - key: eks.amazonaws.com/compute-type
   883                          operator: NotIn
   884                          values:
   885                            - fargate
   886            containers:
   887              - args:
   888                  - node
   889                  - --endpoint=$(CSI_ENDPOINT)
   890                  - --logtostderr
   891                  - --v=2
   892                env:
   893                  - name: CSI_ENDPOINT
   894                    value: unix:/csi/csi.sock
   895                  - name: CSI_NODE_NAME
   896                    valueFrom:
   897                      fieldRef:
   898                        fieldPath: spec.nodeName
   899                image: registry.k8s.io/provider-aws/aws-ebs-csi-driver:v1.2.0
   900                livenessProbe:
   901                  failureThreshold: 5
   902                  httpGet:
   903                    path: /healthz
   904                    port: healthz
   905                  initialDelaySeconds: 10
   906                  periodSeconds: 10
   907                  timeoutSeconds: 3
   908                name: ebs-plugin
   909                ports:
   910                  - containerPort: 9808
   911                    name: healthz
   912                    protocol: TCP
   913                securityContext:
   914                  privileged: true
   915                volumeMounts:
   916                  - mountPath: /var/lib/kubelet
   917                    mountPropagation: Bidirectional
   918                    name: kubelet-dir
   919                  - mountPath: /csi
   920                    name: plugin-dir
   921                  - mountPath: /dev
   922                    name: device-dir
   923              - args:
   924                  - --csi-address=$(ADDRESS)
   925                  - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
   926                  - --v=2
   927                env:
   928                  - name: ADDRESS
   929                    value: /csi/csi.sock
   930                  - name: DRIVER_REG_SOCK_PATH
   931                    value: /var/lib/kubelet/plugins/ebs.csi.aws.com/csi.sock
   932                image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.1.0
   933                name: node-driver-registrar
   934                volumeMounts:
   935                  - mountPath: /csi
   936                    name: plugin-dir
   937                  - mountPath: /registration
   938                    name: registration-dir
   939              - args:
   940                  - --csi-address=/csi/csi.sock
   941                image: registry.k8s.io/sig-storage/livenessprobe:v2.2.0
   942                name: liveness-probe
   943                volumeMounts:
   944                  - mountPath: /csi
   945                    name: plugin-dir
   946            nodeSelector:
   947              kubernetes.io/os: linux
   948            priorityClassName: system-node-critical
   949            serviceAccountName: ebs-csi-node-sa
   950            tolerations:
   951              - key: CriticalAddonsOnly
   952                operator: Exists
   953              - effect: NoExecute
   954                operator: Exists
   955                tolerationSeconds: 300
   956            volumes:
   957              - hostPath:
   958                  path: /var/lib/kubelet
   959                  type: Directory
   960                name: kubelet-dir
   961              - hostPath:
   962                  path: /var/lib/kubelet/plugins/ebs.csi.aws.com/
   963                  type: DirectoryOrCreate
   964                name: plugin-dir
   965              - hostPath:
   966                  path: /var/lib/kubelet/plugins_registry/
   967                  type: Directory
   968                name: registration-dir
   969              - hostPath:
   970                  path: /dev
   971                  type: Directory
   972                name: device-dir
   973        updateStrategy:
   974          rollingUpdate:
   975            maxUnavailable: 10%
   976          type: RollingUpdate
   977      ---
   978      apiVersion: storage.k8s.io/v1
   979      kind: CSIDriver
   980      metadata:
   981        labels:
   982          app.kubernetes.io/name: aws-ebs-csi-driver
   983        name: ebs.csi.aws.com
   984      spec:
   985        attachRequired: true
   986        podInfoOnMount: false
   987  kind: ConfigMap
   988  metadata:
   989    annotations:
   990      note: generated
   991    labels:
   992      type: generated
   993    name: aws-ebs-csi-driver-addon