setup/manifests/base/node/node-termination-handler-ds.yaml (59 lines of code) (raw):

# Copyright 2018 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http:#www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. apiVersion: apps/v1 kind: DaemonSet metadata: labels: name: node-termination-handler name: node-termination-handler namespace: kube-system spec: selector: matchLabels: name: node-termination-handler updateStrategy: type: RollingUpdate template: metadata: labels: name: node-termination-handler spec: # Necessary to hit the node's metadata server when using Workload Identity hostNetwork: true # Necessary to reboot node hostPID: true serviceAccountName: node-termination-handler affinity: nodeAffinity: # Restrict to GPU nodes or preemptible nodes requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/gke-accelerator operator: Exists - matchExpressions: - key: cloud.google.com/gke-preemptible operator: Exists containers: # TODO: Update to an official image once the build is automated via GCB. - image: k8s.gcr.io/gke-node-termination-handler@sha256:aca12d17b222dfed755e28a44d92721e477915fb73211d0a0f8925a1fa847cca name: node-termination-handler command: ["./node-termination-handler"] args: ["--logtostderr", "--exclude-pods=$(POD_NAME):$(POD_NAMESPACE)", "-v=10", "--taint=cloud.google.com/impending-node-termination::NoSchedule"] securityContext: capabilities: # Necessary to reboot node add: ["SYS_BOOT"] env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: SLACK_WEBHOOK_URL value: "" resources: limits: cpu: 150m memory: 30Mi tolerations: # Run regardless of any existing taints. - effect: NoSchedule operator: Exists - effect: NoExecute operator: Exists