summaryrefslogtreecommitdiffstats
path: root/roles/openshift_storage_glusterfs/files/v3.6/heketi-template.yml
blob: e3fa0a9fbf643c48571b23b9b469d120f50037ab (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
---
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: kubernetes
          - 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
          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
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_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