summaryrefslogtreecommitdiffstats
path: root/roles/openshift_storage_glusterfs/files/v3.6/heketi-template.yml
blob: 61b6a8c13ba8d09ae765590aebe0d2d2b619c126 (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
---
kind: Template
apiVersion: v1
metadata:
  name: heketi
  labels:
    glusterfs: heketi-template
  annotations:
    description: Heketi service deployment template
    tags: glusterfs,heketi
objects:
- kind: Service
  apiVersion: v1
  metadata:
    name: heketi-${CLUSTER_NAME}
    labels:
      glusterfs: heketi-${CLUSTER_NAME}-service
    annotations:
      description: Exposes Heketi service
  spec:
    ports:
    - name: heketi
      port: 8080
      targetPort: 8080
    selector:
      glusterfs: heketi-${CLUSTER_NAME}-pod
- kind: Route
  apiVersion: v1
  metadata:
    name: ${HEKETI_ROUTE}
    labels:
      glusterfs: heketi-${CLUSTER_NAME}-route
  spec:
    to:
      kind: Service
      name: heketi-${CLUSTER_NAME}
- kind: DeploymentConfig
  apiVersion: v1
  metadata:
    name: heketi-${CLUSTER_NAME}
    labels:
      glusterfs: heketi-${CLUSTER_NAME}-dc
    annotations:
      description: Defines how to deploy Heketi
  spec:
    replicas: 1
    selector:
      glusterfs: heketi-${CLUSTER_NAME}-pod
    triggers:
    - type: ConfigChange
    strategy:
      type: Recreate
    template:
      metadata:
        name: heketi-${CLUSTER_NAME}
        labels:
          glusterfs: heketi-${CLUSTER_NAME}-pod
      spec:
        serviceAccountName: heketi-${CLUSTER_NAME}-service-account
        containers:
        - name: heketi
          image: ${IMAGE_NAME}:${IMAGE_VERSION}
          imagePullPolicy: IfNotPresent
          env:
          - name: HEKETI_USER_KEY
            value: ${HEKETI_USER_KEY}
          - name: HEKETI_ADMIN_KEY
            value: ${HEKETI_ADMIN_KEY}
          - name: HEKETI_EXECUTOR
            value: ${HEKETI_EXECUTOR}
          - name: HEKETI_FSTAB
            value: /var/lib/heketi/fstab
          - name: HEKETI_SNAPSHOT_LIMIT
            value: '14'
          - name: HEKETI_KUBE_GLUSTER_DAEMONSET
            value: '1'
          - name: HEKETI_KUBE_NAMESPACE
            value: ${HEKETI_KUBE_NAMESPACE}
          ports:
          - containerPort: 8080
          volumeMounts:
          - name: db
            mountPath: /var/lib/heketi
          - name: config
            mountPath: /etc/heketi
          readinessProbe:
            timeoutSeconds: 3
            initialDelaySeconds: 3
            httpGet:
              path: /hello
              port: 8080
          livenessProbe:
            timeoutSeconds: 3
            initialDelaySeconds: 30
            httpGet:
              path: /hello
              port: 8080
        volumes:
        - name: db
          glusterfs:
            endpoints: heketi-db-${CLUSTER_NAME}-endpoints
            path: heketidbstorage
        - name: config
          secret:
            secretName: heketi-${CLUSTER_NAME}-config-secret
parameters:
- name: HEKETI_USER_KEY
  displayName: Heketi User Secret
  description: Set secret for those creating volumes as type _user_
- name: HEKETI_ADMIN_KEY
  displayName: Heketi Administrator Secret
  description: Set secret for administration of the Heketi service as user _admin_
- name: HEKETI_EXECUTOR
  displayName: heketi executor type
  description: Set the executor type, kubernetes or ssh
  value: kubernetes
- name: HEKETI_KUBE_NAMESPACE
  displayName: Namespace
  description: Set the namespace where the GlusterFS pods reside
  value: default
- name: HEKETI_ROUTE
  displayName: heketi route name
  description: Set the hostname for the route URL
  value: "heketi-glusterfs"
- name: IMAGE_NAME
  displayName: heketi container image name
  required: True
- name: IMAGE_VERSION
  displayName: heketi container image version
  required: True
- name: CLUSTER_NAME
  displayName: GlusterFS cluster name
  description: A unique name to identify this heketi service, useful for running multiple heketi instances
  value: glusterfs