hawkular_cassandra_rc.j2 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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. containers:
  23. - image: "{{ openshift_metrics_image_prefix }}metrics-cassandra:{{ openshift_metrics_image_version }}"
  24. name: hawkular-cassandra-{{ node }}
  25. ports:
  26. - name: cql-port
  27. containerPort: 9042
  28. - name: thift-port
  29. containerPort: 9160
  30. - name: tcp-port
  31. containerPort: 7000
  32. - name: ssl-port
  33. containerPort: 7001
  34. command:
  35. - "/opt/apache-cassandra/bin/cassandra-docker.sh"
  36. - "--cluster_name=hawkular-metrics"
  37. - "--data_volume=/cassandra_data"
  38. - "--internode_encryption=all"
  39. - "--require_node_auth=true"
  40. - "--enable_client_encryption=true"
  41. - "--require_client_auth=true"
  42. - "--keystore_file=/secret/cassandra.keystore"
  43. - "--keystore_password_file=/secret/cassandra.keystore.password"
  44. - "--truststore_file=/secret/cassandra.truststore"
  45. - "--truststore_password_file=/secret/cassandra.truststore.password"
  46. - "--cassandra_pem_file=/secret/cassandra.pem"
  47. env:
  48. - name: CASSANDRA_MASTER
  49. value: "{{ master }}"
  50. - name: CASSANDRA_DATA_VOLUME
  51. value: "/cassandra_data"
  52. - name: JVM_OPTS
  53. value: "-Dcassandra.commitlog.ignorereplayerrors=true"
  54. - name: POD_NAMESPACE
  55. valueFrom:
  56. fieldRef:
  57. fieldPath: metadata.namespace
  58. - name: MEMORY_LIMIT
  59. valueFrom:
  60. resourceFieldRef:
  61. resource: limits.memory
  62. - name: CPU_LIMIT
  63. valueFrom:
  64. resourceFieldRef:
  65. resource: limits.cpu
  66. divisor: 1m
  67. volumeMounts:
  68. - name: cassandra-data
  69. mountPath: "/cassandra_data"
  70. - name: hawkular-cassandra-secrets
  71. mountPath: "/secret"
  72. {% if ((openshift_metrics_cassandra_limits_cpu is defined and openshift_metrics_cassandra_limits_cpu is not none)
  73. or (openshift_metrics_cassandra_limits_memory is defined and openshift_metrics_cassandra_limits_memory is not none)
  74. or (openshift_metrics_cassandra_requests_cpu is defined and openshift_metrics_cassandra_requests_cpu is not none)
  75. or (openshift_metrics_cassandra_requests_memory is defined and openshift_metrics_cassandra_requests_memory is not none))
  76. %}
  77. resources:
  78. {% if (openshift_metrics_cassandra_limits_cpu is not none
  79. or openshift_metrics_cassandra_limits_memory is not none)
  80. %}
  81. limits:
  82. {% if openshift_metrics_cassandra_limits_cpu is not none %}
  83. cpu: "{{openshift_metrics_cassandra_limits_cpu}}"
  84. {% endif %}
  85. {% if openshift_metrics_cassandra_limits_memory is not none %}
  86. memory: "{{openshift_metrics_cassandra_limits_memory}}"
  87. {% endif %}
  88. {% endif %}
  89. {% if (openshift_metrics_cassandra_requests_cpu is not none
  90. or openshift_metrics_cassandra_requests_memory is not none)
  91. %}
  92. requests:
  93. {% if openshift_metrics_cassandra_requests_cpu is not none %}
  94. cpu: "{{openshift_metrics_cassandra_requests_cpu}}"
  95. {% endif %}
  96. {% if openshift_metrics_cassandra_requests_memory is not none %}
  97. memory: "{{openshift_metrics_cassandra_requests_memory}}"
  98. {% endif %}
  99. {% endif %}
  100. {% endif %}
  101. readinessProbe:
  102. exec:
  103. command:
  104. - "/opt/apache-cassandra/bin/cassandra-docker-ready.sh"
  105. lifecycle:
  106. preStop:
  107. exec:
  108. command:
  109. - "/opt/apache-cassandra/bin/cassandra-prestop.sh"
  110. postStart:
  111. exec:
  112. command:
  113. - "/opt/apache-cassandra/bin/cassandra-poststart.sh"
  114. terminationGracePeriodSeconds: 1800
  115. volumes:
  116. - name: cassandra-data
  117. {% if openshift_metrics_cassandra_storage_type == 'emptydir' %}
  118. emptyDir: {}
  119. {% else %}
  120. persistentVolumeClaim:
  121. claimName: "{{ openshift_metrics_cassandra_pv_prefix }}-{{ node }}"
  122. {% endif %}
  123. - name: hawkular-cassandra-secrets
  124. secret:
  125. secretName: hawkular-cassandra-secrets