3ea3ff17d0a9ff7c0468259ca02545ed8473c46c
[oom.git] / kubernetes / common / common / templates / _cassOp.tpl
1 {{/*
2 # Copyright © 2022 Deutsche Telekom AG
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 */}}
16
17 {{/* Cassandra Data Center. */}}
18 {{- define "common.k8ssandraCluster" -}}
19 {{- $global := .Values.global }}
20 ---
21 apiVersion: k8ssandra.io/v1alpha1
22 kind: K8ssandraCluster
23 metadata:
24   name: {{ .Values.k8ssandraOperator.config.clusterName }}
25 spec:
26   reaper:
27     initContainerImage:
28       registry: {{ include "repositoryGenerator.dockerHubRepository" . }}
29     containerImage:
30       registry: {{ include "repositoryGenerator.dockerHubRepository" . }}
31     autoScheduling:
32       enabled: true
33     metadata:
34       commonLabels:
35         app: {{ .Values.k8ssandraOperator.config.clusterName }}-reaper
36         version: {{ .Values.k8ssandraOperator.cassandraVersion }}
37   stargate:
38     containerImage:
39       registry: {{ include "repositoryGenerator.dockerHubRepository" . }}
40       tag: {{ .Values.k8ssandraOperator.stargate.tag }}
41     size: {{ .Values.k8ssandraOperator.stargate.size }}
42     heapSize: {{ .Values.k8ssandraOperator.stargate.jvmOptions.heapSize }}
43     metadata:
44       commonLabels:
45         app: {{ .Values.k8ssandraOperator.config.clusterName }}-stargate
46         version: {{ .Values.k8ssandraOperator.cassandraVersion }}
47     livenessProbe:
48       initialDelaySeconds: 200
49       periodSeconds: 10
50       failureThreshold: 20
51       successThreshold: 1
52       timeoutSeconds: 20
53     readinessProbe:
54       initialDelaySeconds: 200
55       periodSeconds: 10
56       failureThreshold: 20
57       successThreshold: 1
58       timeoutSeconds: 20
59   cassandra:
60     serverVersion: {{ .Values.k8ssandraOperator.cassandraVersion }}
61     storageConfig:
62       cassandraDataVolumeClaimSpec:
63         {{ if .Values.k8ssandraOperator.persistence.storageClassName -}}
64         storageClassName: {{ .Values.k8ssandraOperator.persistence.storageClassName }}
65         {{- end }}
66         accessModes:
67           - ReadWriteOnce
68         resources:
69           requests:
70             storage: {{ .Values.k8ssandraOperator.persistence.size }}
71     superuserSecretRef:
72       name: {{ include "common.fullname" . }}-{{ .Values.k8ssandraOperator.config.secretName }}
73     config:
74       {{ if .Values.k8ssandraOperator.config.casOptions -}}
75       cassandraYaml:
76         {{ toYaml .Values.k8ssandraOperator.config.casOptions | nindent 8 }}
77       {{- end }}
78       {{ if .Values.k8ssandraOperator.config.jvmOptions -}}
79       jvmOptions:
80         {{ toYaml .Values.k8ssandraOperator.config.jvmOptions | nindent 8 }}
81       {{- end }}
82     networking:
83       hostNetwork: {{ .Values.k8ssandraOperator.config.hostNetwork }}
84     datacenters:
85       {{- range $datacenter := .Values.k8ssandraOperator.datacenters }}
86       - metadata:
87           name: {{ $datacenter.name }}
88         size: {{ $datacenter.size }}
89       {{- end }}
90     {{ if .Values.podAnnotations -}}
91     metadata:
92       pods:
93         annotations:
94           {{ toYaml .Values.podAnnotations | nindent 10 }}
95       commonLabels:
96         app: {{ .Values.k8ssandraOperator.config.clusterName }}
97         version: {{ .Values.k8ssandraOperator.cassandraVersion }}
98     {{- end }}
99 {{ end }}