apiVersion: "v1"
kind: "Template"
metadata:
  name: logging-deployer-template
  annotations:
    description: "Template for deploying everything needed for aggregated logging. Requires cluster-admin 'logging-deployer' service account and 'logging-deployer' secret."
    tags: "infrastructure"
labels:
  logging-infra: deployer
  provider: openshift
  component: deployer
objects:
-
  apiVersion: v1
  kind: Pod
  metadata:
    generateName: logging-deployer-
  spec:
    containers:
    - image: ${IMAGE_PREFIX}logging-deployment:${IMAGE_VERSION}
      imagePullPolicy: Always
      name: deployer
      volumeMounts:
      - name: secret
        mountPath: /secret
        readOnly: true
      - name: empty
        mountPath: /etc/deploy
      env:
        - name: PROJECT
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: IMAGE_PREFIX
          value: ${IMAGE_PREFIX}
        - name: IMAGE_VERSION
          value: ${IMAGE_VERSION}
        - name: ENABLE_OPS_CLUSTER
          value: ${ENABLE_OPS_CLUSTER}
        - name: KIBANA_HOSTNAME
          value: ${KIBANA_HOSTNAME}
        - name: KIBANA_OPS_HOSTNAME
          value: ${KIBANA_OPS_HOSTNAME}
        - name: PUBLIC_MASTER_URL
          value: ${PUBLIC_MASTER_URL}
        - name: MASTER_URL
          value: ${MASTER_URL}
        - name: ES_INSTANCE_RAM
          value: ${ES_INSTANCE_RAM}
        - name: ES_CLUSTER_SIZE
          value: ${ES_CLUSTER_SIZE}
        - name: ES_NODE_QUORUM
          value: ${ES_NODE_QUORUM}
        - name: ES_RECOVER_AFTER_NODES
          value: ${ES_RECOVER_AFTER_NODES}
        - name: ES_RECOVER_EXPECTED_NODES
          value: ${ES_RECOVER_EXPECTED_NODES}
        - name: ES_RECOVER_AFTER_TIME
          value: ${ES_RECOVER_AFTER_TIME}
        - name: ES_OPS_INSTANCE_RAM
          value: ${ES_OPS_INSTANCE_RAM}
        - name: ES_OPS_CLUSTER_SIZE
          value: ${ES_OPS_CLUSTER_SIZE}
        - name: ES_OPS_NODE_QUORUM
          value: ${ES_OPS_NODE_QUORUM}
        - name: ES_OPS_RECOVER_AFTER_NODES
          value: ${ES_OPS_RECOVER_AFTER_NODES}
        - name: ES_OPS_RECOVER_EXPECTED_NODES
          value: ${ES_OPS_RECOVER_EXPECTED_NODES}
        - name: ES_OPS_RECOVER_AFTER_TIME
          value: ${ES_OPS_RECOVER_AFTER_TIME}
        - name: MODE
          value: ${MODE}
    dnsPolicy: ClusterFirst
    restartPolicy: Never
    serviceAccount: logging-deployer
    volumes:
    - name: empty
      emptyDir: {}
    - name: secret
      secret:
        secretName: logging-deployer
parameters:
-
  description: 'Specify image prefix for logging components; e.g. for "registry.access.redhat.com/openshift3/logging-deployment:3.2.1", set prefix "registry.access.redhat.com/openshift3/"'
  name: IMAGE_PREFIX
  value: registry.access.redhat.com/openshift3/
-
  description: 'Specify version for logging components; e.g. for "registry.access.redhat.com/openshift3/logging-deployment:3.2.1", set version "3.2.1"'
  name: IMAGE_VERSION
  value: "3.2.1"
-
  description: "If true, set up to use a second ES cluster for ops logs."
  name: ENABLE_OPS_CLUSTER
  value: "false"
-
  description: "External hostname where clients will reach kibana"
  name: KIBANA_HOSTNAME
  required: true
-
  description: "External hostname at which admins will visit the ops Kibana."
  name: KIBANA_OPS_HOSTNAME
  value: kibana-ops.example.com
-
  description: "External URL for the master, for OAuth purposes"
  name: PUBLIC_MASTER_URL
  required: true
-
  description: "Internal URL for the master, for authentication retrieval"
  name: MASTER_URL
  value: "https://kubernetes.default.svc.cluster.local"
-
  description: "Amount of RAM to reserve per ElasticSearch instance."
  name: ES_INSTANCE_RAM
  value: "8G"
-
  description: "How many instances of ElasticSearch to deploy."
  name: ES_CLUSTER_SIZE
  required: true
-
  description: "Number of nodes required to elect a master (ES minimum_master_nodes). By default, derived from ES_CLUSTER_SIZE / 2 + 1."
  name: ES_NODE_QUORUM
-
  description: "Number of nodes required to be present before the cluster will recover from a full restart. By default, one fewer than ES_CLUSTER_SIZE."
  name: ES_RECOVER_AFTER_NODES
-
  description: "Number of nodes desired to be present before the cluster will recover from a full restart. By default, ES_CLUSTER_SIZE."
  name: ES_RECOVER_EXPECTED_NODES
-
  description: "Timeout for *expected* nodes to be present when cluster is recovering from a full restart."
  name: ES_RECOVER_AFTER_TIME
  value: "5m"
-
  description: "Amount of RAM to reserve per ops ElasticSearch instance."
  name: ES_OPS_INSTANCE_RAM
  value: "8G"
-
  description: "How many ops instances of ElasticSearch to deploy. By default, ES_CLUSTER_SIZE."
  name: ES_OPS_CLUSTER_SIZE
-
  description: "Number of ops nodes required to elect a master (ES minimum_master_nodes). By default, derived from ES_CLUSTER_SIZE / 2 + 1."
  name: ES_OPS_NODE_QUORUM
-
  description: "Number of ops nodes required to be present before the cluster will recover from a full restart. By default, one fewer than ES_OPS_CLUSTER_SIZE."
  name: ES_OPS_RECOVER_AFTER_NODES
-
  description: "Number of ops nodes desired to be present before the cluster will recover from a full restart. By default, ES_OPS_CLUSTER_SIZE."
  name: ES_OPS_RECOVER_EXPECTED_NODES
-
  description: "Timeout for *expected* ops nodes to be present when cluster is recovering from a full restart."
  name: ES_OPS_RECOVER_AFTER_TIME
  value: "5m"
-
  description: "The mode that the deployer runs in."
  name: MODE
  value: "install"
