deploy-heketi-template.yml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. ---
  2. kind: Template
  3. apiVersion: v1
  4. metadata:
  5. name: deploy-heketi
  6. labels:
  7. glusterfs: heketi-template
  8. deploy-heketi: support
  9. annotations:
  10. description: Bootstrap Heketi installation
  11. tags: glusterfs,heketi,installation
  12. objects:
  13. - kind: Service
  14. apiVersion: v1
  15. metadata:
  16. name: deploy-heketi-${CLUSTER_NAME}
  17. labels:
  18. glusterfs: deploy-heketi-${CLUSTER_NAME}-service
  19. deploy-heketi: support
  20. annotations:
  21. description: Exposes Heketi service
  22. spec:
  23. ports:
  24. - name: deploy-heketi-${CLUSTER_NAME}
  25. port: 8080
  26. targetPort: 8080
  27. selector:
  28. glusterfs: deploy-heketi-${CLUSTER_NAME}-pod
  29. - kind: Route
  30. apiVersion: v1
  31. metadata:
  32. name: ${HEKETI_ROUTE}
  33. labels:
  34. glusterfs: deploy-heketi-${CLUSTER_NAME}-route
  35. deploy-heketi: support
  36. spec:
  37. to:
  38. kind: Service
  39. name: deploy-heketi-${CLUSTER_NAME}
  40. - kind: DeploymentConfig
  41. apiVersion: v1
  42. metadata:
  43. name: deploy-heketi-${CLUSTER_NAME}
  44. labels:
  45. glusterfs: deploy-heketi-${CLUSTER_NAME}-dc
  46. deploy-heketi: support
  47. annotations:
  48. description: Defines how to deploy Heketi
  49. spec:
  50. replicas: 1
  51. selector:
  52. glusterfs: deploy-heketi-${CLUSTER_NAME}-pod
  53. triggers:
  54. - type: ConfigChange
  55. strategy:
  56. type: Recreate
  57. template:
  58. metadata:
  59. name: deploy-heketi
  60. labels:
  61. glusterfs: deploy-heketi-${CLUSTER_NAME}-pod
  62. deploy-heketi: support
  63. spec:
  64. serviceAccountName: heketi-${CLUSTER_NAME}-service-account
  65. containers:
  66. - name: heketi
  67. image: ${IMAGE_NAME}:${IMAGE_VERSION}
  68. env:
  69. - name: HEKETI_USER_KEY
  70. value: ${HEKETI_USER_KEY}
  71. - name: HEKETI_ADMIN_KEY
  72. value: ${HEKETI_ADMIN_KEY}
  73. - name: HEKETI_EXECUTOR
  74. value: ${HEKETI_EXECUTOR}
  75. - name: HEKETI_FSTAB
  76. value: /var/lib/heketi/fstab
  77. - name: HEKETI_SNAPSHOT_LIMIT
  78. value: '14'
  79. - name: HEKETI_KUBE_GLUSTER_DAEMONSET
  80. value: '1'
  81. - name: HEKETI_KUBE_NAMESPACE
  82. value: ${HEKETI_KUBE_NAMESPACE}
  83. ports:
  84. - containerPort: 8080
  85. volumeMounts:
  86. - name: db
  87. mountPath: /var/lib/heketi
  88. - name: topology
  89. mountPath: ${TOPOLOGY_PATH}
  90. - name: config
  91. mountPath: /etc/heketi
  92. readinessProbe:
  93. timeoutSeconds: 3
  94. initialDelaySeconds: 3
  95. httpGet:
  96. path: /hello
  97. port: 8080
  98. livenessProbe:
  99. timeoutSeconds: 3
  100. initialDelaySeconds: 30
  101. httpGet:
  102. path: /hello
  103. port: 8080
  104. volumes:
  105. - name: db
  106. - name: topology
  107. secret:
  108. secretName: heketi-${CLUSTER_NAME}-topology-secret
  109. - name: config
  110. secret:
  111. secretName: heketi-${CLUSTER_NAME}-config-secret
  112. parameters:
  113. - name: HEKETI_USER_KEY
  114. displayName: Heketi User Secret
  115. description: Set secret for those creating volumes as type _user_
  116. - name: HEKETI_ADMIN_KEY
  117. displayName: Heketi Administrator Secret
  118. description: Set secret for administration of the Heketi service as user _admin_
  119. - name: HEKETI_EXECUTOR
  120. displayName: heketi executor type
  121. description: Set the executor type, kubernetes or ssh
  122. value: kubernetes
  123. - name: HEKETI_KUBE_NAMESPACE
  124. displayName: Namespace
  125. description: Set the namespace where the GlusterFS pods reside
  126. value: default
  127. - name: HEKETI_ROUTE
  128. displayName: heketi route name
  129. description: Set the hostname for the route URL
  130. value: "heketi-glusterfs"
  131. - name: IMAGE_NAME
  132. displayName: heketi container image name
  133. required: True
  134. - name: IMAGE_VERSION
  135. displayName: heketi container image version
  136. required: True
  137. - name: CLUSTER_NAME
  138. displayName: GlusterFS cluster name
  139. description: A unique name to identify this heketi service, useful for running multiple heketi instances
  140. value: glusterfs
  141. - name: TOPOLOGY_PATH
  142. displayName: heketi topology file location
  143. required: True