aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/common/common/templates/_cassOp.tpl
blob: b0cf8e331e7a55bce9276acd0baedf960647d55c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
{{/*
# 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 }}
---
apiVersion: k8ssandra.io/v1alpha1
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" . }}
    autoScheduling:
      enabled: true
    metadata:
      commonLabels:
        app: {{ .Values.k8ssandraOperator.config.clusterName }}-reaper
        version: {{ .Values.k8ssandraOperator.cassandraVersion }}
    {{- if .Values.metrics.enabled }}
    telemetry:
      prometheus:
        enabled: true
      mcac:
        enabled: false
      cassandra:
        endpoint:
          address: 0.0.0.0
    {{- end }}
  {{- 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:
          requests:
            storage: {{ .Values.k8ssandraOperator.persistence.size }}
    superuserSecretRef:
      name: {{ include "common.fullname" . }}-{{ .Values.k8ssandraOperator.config.secretName }}
    {{- if .Values.metrics.enabled }}
    telemetry:
      prometheus:
        enabled: true
      mcac:
        enabled: false
      cassandra:
        endpoint:
          address: 0.0.0.0
    {{- end }}
    config:
      {{ if .Values.k8ssandraOperator.config.casOptions -}}
      cassandraYaml:
        {{ toYaml .Values.k8ssandraOperator.config.casOptions | nindent 8 }}
      {{- end }}
      {{ if .Values.k8ssandraOperator.config.jvmOptions -}}
      jvmOptions:
        {{ toYaml .Values.k8ssandraOperator.config.jvmOptions | nindent 8 }}
      {{- end }}
    networking:
      hostNetwork: {{ .Values.k8ssandraOperator.config.hostNetwork }}
    datacenters:
      {{- range $datacenter := .Values.k8ssandraOperator.datacenters }}
      - metadata:
          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 }}