---
kind: Template
apiVersion: v1
metadata:
  name: glusterfs
  labels:
    glusterfs: template
  annotations:
    description: GlusterFS DaemonSet template
    tags: glusterfs
objects:
- kind: DaemonSet
  apiVersion: extensions/v1beta1
  metadata:
    name: glusterfs
    labels:
      glusterfs: daemonset
    annotations:
      description: GlusterFS DaemonSet
      tags: glusterfs
  spec:
    selector:
      matchLabels:
        glusterfs-node: pod
    template:
      metadata:
        name: glusterfs
        labels:
          glusterfs-node: pod
      spec:
        nodeSelector:
          storagenode: glusterfs
        hostNetwork: true
        containers:
        - name: glusterfs
          image: ${IMAGE_NAME}:${IMAGE_VERSION}
          imagePullPolicy: IfNotPresent
          volumeMounts:
          - name: glusterfs-heketi
            mountPath: "/var/lib/heketi"
          - name: glusterfs-run
            mountPath: "/run"
          - name: glusterfs-lvm
            mountPath: "/run/lvm"
          - name: glusterfs-etc
            mountPath: "/etc/glusterfs"
          - name: glusterfs-logs
            mountPath: "/var/log/glusterfs"
          - name: glusterfs-config
            mountPath: "/var/lib/glusterd"
          - name: glusterfs-dev
            mountPath: "/dev"
          - name: glusterfs-misc
            mountPath: "/var/lib/misc/glusterfsd"
          - name: glusterfs-cgroup
            mountPath: "/sys/fs/cgroup"
            readOnly: true
          - name: glusterfs-ssl
            mountPath: "/etc/ssl"
            readOnly: true
          securityContext:
            capabilities: {}
            privileged: true
          readinessProbe:
            timeoutSeconds: 3
            initialDelaySeconds: 100
            exec:
              command:
              - "/bin/bash"
              - "-c"
              - systemctl status glusterd.service
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
          livenessProbe:
            timeoutSeconds: 3
            initialDelaySeconds: 100
            exec:
              command:
              - "/bin/bash"
              - "-c"
              - systemctl status glusterd.service
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
          resources: {}
          terminationMessagePath: "/dev/termination-log"
        volumes:
        - name: glusterfs-heketi
          hostPath:
            path: "/var/lib/heketi"
        - name: glusterfs-run
          emptyDir: {}
        - name: glusterfs-lvm
          hostPath:
            path: "/run/lvm"
        - name: glusterfs-etc
          hostPath:
            path: "/etc/glusterfs"
        - name: glusterfs-logs
          hostPath:
            path: "/var/log/glusterfs"
        - name: glusterfs-config
          hostPath:
            path: "/var/lib/glusterd"
        - name: glusterfs-dev
          hostPath:
            path: "/dev"
        - name: glusterfs-misc
          hostPath:
            path: "/var/lib/misc/glusterfsd"
        - name: glusterfs-cgroup
          hostPath:
            path: "/sys/fs/cgroup"
        - name: glusterfs-ssl
          hostPath:
            path: "/etc/ssl"
        restartPolicy: Always
        terminationGracePeriodSeconds: 30
        dnsPolicy: ClusterFirst
        securityContext: {}
parameters:
- name: IMAGE_NAME
  displayName: GlusterFS container name
  required: True
- name: IMAGE_VERSION
  displayName: GlusterFS container versiona
  required: True
