[CASSANDRA] Make stargate and reaper deployment optional
[oom.git] / kubernetes / common / common / templates / _cassOp.tpl
index f1fc75c..b9f6766 100644 (file)
@@ -1,3 +1,19 @@
+{{/*
+# Copyright © 2022 Deutsche Telekom AG
+#
+# 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.
+*/}}
+
 {{/* Cassandra Data Center. */}}
 {{- define "common.k8ssandraCluster" -}}
 {{- $global := .Values.global }}
@@ -7,23 +23,50 @@ kind: K8ssandraCluster
 metadata:
   name: {{ .Values.k8ssandraOperator.config.clusterName }}
 spec:
+  {{ if .Values.k8ssandraOperator.reaper.enabled -}}
   reaper:
+    initContainerImage:
+      registry: {{ include "repositoryGenerator.dockerHubRepository" . }}
     containerImage:
       registry: {{ include "repositoryGenerator.dockerHubRepository" . }}
-    heapSize: 512Mi
     autoScheduling:
       enabled: true
+    metadata:
+      commonLabels:
+        app: {{ .Values.k8ssandraOperator.config.clusterName }}-reaper
+        version: {{ .Values.k8ssandraOperator.cassandraVersion }}
+  {{- end }}
+  {{ if .Values.k8ssandraOperator.stargate.enabled -}}
   stargate:
     containerImage:
       registry: {{ include "repositoryGenerator.dockerHubRepository" . }}
       tag: {{ .Values.k8ssandraOperator.stargate.tag }}
     size: {{ .Values.k8ssandraOperator.stargate.size }}
     heapSize: {{ .Values.k8ssandraOperator.stargate.jvmOptions.heapSize }}
+    metadata:
+      commonLabels:
+        app: {{ .Values.k8ssandraOperator.config.clusterName }}-stargate
+        version: {{ .Values.k8ssandraOperator.cassandraVersion }}
+    livenessProbe:
+      initialDelaySeconds: 200
+      periodSeconds: 10
+      failureThreshold: 20
+      successThreshold: 1
+      timeoutSeconds: 20
+    readinessProbe:
+      initialDelaySeconds: 200
+      periodSeconds: 10
+      failureThreshold: 20
+      successThreshold: 1
+      timeoutSeconds: 20
+  {{- end }}
   cassandra:
     serverVersion: {{ .Values.k8ssandraOperator.cassandraVersion }}
     storageConfig:
       cassandraDataVolumeClaimSpec:
+        {{ if .Values.k8ssandraOperator.persistence.storageClassName -}}
         storageClassName: {{ .Values.k8ssandraOperator.persistence.storageClassName }}
+        {{- end }}
         accessModes:
           - ReadWriteOnce
         resources:
@@ -48,4 +91,13 @@ spec:
           name: {{ $datacenter.name }}
         size: {{ $datacenter.size }}
       {{- end }}
+    {{ if .Values.podAnnotations -}}
+    metadata:
+      pods:
+        annotations:
+          {{ toYaml .Values.podAnnotations | nindent 10 }}
+      commonLabels:
+        app: {{ .Values.k8ssandraOperator.config.clusterName }}
+        version: {{ .Values.k8ssandraOperator.cassandraVersion }}
+    {{- end }}
 {{ end }}