summaryrefslogtreecommitdiffstats
path: root/roles/openshift_metrics/templates/hawkular_cassandra_rc.j2
blob: 11476bf75f864cb47c91e1c89e6461675793dc40 (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
124
125
126
127
128
129
130
131
132
133
134
135
136
apiVersion: v1
kind: ReplicationController
metadata:
  name: hawkular-cassandra-{{ node }}
  labels:
    metrics-infra: hawkular-cassandra
    name: hawkular-cassandra
    type: hawkular-cassandra
spec:
  selector:
    name: hawkular-cassandra-{{ node }}
  replicas: {{replica_count}}
  template:
    version: v1
    metadata:
      labels:
        metrics-infra: hawkular-cassandra
        name: hawkular-cassandra-{{ node }}
        type: hawkular-cassandra
    spec:
      serviceAccount: cassandra
      securityContext:
        supplementalGroups:
        - {{openshift_metrics_cassandra_storage_group}}
{% if node_selector is iterable and node_selector | length > 0 %}
      nodeSelector:
{% for key, value in node_selector.items() %}
        {{key}}: "{{value}}"
{% endfor %}
{% endif %}
      containers:
      - image: "{{ openshift_metrics_image_prefix }}metrics-cassandra:{{ openshift_metrics_image_version }}"
        imagePullPolicy: IfNotPresent
        name: hawkular-cassandra-{{ node }}
        ports:
        - name: cql-port
          containerPort: 9042
        - name: thift-port
          containerPort: 9160
        - name: tcp-port
          containerPort: 7000
        - name: ssl-port
          containerPort: 7001
        command:
        - "/opt/apache-cassandra/bin/cassandra-docker.sh"
        - "--cluster_name=hawkular-metrics"
        - "--data_volume=/cassandra_data"
        - "--internode_encryption=all"
        - "--require_node_auth=true"
        - "--enable_client_encryption=true"
        - "--require_client_auth=true"
        env:
        - name: CASSANDRA_MASTER
          value: "{{ master }}"
        - name: CASSANDRA_DATA_VOLUME
          value: "/cassandra_data"
        - name: JVM_OPTS
          value: "-Dcassandra.commitlog.ignorereplayerrors=true"
        - name: ENABLE_PROMETHEUS_ENDPOINT
          value: "{{ openshift_metrics_cassandra_enable_prometheus_endpoint }}"
        - name: TRUSTSTORE_NODES_AUTHORITIES
          value: "/hawkular-cassandra-certs/tls.peer.truststore.crt"
        - name: TRUSTSTORE_CLIENT_AUTHORITIES
          value: "/hawkular-cassandra-certs/tls.client.truststore.crt"
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: MEMORY_LIMIT
          valueFrom:
            resourceFieldRef:
              resource: limits.memory
        - name: CPU_LIMIT
          valueFrom:
            resourceFieldRef:
              resource: limits.cpu
              divisor: 1m
        volumeMounts:
        - name: cassandra-data
          mountPath: "/cassandra_data"
        - name: hawkular-cassandra-certs
          mountPath: "/hawkular-cassandra-certs"
{% if ((openshift_metrics_cassandra_limits_cpu is defined and openshift_metrics_cassandra_limits_cpu is not none)
   or (openshift_metrics_cassandra_limits_memory is defined and openshift_metrics_cassandra_limits_memory is not none)
   or (openshift_metrics_cassandra_requests_cpu is defined and openshift_metrics_cassandra_requests_cpu is not none)
   or (openshift_metrics_cassandra_requests_memory is defined and openshift_metrics_cassandra_requests_memory is not none))
%}
        resources:
{%      if (openshift_metrics_cassandra_limits_cpu is not none
        or openshift_metrics_cassandra_limits_memory is not none)
%}
          limits:
{%        if openshift_metrics_cassandra_limits_cpu is not none %}
            cpu: "{{openshift_metrics_cassandra_limits_cpu}}"
{% endif %}
{%        if openshift_metrics_cassandra_limits_memory is not none %}
            memory: "{{openshift_metrics_cassandra_limits_memory}}"
{% endif %}
{% endif %}
{%        if (openshift_metrics_cassandra_requests_cpu is not none
          or openshift_metrics_cassandra_requests_memory is not none)
%}
          requests:
{%        if openshift_metrics_cassandra_requests_cpu is not none %}
            cpu: "{{openshift_metrics_cassandra_requests_cpu}}"
{% endif %}
{%        if openshift_metrics_cassandra_requests_memory is not none %}
            memory: "{{openshift_metrics_cassandra_requests_memory}}"
{% endif %}
{% endif %}
{% endif %}
        readinessProbe:
          exec:
            command:
            - "/opt/apache-cassandra/bin/cassandra-docker-ready.sh"
        lifecycle:
          preStop:
            exec:
              command:
              - "/opt/apache-cassandra/bin/cassandra-prestop.sh"
          postStart:
            exec:
              command:
              - "/opt/apache-cassandra/bin/cassandra-poststart.sh"
        terminationGracePeriodSeconds: 1800
      volumes:
      - name: cassandra-data
{%      if openshift_metrics_cassandra_storage_type == 'emptydir' %}
        emptyDir: {}
{%      else %}
        persistentVolumeClaim:
          claimName: "{{ openshift_metrics_cassandra_pvc_prefix }}-{{ node }}"
{% endif %}
      - name: hawkular-cassandra-certs
        secret:
          secretName: hawkular-cassandra-certs