heketi-template.yml 3.7 KB

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