manifests/virtualcluster/nodecontrollers/templates/statefulsets.tpl (70 lines of code) (raw):

apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ .Values.name }} namespace: {{ .Release.Namespace }} spec: selector: matchLabels: app: {{ .Values.name }} replicas: {{ .Values.replicas }} podManagementPolicy: Parallel template: metadata: labels: app: {{ .Values.name }} spec: {{- if .Values.nodeSelectors }} affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: {{- range $key, $values := .Values.nodeSelectors }} - key: "{{ $key }}" operator: In values: {{- range $values }} - {{ . }} {{- end }} {{- end }} {{- end }} terminationGracePeriodSeconds: 1 containers: - args: - --config=/data/kwok-config.yaml - --manage-all-nodes=false - --manage-single-node=$(POD_NAME) # act as virtualnode - --disregard-status-with-annotation-selector=kwok.x-k8s.io/status=custom - --disregard-status-with-label-selector= - --node-ip=$(POD_IP) - --node-port=10247 - --cidr=10.0.0.1/24 - --node-lease-duration-seconds=40 env: - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name image: registry.k8s.io/kwok/kwok:v0.5.1 imagePullPolicy: IfNotPresent name: kwok-controller volumeMounts: - name: kwok-config mountPath: /data/ resources: limits: cpu: "500m" requests: cpu: "200m" restartPolicy: Always serviceAccount: {{ .Values.name }} serviceAccountName: {{ .Values.name }} volumes: - name: kwok-config configMap: name: {{ .Values.name }}