github.com/microsoft/fabrikate@v1.0.0-alpha.1.0.20210115014322-dc09194d0885/testdata/generate/infra/fabrikate-jaeger/helm_repos/jaeger/charts/cassandra/templates/statefulset.yaml (about)

     1  apiVersion: apps/v1
     2  kind: StatefulSet
     3  metadata:
     4    name: {{ template "cassandra.fullname" . }}
     5    labels:
     6      app: {{ template "cassandra.name" . }}
     7      chart: {{ template "cassandra.chart" . }}
     8      release: {{ .Release.Name }}
     9      heritage: {{ .Release.Service }}
    10  spec:
    11    selector:
    12      matchLabels:
    13        app: {{ template "cassandra.name" . }}
    14        release: {{ .Release.Name }}
    15    serviceName: {{ template "cassandra.fullname" . }}
    16    replicas: {{ .Values.config.cluster_size }}
    17    podManagementPolicy: {{ .Values.podManagementPolicy }}
    18    updateStrategy:
    19      type: {{ .Values.updateStrategy.type }}
    20    template:
    21      metadata:
    22        labels:
    23          app: {{ template "cassandra.name" . }}
    24          release: {{ .Release.Name }}
    25  {{- if .Values.podLabels }}
    26  {{ toYaml .Values.podLabels | indent 8 }}
    27  {{- end }}
    28  {{- if .Values.podAnnotations }}
    29        annotations:
    30  {{ toYaml .Values.podAnnotations | indent 8 }}
    31  {{- end }}
    32      spec:
    33        {{- if .Values.schedulerName }}
    34        schedulerName: "{{ .Values.schedulerName }}"
    35        {{- end }}
    36        hostNetwork: {{ .Values.hostNetwork }}
    37  {{- if .Values.selector }}
    38  {{ toYaml .Values.selector | indent 6 }}
    39  {{- end }}
    40        {{- if .Values.securityContext.enabled }}
    41        securityContext:
    42          fsGroup: {{ .Values.securityContext.fsGroup }}
    43          runAsUser: {{ .Values.securityContext.runAsUser }}
    44        {{- end }}
    45  {{- if .Values.affinity }}
    46        affinity:
    47  {{ toYaml .Values.affinity | indent 8 }}
    48  {{- end }}
    49  {{- if .Values.tolerations }}
    50        tolerations:
    51  {{ toYaml .Values.tolerations | indent 8 }}
    52  {{- end }}
    53  {{- if .Values.configOverrides }}
    54        initContainers:
    55        - name: config-copier
    56          image: busybox
    57          command: [ 'sh', '-c', 'cp /configmap-files/* /cassandra-configs/ && chown 999:999 /cassandra-configs/*']
    58          volumeMounts:
    59  {{- range $key, $value := .Values.configOverrides }}
    60          - name: cassandra-config-{{ $key | replace "." "-" | replace "_" "--" }}
    61            mountPath: /configmap-files/{{ $key }}
    62            subPath: {{ $key }}
    63  {{- end }}
    64          - name: cassandra-configs
    65            mountPath: /cassandra-configs/
    66  {{- end }}
    67        containers:
    68  {{- if .Values.extraContainers }}
    69  {{ tpl (toYaml .Values.extraContainers) . | indent 6}}
    70  {{- end }}
    71  {{- if .Values.exporter.enabled }}
    72        - name: cassandra-exporter
    73          image: "{{ .Values.exporter.image.repo }}:{{ .Values.exporter.image.tag }}"
    74          resources:
    75  {{ toYaml .Values.exporter.resources | indent 10 }}
    76          env:
    77            - name: CASSANDRA_EXPORTER_CONFIG_listenPort
    78              value: {{ .Values.exporter.port | quote }}
    79            - name: JVM_OPTS
    80              value: {{ .Values.exporter.jvmOpts | quote }}
    81          ports:
    82            - name: metrics
    83              containerPort: {{ .Values.exporter.port }}
    84              protocol: TCP
    85            - name: jmx
    86              containerPort: 5555
    87          livenessProbe:
    88            tcpSocket:
    89              port: {{ .Values.exporter.port }}
    90          readinessProbe:
    91            httpGet:
    92              path: /metrics
    93              port: {{ .Values.exporter.port }}
    94            initialDelaySeconds: 20
    95            timeoutSeconds: 45
    96  {{- end }}
    97        - name: {{ template "cassandra.fullname" . }}
    98          image: "{{ .Values.image.repo }}:{{ .Values.image.tag }}"
    99          imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
   100  {{- if .Values.commandOverrides }}
   101          command: {{ .Values.commandOverrides }}
   102  {{- end }}
   103  {{- if .Values.argsOverrides }}
   104          args: {{ .Values.argsOverrides }}
   105  {{- end }}
   106          resources:
   107  {{ toYaml .Values.resources | indent 10 }}
   108          env:
   109          {{- $seed_size := default 1 .Values.config.seed_size | int -}}
   110          {{- $global := . }}
   111          - name: CASSANDRA_SEEDS
   112            {{- if .Values.hostNetwork }}
   113            value: {{ required "You must fill \".Values.config.seeds\" with list of Cassandra seeds when hostNetwork is set to true" .Values.config.seeds | quote }}
   114            {{- else }}
   115            value: "{{- range $i, $e := until $seed_size }}{{ template "cassandra.fullname" $global }}-{{ $i }}.{{ template "cassandra.fullname" $global }}.{{ $global.Release.Namespace }}.svc.{{ $global.Values.config.cluster_domain }}{{- if (lt ( add1 $i ) $seed_size ) }},{{- end }}{{- end }}"
   116            {{- end }}
   117          - name: MAX_HEAP_SIZE
   118            value: {{ default "8192M" .Values.config.max_heap_size | quote }}
   119          - name: HEAP_NEWSIZE
   120            value: {{ default "200M" .Values.config.heap_new_size | quote }}
   121          - name: CASSANDRA_ENDPOINT_SNITCH
   122            value: {{ default "SimpleSnitch" .Values.config.endpoint_snitch | quote }}
   123          - name: CASSANDRA_CLUSTER_NAME
   124            value: {{ default "Cassandra" .Values.config.cluster_name | quote }}
   125          - name: CASSANDRA_DC
   126            value: {{ default "DC1" .Values.config.dc_name | quote }}
   127          - name: CASSANDRA_RACK
   128            value: {{ default "RAC1" .Values.config.rack_name | quote }}
   129          - name: CASSANDRA_START_RPC
   130            value: {{ default "false" .Values.config.start_rpc | quote }}
   131          - name: POD_IP
   132            valueFrom:
   133              fieldRef:
   134                fieldPath: status.podIP
   135          {{- range $key, $value := .Values.env }}
   136          - name: {{ $key | quote }}
   137            value: {{ $value | quote }}
   138          {{- end }}
   139          livenessProbe:
   140            exec:
   141              command: [ "/bin/sh", "-c", "nodetool status" ]
   142            initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
   143            periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
   144            timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
   145            successThreshold: {{ .Values.livenessProbe.successThreshold }}
   146            failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
   147          readinessProbe:
   148            exec:
   149              command: [ "/bin/sh", "-c", "nodetool status | grep -E \"^UN\\s+{{ .Values.readinessProbe.address }}\"" ]
   150            initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
   151            periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
   152            timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
   153            successThreshold: {{ .Values.readinessProbe.successThreshold }}
   154            failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
   155          ports:
   156          - name: intra
   157            containerPort: 7000
   158          - name: tls
   159            containerPort: 7001
   160          - name: jmx
   161            containerPort: 7199
   162          - name: cql
   163            containerPort: {{ default 9042 .Values.config.ports.cql }}
   164          - name: thrift
   165            containerPort: {{ default 9160 .Values.config.ports.thrift }}
   166          {{- if .Values.config.ports.agent }}
   167          - name: agent
   168            containerPort: {{ .Values.config.ports.agent }}
   169          {{- end }}
   170          volumeMounts:
   171          - name: data
   172            mountPath: /var/lib/cassandra
   173          {{- if .Values.configOverrides }}
   174          - name: cassandra-configs
   175            mountPath: /etc/cassandra
   176          {{- end }}
   177          {{- if .Values.extraVolumeMounts }}
   178  {{ toYaml .Values.extraVolumeMounts | indent 8 }}
   179          {{- end }}
   180          {{- if not .Values.persistence.enabled }}
   181          lifecycle:
   182            preStop:
   183              exec:
   184                command: ["/bin/sh", "-c", "exec nodetool decommission"]
   185          {{- end }}
   186        terminationGracePeriodSeconds: {{ default 30 .Values.podSettings.terminationGracePeriodSeconds }}
   187        {{- if .Values.image.pullSecrets }}
   188        imagePullSecrets:
   189          - name: {{ .Values.image.pullSecrets }}
   190        {{- end }}
   191  {{- if or .Values.extraVolumes ( or .Values.configOverrides (not .Values.persistence.enabled) ) }}
   192        volumes:
   193  {{- end }}
   194  {{- if .Values.extraVolumes }}
   195  {{ toYaml .Values.extraVolumes | indent 6 }}
   196  {{- end }}
   197  {{- range $key, $value := .Values.configOverrides }}
   198        - configMap:
   199            name: cassandra
   200          name: cassandra-config-{{ $key | replace "." "-" | replace "_" "--" }}
   201  {{- end }}
   202  {{- if .Values.configOverrides }}
   203        - name: cassandra-configs
   204          emptyDir: {}
   205  {{- end }}
   206  {{- if not .Values.persistence.enabled }}
   207        - name: data
   208          emptyDir: {}
   209  {{- else }}
   210    volumeClaimTemplates:
   211    - metadata:
   212        name: data
   213        labels:
   214          app: {{ template "cassandra.name" . }}
   215          release: {{ .Release.Name }}
   216      spec:
   217        accessModes:
   218          - {{ .Values.persistence.accessMode | quote }}
   219        resources:
   220          requests:
   221            storage: {{ .Values.persistence.size | quote }}
   222      {{- if .Values.persistence.storageClass }}
   223      {{- if (eq "-" .Values.persistence.storageClass) }}
   224        storageClassName: ""
   225      {{- else }}
   226        storageClassName: "{{ .Values.persistence.storageClass }}"
   227      {{- end }}
   228      {{- end }}
   229  {{- end }}