hawkular_cassandra_rc.j2 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. apiVersion: v1
  2. kind: ReplicationController
  3. metadata:
  4. name: hawkular-cassandra-{{ node }}
  5. labels:
  6. metrics-infra: hawkular-cassandra
  7. name: hawkular-cassandra
  8. type: hawkular-cassandra
  9. spec:
  10. selector:
  11. name: hawkular-cassandra-{{ node }}
  12. replicas: {{replica_count}}
  13. template:
  14. version: v1
  15. metadata:
  16. labels:
  17. metrics-infra: hawkular-cassandra
  18. name: hawkular-cassandra-{{ node }}
  19. type: hawkular-cassandra
  20. spec:
  21. serviceAccount: cassandra
  22. {% if node_selector is iterable and node_selector | length > 0 %}
  23. nodeSelector:
  24. {% for key, value in node_selector.iteritems() %}
  25. {{key}}: "{{value}}"
  26. {% endfor %}
  27. {% endif %}
  28. containers:
  29. - image: "{{ openshift_metrics_image_prefix }}metrics-cassandra:{{ openshift_metrics_image_version }}"
  30. name: hawkular-cassandra-{{ node }}
  31. ports:
  32. - name: cql-port
  33. containerPort: 9042
  34. - name: thift-port
  35. containerPort: 9160
  36. - name: tcp-port
  37. containerPort: 7000
  38. - name: ssl-port
  39. containerPort: 7001
  40. command:
  41. - "/opt/apache-cassandra/bin/cassandra-docker.sh"
  42. - "--cluster_name=hawkular-metrics"
  43. - "--data_volume=/cassandra_data"
  44. - "--internode_encryption=all"
  45. - "--require_node_auth=true"
  46. - "--enable_client_encryption=true"
  47. - "--require_client_auth=true"
  48. - "--keystore_file=/secret/cassandra.keystore"
  49. - "--keystore_password_file=/secret/cassandra.keystore.password"
  50. - "--truststore_file=/secret/cassandra.truststore"
  51. - "--truststore_password_file=/secret/cassandra.truststore.password"
  52. - "--cassandra_pem_file=/secret/cassandra.pem"
  53. env:
  54. - name: CASSANDRA_MASTER
  55. value: "{{ master }}"
  56. - name: CASSANDRA_DATA_VOLUME
  57. value: "/cassandra_data"
  58. - name: JVM_OPTS
  59. value: "-Dcassandra.commitlog.ignorereplayerrors=true"
  60. - name: POD_NAMESPACE
  61. valueFrom:
  62. fieldRef:
  63. fieldPath: metadata.namespace
  64. - name: MEMORY_LIMIT
  65. valueFrom:
  66. resourceFieldRef:
  67. resource: limits.memory
  68. - name: CPU_LIMIT
  69. valueFrom:
  70. resourceFieldRef:
  71. resource: limits.cpu
  72. divisor: 1m
  73. volumeMounts:
  74. - name: cassandra-data
  75. mountPath: "/cassandra_data"
  76. - name: hawkular-cassandra-secrets
  77. mountPath: "/secret"
  78. {% if ((openshift_metrics_cassandra_limits_cpu is defined and openshift_metrics_cassandra_limits_cpu is not none)
  79. or (openshift_metrics_cassandra_limits_memory is defined and openshift_metrics_cassandra_limits_memory is not none)
  80. or (openshift_metrics_cassandra_requests_cpu is defined and openshift_metrics_cassandra_requests_cpu is not none)
  81. or (openshift_metrics_cassandra_requests_memory is defined and openshift_metrics_cassandra_requests_memory is not none))
  82. %}
  83. resources:
  84. {% if (openshift_metrics_cassandra_limits_cpu is not none
  85. or openshift_metrics_cassandra_limits_memory is not none)
  86. %}
  87. limits:
  88. {% if openshift_metrics_cassandra_limits_cpu is not none %}
  89. cpu: "{{openshift_metrics_cassandra_limits_cpu}}"
  90. {% endif %}
  91. {% if openshift_metrics_cassandra_limits_memory is not none %}
  92. memory: "{{openshift_metrics_cassandra_limits_memory}}"
  93. {% endif %}
  94. {% endif %}
  95. {% if (openshift_metrics_cassandra_requests_cpu is not none
  96. or openshift_metrics_cassandra_requests_memory is not none)
  97. %}
  98. requests:
  99. {% if openshift_metrics_cassandra_requests_cpu is not none %}
  100. cpu: "{{openshift_metrics_cassandra_requests_cpu}}"
  101. {% endif %}
  102. {% if openshift_metrics_cassandra_requests_memory is not none %}
  103. memory: "{{openshift_metrics_cassandra_requests_memory}}"
  104. {% endif %}
  105. {% endif %}
  106. {% endif %}
  107. readinessProbe:
  108. exec:
  109. command:
  110. - "/opt/apache-cassandra/bin/cassandra-docker-ready.sh"
  111. lifecycle:
  112. preStop:
  113. exec:
  114. command:
  115. - "/opt/apache-cassandra/bin/cassandra-prestop.sh"
  116. postStart:
  117. exec:
  118. command:
  119. - "/opt/apache-cassandra/bin/cassandra-poststart.sh"
  120. terminationGracePeriodSeconds: 1800
  121. volumes:
  122. - name: cassandra-data
  123. {% if openshift_metrics_cassandra_storage_type == 'emptydir' %}
  124. emptyDir: {}
  125. {% else %}
  126. persistentVolumeClaim:
  127. claimName: "{{ openshift_metrics_cassandra_pvc_prefix }}-{{ node }}"
  128. {% endif %}
  129. - name: hawkular-cassandra-secrets
  130. secret:
  131. secretName: hawkular-cassandra-secrets