# Configs section
# Note: using ".." for ports, because in v1 there is a bug
# which leads to an error
# "..error unmarshaling JSON: json: cannot unmarshal number into Go value of type string.."
# (https://github.com/kubernetes/kubernetes/issues/2763)
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: env
  namespace: kube-system
data:
  AAA_MODE: no-auth
  ANALYTICS_API_VIP: ""
  ANALYTICS_NODES: 10.0.0.41,
  ANALYTICSDB_NODES: 10.0.0.41,
  ANALYTICS_SNMP_NODES: 10.0.0.41,
  ANALYTICS_ALARM_NODES: 10.0.0.41,
  ANALYTICSDB_ENABLE: "true"
  ANALYTICS_ALARM_ENABLE: "true"
  ANALYTICS_SNMP_ENABLE: "true"
  AUTH_MODE: noauth
  CLOUD_ORCHESTRATOR: kubernetes
  CONFIG_API_VIP: ""
  CONFIG_NODES: 10.0.0.41,
  CONFIGDB_NODES: 10.0.0.41,
  CONTROL_NODES: 10.0.0.41 
  CONTROLLER_NODES: 10.0.0.41,
  KUBERNETES_IP_FABRIC_FORWARDING: "false"
  KUBERNETES_IP_FABRIC_SNAT: "true"
  KUBERNETES_PUBLIC_FIP_POOL: "{'project' : 'k8s-default', 'domain': 'default-domain', 'name': '__fip_pool_public__' , 'network' : '__public__'}"
  LOG_LEVEL: SYS_NOTICE
  METADATA_PROXY_SECRET: contrail
  PHYSICAL_INTERFACE: eth0
  RABBITMQ_NODES: 10.0.0.41,
  RABBITMQ_NODE_PORT: "5673"
  VROUTER_GATEWAY: 10.0.0.1
  HUGE_PAGES_2MB: "128"
  WEBUI_NODES: 10.0.0.41,
  WEBUI_VIP: ""
---
# default params will be set in provisioner environment
apiVersion: v1
kind: ConfigMap
metadata:
  name: defaults-env
  namespace: kube-system
data:
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: configzookeeperenv
  namespace: kube-system
data:
  ZOOKEEPER_NODES: 10.0.0.41,
  ZOOKEEPER_PORT: "2181"
  ZOOKEEPER_PORTS: "2888:3888"
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: opensdn-analyticsdb-config
  namespace: kube-system
data:
  JVM_EXTRA_OPTS: -Xms1g -Xmx2g
  CASSANDRA_SEEDS: 10.0.0.41,
  CASSANDRA_CLUSTER_NAME: Contrail
  CASSANDRA_START_RPC: "true"
  CASSANDRA_LISTEN_ADDRESS: auto
  CASSANDRA_PORT: "9160"
  CASSANDRA_CQL_PORT: "9042"
  CASSANDRA_SSL_STORAGE_PORT: "7001"
  CASSANDRA_STORAGE_PORT: "7000"
  CASSANDRA_JMX_LOCAL_PORT: "7200"
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: opensdn-configdb-config
  namespace: kube-system
data:
  JVM_EXTRA_OPTS: -Xms1g -Xmx2g
  CASSANDRA_SEEDS: 10.0.0.41,
  CASSANDRA_CLUSTER_NAME: ContrailConfigDB
  CASSANDRA_START_RPC: "true"
  CASSANDRA_LISTEN_ADDRESS: auto
  CASSANDRA_PORT: "9161"
  CASSANDRA_CQL_PORT: "9041"
  CASSANDRA_SSL_STORAGE_PORT: "7011"
  CASSANDRA_STORAGE_PORT: "7010"
  CASSANDRA_JMX_LOCAL_PORT: "7201"
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: rabbitmq-config
  namespace: kube-system
data:
  RABBITMQ_ERLANG_COOKIE: "47EFF3BB-4786-46E0-A5BB-58455B3C2CB4"
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-manager-config
  namespace: kube-system
data:
  KUBERNETES_API_SERVER: 10.0.0.41
  KUBERNETES_API_SECURE_PORT: "6443"
  K8S_TOKEN_FILE: "/tmp/serviceaccount/token"

# Containers section
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: config-zookeeper
  namespace: kube-system
  labels:
    app: config-zookeeper
spec:
  selector:
    matchLabels:
      app: config-zookeeper
  template:
    metadata:
      labels:
        app: config-zookeeper
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/configdb"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      containers:
      - name: config-zookeeper
        image: "nexus.gz1.opensdn.io:5101/opensdn-external-zookeeper:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        env:
        - name: NODE_TYPE
          value: config-database
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        volumeMounts:
        - mountPath: /var/lib/zookeeper
          name: zookeeper-data
        - mountPath: /var/log/zookeeper
          name: zookeeper-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: zookeeper-data
        hostPath:
          path: /var/lib/contrail/config-zookeeper
      - name: zookeeper-logs
        hostPath:
          path: /var/log/contrail/config-zookeeper
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: opensdn-analyticsdb
  namespace: kube-system
  labels:
    app: opensdn-analyticsdb
spec:
  selector:
    matchLabels:
      app: opensdn-analyticsdb
  template:
    metadata:
      labels:
        app: opensdn-analyticsdb
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/analyticsdb"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      initContainers:
      - name: opensdn-node-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-node-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        env:
        - name: NODE_TYPE
          value: "database"
        - name: CONTRAIL_STATUS_IMAGE
          value: "nexus.gz1.opensdn.io:5101/opensdn-status:master-2_5_8_5-1_0"
        envFrom:
        - configMapRef:
            name: opensdn-analyticsdb-config
        securityContext:
          privileged: true
        volumeMounts:
        - mountPath: /host/usr/bin
          name: host-usr-bin
        - mountPath: /host/var/lib
          name: host-var-lib
        - mountPath: /etc/timezone
          name: host-etc-timezone
        - mountPath: /etc/sysctl.d
          name: host-etc-sysctl-d
        - mountPath: /etc/localtime
          name: host-etc-localtime
        - mountPath: /etc/hosts
          name: host-etc-hosts
      containers:
      - name: opensdn-analyticsdb-nodemgr
        image: "nexus.gz1.opensdn.io:5101/opensdn-nodemgr:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: opensdn-analyticsdb-config
        env:
        - name: NODE_TYPE
          value: database
        - name: DATABASE_NODEMGR__DEFAULTS__minimum_diskGB
          value: "2"
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        - mountPath: /var/run
          name: var-run
        - mountPath: /run/runc
          name: run-runc
      - name: opensdn-analyticsdb-provisioner
        image: "nexus.gz1.opensdn.io:5101/opensdn-provisioner:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: defaults-env
        - configMapRef:
            name: opensdn-analyticsdb-config
        env:
        - name: NODE_TYPE
          value: database
        - name: DATABASE_NODEMGR__DEFAULTS__minimum_diskGB
          value: "2"
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-analyticsdb
        image: "nexus.gz1.opensdn.io:5101/opensdn-external-cassandra:master-2_5_8_5-1_0"
        securityContext:
          capabilities:
            add: ["SYS_NICE"]
        imagePullPolicy: ""
        env:
        - name: NODE_TYPE
          value: database
        envFrom:
        - configMapRef:
            name: opensdn-analyticsdb-config
        volumeMounts:
        - mountPath: /var/lib/cassandra
          name: analyticsdb-data
        - mountPath: /var/log/cassandra
          name: analyticsdb-logs
      - name: opensdn-analytics-query-engine
        image: "nexus.gz1.opensdn.io:5101/opensdn-analytics-query-engine:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        env:
        - name: NODE_TYPE
          value: database
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: analyticsdb-data
        hostPath:
          path: /var/lib/contrail/analyticsdb
      - name: analyticsdb-logs
        hostPath:
          path: /var/log/contrail/database
      - name: opensdn-logs
        hostPath:
          path: /var/log/contrail
      - name: var-run
        hostPath:
          path: /var/run
      - name: run-runc
        hostPath:
          path: /run/runc
      - name: host-usr-bin
        hostPath:
          path: /usr/bin
      - name: host-var-lib
        hostPath:
          path: /var/lib
      - name: host-etc-timezone
        hostPath:
          path: /etc/timezone
      - name: host-etc-sysctl-d
        hostPath:
          path: /etc/sysctl.d
      - name: host-etc-localtime
        hostPath:
          path: /etc/localtime
      - name: host-etc-hosts
        hostPath:
          path: /etc/hosts

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: opensdn-configdb
  namespace: kube-system
  labels:
    app: opensdn-configdb
spec:
  selector:
    matchLabels:
      app: opensdn-configdb
  template:
    metadata:
      labels:
        app: opensdn-configdb
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/configdb"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      containers:
      - name: opensdn-configdb
        image: "nexus.gz1.opensdn.io:5101/opensdn-external-cassandra:master-2_5_8_5-1_0"
        securityContext:
          capabilities:
            add: ["SYS_NICE"]
        imagePullPolicy: ""
        env:
        - name: NODE_TYPE
          value: config-database
        envFrom:
        - configMapRef:
            name: opensdn-configdb-config
        volumeMounts:
        - mountPath: /var/lib/cassandra
          name: configdb-data
        - mountPath: /var/log/cassandra
          name: configdb-logs
      - name: opensdn-config-database-nodemgr
        image: "nexus.gz1.opensdn.io:5101/opensdn-nodemgr:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: opensdn-configdb-config
        env:
        - name: NODE_TYPE
          value: config-database
        - name: CONFIG_DATABASE_NODEMGR__DEFAULTS__minimum_diskGB
          value: "2"
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        - mountPath: /var/run
          name: var-run
        - mountPath: /run/runc
          name: run-runc
      - name: opensdn-config-database-provisioner
        image: "nexus.gz1.opensdn.io:5101/opensdn-provisioner:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: defaults-env
        - configMapRef:
            name: opensdn-configdb-config
        env:
        - name: NODE_TYPE
          value: config-database
        - name: CONFIG_DATABASE_NODEMGR__DEFAULTS__minimum_diskGB
          value: "2"
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: configdb-data
        hostPath:
          path: /var/lib/contrail/configdb
      - name: configdb-logs
        hostPath:
          path: /var/log/contrail/config-database
      - name: var-run
        hostPath:
          path: /var/run
      - name: run-runc
        hostPath:
          path: /run/runc
      - name: host-usr-bin
        hostPath:
          path: /usr/bin
      - name: opensdn-logs
        hostPath:
          path: /var/log/contrail

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: opensdn-analytics
  namespace: kube-system
  labels:
    app: opensdn-analytics
spec:
  selector:
    matchLabels:
      app: opensdn-analytics
  template:
    metadata:
      labels:
        app: opensdn-analytics
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/analytics"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      initContainers:
      - name: opensdn-node-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-node-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        env:
        - name: CONTRAIL_STATUS_IMAGE
          value: "nexus.gz1.opensdn.io:5101/opensdn-status:master-2_5_8_5-1_0"
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /host/usr/bin
          name: host-usr-bin
        - mountPath: /etc/timezone
          name: host-etc-timezone
        - mountPath: /etc/sysctl.d
          name: host-etc-sysctl-d
        - mountPath: /etc/localtime
          name: host-etc-localtime
        - mountPath: /etc/hosts
          name: host-etc-hosts
      containers:
      - name: opensdn-analytics-api
        image: "nexus.gz1.opensdn.io:5101/opensdn-analytics-api:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-analytics-collector
        image: "nexus.gz1.opensdn.io:5101/opensdn-analytics-collector:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          capabilities:
            add: ["SYS_PTRACE"]
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-analytics-nodemgr
        image: "nexus.gz1.opensdn.io:5101/opensdn-nodemgr:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        env:
        - name: NODE_TYPE
          value: analytics
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        - mountPath: /var/run
          name: var-run
        - mountPath: /run/runc
          name: run-runc
      - name: opensdn-analytics-provisioner
        image: "nexus.gz1.opensdn.io:5101/opensdn-provisioner:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: defaults-env
        - configMapRef:
            name: configzookeeperenv
        env:
        - name: NODE_TYPE
          value: analytics
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: var-run
        hostPath:
          path: /var/run
      - name: run-runc
        hostPath:
          path: /run/runc
      - name: host-usr-bin
        hostPath:
          path: /usr/bin
      - name: opensdn-logs
        hostPath:
          path: /var/log/contrail
      - name: host-etc-timezone
        hostPath:
          path: /etc/timezone
      - name: host-etc-sysctl-d
        hostPath:
          path: /etc/sysctl.d
      - name: host-etc-localtime
        hostPath:
          path: /etc/localtime
      - name: host-etc-hosts
        hostPath:
          path: /etc/hosts

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: opensdn-analytics-snmp
  namespace: kube-system
  labels:
    app: opensdn-analytics-snmp
spec:
  selector:
    matchLabels:
      app: opensdn-analytics-snmp
  template:
    metadata:
      labels:
        app: opensdn-analytics-snmp
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/analytics_snmp"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      initContainers:
      - name: opensdn-node-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-node-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        env:
        - name: NODE_TYPE
          value: "analytics-snmp"
        - name: CONTRAIL_STATUS_IMAGE
          value: "nexus.gz1.opensdn.io:5101/opensdn-status:master-2_5_8_5-1_0"
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: opensdn-analyticsdb-config
        securityContext:
          privileged: true
        volumeMounts:
        - mountPath: /host/usr/bin
          name: host-usr-bin
        - mountPath: /host/var/lib
          name: host-var-lib
        - mountPath: /etc/timezone
          name: host-etc-timezone
        - mountPath: /etc/sysctl.d
          name: host-etc-sysctl-d
        - mountPath: /etc/localtime
          name: host-etc-localtime
        - mountPath: /etc/hosts
          name: host-etc-hosts
      containers:
      - name: opensdn-analytics-snmp-collector
        image: "nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-collector:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        env:
        - name: NODE_TYPE
          value: analytics-snmp
      - name: opensdn-analytics-snmp-topology
        image: "nexus.gz1.opensdn.io:5101/opensdn-analytics-snmp-topology:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        env:
        - name: NODE_TYPE
          value: analytics-snmp
      - name: opensdn-analytics-snmp-nodemgr
        image: "nexus.gz1.opensdn.io:5101/opensdn-nodemgr:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: opensdn-analyticsdb-config
        env:
        - name: NODE_TYPE
          value: analytics-snmp
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        - mountPath: /var/run
          name: var-run
        - mountPath: /run/runc
          name: run-runc
      - name: opensdn-analytics-snmp-provisioner
        image: "nexus.gz1.opensdn.io:5101/opensdn-provisioner:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: defaults-env
        - configMapRef:
            name: opensdn-analyticsdb-config
        env:
        - name: NODE_TYPE
          value: analytics-snmp
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: opensdn-logs
        hostPath:
          path: /var/log/contrail
      - name: host-var-lib
        hostPath:
          path: /var/lib
      - name: var-run
        hostPath:
          path: /var/run
      - name: run-runc
        hostPath:
          path: /run/runc
      - name: host-usr-bin
        hostPath:
          path: /usr/bin
      - name: host-etc-timezone
        hostPath:
          path: /etc/timezone
      - name: host-etc-sysctl-d
        hostPath:
          path: /etc/sysctl.d
      - name: host-etc-localtime
        hostPath:
          path: /etc/localtime
      - name: host-etc-hosts
        hostPath:
          path: /etc/hosts

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: opensdn-analytics-alarm
  namespace: kube-system
  labels:
    app: opensdn-analytics-alarm
spec:
  selector:
    matchLabels:
      app: opensdn-analytics-alarm
  template:
    metadata:
      labels:
        app: opensdn-analytics-alarm
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/analytics_alarm"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      initContainers:
      - name: opensdn-node-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-node-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        env:
        - name: NODE_TYPE
          value: "analytics-alarm"
        - name: CONTRAIL_STATUS_IMAGE
          value: "nexus.gz1.opensdn.io:5101/opensdn-status:master-2_5_8_5-1_0"
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: opensdn-analyticsdb-config
        securityContext:
          privileged: true
        volumeMounts:
        - mountPath: /host/usr/bin
          name: host-usr-bin
        - mountPath: /host/var/lib
          name: host-var-lib
        - mountPath: /etc/timezone
          name: host-etc-timezone
        - mountPath: /etc/sysctl.d
          name: host-etc-sysctl-d
        - mountPath: /etc/localtime
          name: host-etc-localtime
        - mountPath: /etc/hosts
          name: host-etc-hosts
      containers:
      - name: kafka
        image: "nexus.gz1.opensdn.io:5101/opensdn-external-kafka:master-2_5_8_5-1_0"
        imagePullPolicy: "IfNotPresent"
        securityContext:
          privileged: true
        env:
        - name: NODE_TYPE
          value: analytics-alarm
        - name: KAFKA_NODES
          value: 10.0.0.41,
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        volumeMounts:
        - mountPath: /var/log/kafka
          name: kafka-logs
      - name: opensdn-analytics-alarm-gen
        image: "nexus.gz1.opensdn.io:5101/opensdn-analytics-alarm-gen:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        env:
        - name: NODE_TYPE
          value: analytics-alarm
      - name: opensdn-analytics-alarm-nodemgr
        image: "nexus.gz1.opensdn.io:5101/opensdn-nodemgr:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: opensdn-analyticsdb-config
        env:
        - name: NODE_TYPE
          value: analytics-alarm
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        - mountPath: /var/run
          name: var-run
        - mountPath: /run/runc
          name: run-runc
      - name: opensdn-analytics-alarm-provisioner
        image: "nexus.gz1.opensdn.io:5101/opensdn-provisioner:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: defaults-env
        - configMapRef:
            name: opensdn-analyticsdb-config
        env:
        - name: NODE_TYPE
          value: analytics-alarm
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: opensdn-logs
        hostPath:
          path: /var/log/contrail
      - name: host-var-lib
        hostPath:
          path: /var/lib
      - name: var-run
        hostPath:
          path: /var/run
      - name: run-runc
        hostPath:
          path: /run/runc
      - name: host-usr-bin
        hostPath:
          path: /usr/bin
      - name: kafka-logs
        hostPath:
          path: /var/log/contrail/kafka
      - name: host-etc-timezone
        hostPath:
          path: /etc/timezone
      - name: host-etc-sysctl-d
        hostPath:
          path: /etc/sysctl.d
      - name: host-etc-localtime
        hostPath:
          path: /etc/localtime
      - name: host-etc-hosts
        hostPath:
          path: /etc/hosts

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: opensdn-controller-control
  namespace: kube-system
  labels:
    app: opensdn-controller-control
spec:
  selector:
    matchLabels:
      app: opensdn-controller-control
  template:
    metadata:
      labels:
        app: opensdn-controller-control
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/control"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      initContainers:
      - name: opensdn-node-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-node-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        env:
        - name: CONTRAIL_STATUS_IMAGE
          value: "nexus.gz1.opensdn.io:5101/opensdn-status:master-2_5_8_5-1_0"
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /host/usr/bin
          name: host-usr-bin
        - mountPath: /etc/timezone
          name: host-etc-timezone
        - mountPath: /etc/sysctl.d
          name: host-etc-sysctl-d
        - mountPath: /etc/localtime
          name: host-etc-localtime
        - mountPath: /etc/hosts
          name: host-etc-hosts
      containers:
      - name: opensdn-controller-control
        image: "nexus.gz1.opensdn.io:5101/opensdn-controller-control-control:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          capabilities:
            add: ["SYS_PTRACE"]
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-controller-control-dns
        image: "nexus.gz1.opensdn.io:5101/opensdn-controller-control-dns:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          capabilities:
            add: ["SYS_PTRACE"]
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /etc/contrail
          name: dns-config
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-controller-control-named
        image: "nexus.gz1.opensdn.io:5101/opensdn-controller-control-named:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        securityContext:
          privileged: true
        volumeMounts:
        - mountPath: /etc/contrail
          name: dns-config
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-controller-nodemgr
        image: "nexus.gz1.opensdn.io:5101/opensdn-nodemgr:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        env:
        - name: NODE_TYPE
          value: control
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        - mountPath: /var/run
          name: var-run
        - mountPath: /run/runc
          name: run-runc
      - name: opensdn-controller-provisioner
        image: "nexus.gz1.opensdn.io:5101/opensdn-provisioner:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: defaults-env
        - configMapRef:
            name: configzookeeperenv
        env:
        - name: NODE_TYPE
          value: control
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: opensdn-logs
        hostPath:
          path: /var/log/contrail
      - name: var-run
        hostPath:
          path: /var/run
      - name: run-runc
        hostPath:
          path: /run/runc
      - name: dns-config
        emptyDir: {}
      - name: host-usr-bin
        hostPath:
          path: /usr/bin
      - name: host-etc-timezone
        hostPath:
          path: /etc/timezone
      - name: host-etc-sysctl-d
        hostPath:
          path: /etc/sysctl.d
      - name: host-etc-localtime
        hostPath:
          path: /etc/localtime
      - name: host-etc-hosts
        hostPath:
          path: /etc/hosts

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: opensdn-controller-config
  namespace: kube-system
  labels:
    app: opensdn-controller-config
spec:
  selector:
    matchLabels:
      app: opensdn-controller-config
  template:
    metadata:
      labels:
        app: opensdn-controller-config
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/config"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      initContainers:
      - name: opensdn-node-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-node-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        env:
        - name: CONTRAIL_STATUS_IMAGE
          value: "nexus.gz1.opensdn.io:5101/opensdn-status:master-2_5_8_5-1_0"
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /host/usr/bin
          name: host-usr-bin
        - mountPath: /etc/timezone
          name: host-etc-timezone
        - mountPath: /etc/sysctl.d
          name: host-etc-sysctl-d
        - mountPath: /etc/localtime
          name: host-etc-localtime
        - mountPath: /etc/hosts
          name: host-etc-hosts
      containers:
      - name: opensdn-controller-config-api
        image: "nexus.gz1.opensdn.io:5101/opensdn-controller-config-api:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-controller-config-devicemgr
        image: "nexus.gz1.opensdn.io:5101/opensdn-controller-config-devicemgr:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-controller-config-schema
        image: "nexus.gz1.opensdn.io:5101/opensdn-controller-config-schema:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-controller-config-svcmonitor
        image: "nexus.gz1.opensdn.io:5101/opensdn-controller-config-svcmonitor:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-controller-config-nodemgr
        image: "nexus.gz1.opensdn.io:5101/opensdn-nodemgr:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: configzookeeperenv
        env:
        - name: NODE_TYPE
          value: config
        - name: CASSANDRA_CQL_PORT
          value: "9041"
        - name: CASSANDRA_JMX_LOCAL_PORT
          value: "7201"
        - name: CONFIG_NODEMGR__DEFAULTS__minimum_diskGB
          value: "2"
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        - mountPath: /var/run
          name: var-run
        - mountPath: /run/runc
          name: run-runc
      - name: opensdn-controller-config-provisioner
        image: "nexus.gz1.opensdn.io:5101/opensdn-provisioner:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: defaults-env
        - configMapRef:
            name: configzookeeperenv
        env:
        - name: NODE_TYPE
          value: config
        - name: CONFIG_NODEMGR__DEFAULTS__minimum_diskGB
          value: "2"
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: opensdn-logs
        hostPath:
          path: /var/log/contrail
      - name: var-run
        hostPath:
          path: /var/run
      - name: run-runc
        hostPath:
          path: /run/runc
      - name: host-usr-bin
        hostPath:
          path: /usr/bin
      - name: host-etc-timezone
        hostPath:
          path: /etc/timezone
      - name: host-etc-sysctl-d
        hostPath:
          path: /etc/sysctl.d
      - name: host-etc-localtime
        hostPath:
          path: /etc/localtime
      - name: host-etc-hosts
        hostPath:
          path: /etc/hosts

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: opensdn-controller-webui
  namespace: kube-system
  labels:
    app: opensdn-controller-webui
spec:
  selector:
    matchLabels:
      app: opensdn-controller-webui
  template:
    metadata:
      labels:
        app: opensdn-controller-webui
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/webui"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      initContainers:
      - name: opensdn-node-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-node-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        env:
        - name: CONTRAIL_STATUS_IMAGE
          value: "nexus.gz1.opensdn.io:5101/opensdn-status:master-2_5_8_5-1_0"
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /host/usr/bin
          name: host-usr-bin
        - mountPath: /etc/timezone
          name: host-etc-timezone
        - mountPath: /etc/sysctl.d
          name: host-etc-sysctl-d
        - mountPath: /etc/localtime
          name: host-etc-localtime
        - mountPath: /etc/hosts
          name: host-etc-hosts
      containers:
      - name: opensdn-controller-webui-job
        image: "nexus.gz1.opensdn.io:5101/opensdn-controller-webui-job:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      - name: opensdn-controller-webui-web
        image: "nexus.gz1.opensdn.io:5101/opensdn-controller-webui-web:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: opensdn-logs
        hostPath:
          path: /var/log/contrail
      - name: host-usr-bin
        hostPath:
          path: /usr/bin
      - name: host-etc-timezone
        hostPath:
          path: /etc/timezone
      - name: host-etc-sysctl-d
        hostPath:
          path: /etc/sysctl.d
      - name: host-etc-localtime
        hostPath:
          path: /etc/localtime
      - name: host-etc-hosts
        hostPath:
          path: /etc/hosts

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: redis
  namespace: kube-system
  labels:
    app: redis
spec:
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/analytics"
                operator: Exists
            - matchExpressions:
              - key: "node-role.opencontrail.org/webui"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      containers:
      - name: redis
        image: "nexus.gz1.opensdn.io:5101/opensdn-external-redis:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /var/lib/redis
          name: redis-data
        - mountPath: /var/log/redis
          name: redis-logs
      volumes:
      - name: redis-data
        hostPath:
          path: /var/lib/contrail/redis
      - name: redis-logs
        hostPath:
          path: /var/log/contrail/redis
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: rabbitmq
  namespace: kube-system
  labels:
    app: rabbitmq
spec:
  selector:
    matchLabels:
      app: rabbitmq
  template:
    metadata:
      labels:
        app: rabbitmq
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/configdb"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      hostNetwork: true
      containers:
      - name: rabbitmq
        image: "nexus.gz1.opensdn.io:5101/opensdn-external-rabbitmq:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        env:
        - name: NODE_TYPE
          value: config-database
        - name: RABBITMQ_LOGS
          value: '/var/log/rabbitmq/rabbitmq.log'
        - name: RABBITMQ_SASL_LOGS
          value: '/var/log/rabbitmq/rabbitmq_sasl.log'
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: rabbitmq-config
        volumeMounts:
        - mountPath: /var/lib/rabbitmq
          name: rabbitmq-data
        - mountPath: /var/log/rabbitmq
          name: rabbitmq-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: rabbitmq-data
        hostPath:
          path: /var/lib/contrail/rabbitmq
      - name: rabbitmq-logs
        hostPath:
          path: /var/log/contrail/rabbitmq
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: opensdn-kube-manager
  namespace: kube-system
  labels:
    app: opensdn-kube-manager
spec:
  selector:
    matchLabels:
      app: opensdn-kube-manager
  template:
    metadata:
      labels:
        app: opensdn-kube-manager
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/config"
                operator: Exists
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      - key: node.kubernetes.io/not-ready
        operator: Exists
        effect: NoSchedule
      automountServiceAccountToken: false
      hostNetwork: true
      initContainers:
      - name: opensdn-node-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-node-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        env:
        - name: CONTRAIL_STATUS_IMAGE
          value: "nexus.gz1.opensdn.io:5101/opensdn-status:master-2_5_8_5-1_0"
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /host/usr/bin
          name: host-usr-bin
        - mountPath: /etc/timezone
          name: host-etc-timezone
        - mountPath: /etc/sysctl.d
          name: host-etc-sysctl-d
        - mountPath: /etc/localtime
          name: host-etc-localtime
        - mountPath: /etc/hosts
          name: host-etc-hosts
      containers:
      - name: opensdn-kube-manager
        image: "nexus.gz1.opensdn.io:5101/opensdn-kubernetes-kube-manager:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: kube-manager-config
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        - mountPath: /tmp/serviceaccount
          name: pod-secret
      imagePullSecrets:
      - name: 
      volumes:
      - name: opensdn-logs
        hostPath:
          path: /var/log/contrail
      - name: pod-secret
        secret:
          secretName: opensdn-kube-manager-token
      - name: host-usr-bin
        hostPath:
          path: /usr/bin
      - name: host-etc-timezone
        hostPath:
          path: /etc/timezone
      - name: host-etc-sysctl-d
        hostPath:
          path: /etc/sysctl.d
      - name: host-etc-localtime
        hostPath:
          path: /etc/localtime
      - name: host-etc-hosts
        hostPath:
          path: /etc/hosts

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: opensdn-agent
  namespace: kube-system
  labels:
    app: opensdn-agent
spec:
  selector:
    matchLabels:
      app: opensdn-agent
  template:
    metadata:
      labels:
        app: opensdn-agent
    spec:
      #Disable affinity for single node setup
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: "node-role.opencontrail.org/agent"
                operator: Exists
      #Enable tolerations for single node setup
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      - key: node.kubernetes.io/not-ready
        operator: Exists
        effect: NoSchedule
      automountServiceAccountToken: false
      hostNetwork: true
      initContainers:
      - name: opensdn-node-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-node-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        env:
        - name: CONTRAIL_STATUS_IMAGE
          value: "nexus.gz1.opensdn.io:5101/opensdn-status:master-2_5_8_5-1_0"
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /host/usr/bin
          name: host-usr-bin
        - mountPath: /etc/timezone
          name: host-etc-timezone
        - mountPath: /etc/sysctl.d
          name: host-etc-sysctl-d
        - mountPath: /etc/localtime
          name: host-etc-localtime
        - mountPath: /etc/hosts
          name: host-etc-hosts
      - name: opensdn-vrouter-kernel-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-vrouter-kernel-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        securityContext:
          privileged: true
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /usr/src
          name: usr-src
        - mountPath: /lib/modules
          name: lib-modules
        - mountPath: /etc/sysconfig/network-scripts
          name: network-scripts
        - mountPath: /host/bin
          name: host-bin
      - name: opensdn-kubernetes-cni-init
        image: "nexus.gz1.opensdn.io:5101/opensdn-kubernetes-cni-init:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        volumeMounts:
        - mountPath: /var/lib/contrail
          name: var-lib-contrail
        - mountPath: /host/etc_cni
          name: etc-cni
        - mountPath: /host/opt_cni_bin
          name: opt-cni-bin
        - mountPath: /host/log_cni
          name: var-log-contrail-cni
        - mountPath: /var/log/contrail
          name: opensdn-logs
      containers:
      - name: opensdn-vrouter-agent
        image: "nexus.gz1.opensdn.io:5101/opensdn-vrouter-agent:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        # TODO: Priveleged mode is requied because w/o it the device /dev/net/tun
        # is not present in the container. The mounting it into container
        # doesnt help because of permissions are not enough syscalls,
        # e.g. https://github.com/Juniper/opensdn-controller/blob/master/src/vnsw/agent/contrail/linux/pkt0_interface.cc: 48.
        securityContext:
          privileged: true
        resources:
          limits:
            hugepages-2Mi: 256Mi
          requests:
            hugepages-2Mi: 256Mi
            memory: 256Mi
        envFrom:
        - configMapRef:
            name: env
        lifecycle:
          preStop:
            exec:
              command: ["/clean-up.sh"]
        volumeMounts:
        - mountPath: /dev
          name: dev
        - mountPath: /var/run
          name: var-run
        - mountPath: /etc/sysconfig/network-scripts
          name: network-scripts
        - mountPath: /host/bin
          name: host-bin
        - mountPath: /host/etc
          name: host-etc
        - mountPath: /var/log/contrail
          name: opensdn-logs
        - mountPath: /usr/src
          name: usr-src
        - mountPath: /lib/modules
          name: lib-modules
        - mountPath: /var/lib/contrail
          name: var-lib-contrail
        - mountPath: /var/crashes
          name: var-crashes
        - mountPath: /tmp/serviceaccount
          name: pod-secret
      - name: opensdn-agent-nodemgr
        image: "nexus.gz1.opensdn.io:5101/opensdn-nodemgr:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        env:
        - name: NODE_TYPE
          value: vrouter
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
        - mountPath: /var/run
          name: var-run
        - mountPath: /run/runc
          name: run-runc
        - mountPath: /var/lib/contrail/loadbalancer
          name: lb-nodemgr
      - name: opensdn-agent-provisioner
        image: "nexus.gz1.opensdn.io:5101/opensdn-provisioner:master-2_5_8_5-1_0"
        imagePullPolicy: ""
        envFrom:
        - configMapRef:
            name: env
        - configMapRef:
            name: defaults-env
        env:
        - name: NODE_TYPE
          value: vrouter
        volumeMounts:
        - mountPath: /var/log/contrail
          name: opensdn-logs
      imagePullSecrets:
      - name: 
      volumes:
      - name: dev
        hostPath:
          path: /dev
      - name: network-scripts
        hostPath:
          path: /etc/sysconfig/network-scripts
      - name: host-bin
        hostPath:
          path: /bin
      - name: host-etc
        hostPath:
          path: /etc
      - name: var-run
        hostPath:
          path: /var/run
      - name: run-runc
        hostPath:
          path: /run/runc
      - name: pod-secret
        secret:
          secretName: opensdn-kube-manager-token
      - name: usr-src
        hostPath:
          path: /usr/src
      - name: lib-modules
        hostPath:
          path: /lib/modules
      - name: var-lib-contrail
        hostPath:
          path: /var/lib/contrail
      - name: var-crashes
        hostPath:
          path: /var/crashes
      - name: etc-cni
        hostPath:
          path: /etc/cni
      - name: opt-cni-bin
        hostPath:
          path: /opt/cni/bin
      - name: var-log-contrail-cni
        hostPath:
          path: /var/log/contrail/cni
      - name: opensdn-logs
        hostPath:
          path: /var/log/contrail
      - name: host-usr-bin
        hostPath:
          path: /usr/bin
      - name: lb-nodemgr
        hostPath:
          path: /var/lib/contrail/loadbalancer
      - name: host-etc-timezone
        hostPath:
          path: /etc/timezone
      - name: host-etc-sysctl-d
        hostPath:
          path: /etc/sysctl.d
      - name: host-etc-localtime
        hostPath:
          path: /etc/localtime
      - name: host-etc-hosts
        hostPath:
          path: /etc/hosts

# Meta information section
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: opensdn-kube-manager
  namespace: kube-system
rules:
  - apiGroups: ["*"]
    resources: ["*"]
    verbs: ["*"]
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: opensdn-kube-manager
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: opensdn-kube-manager
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: opensdn-kube-manager
subjects:
- kind: ServiceAccount
  name: opensdn-kube-manager
  namespace: kube-system
---
apiVersion: v1
kind: Secret
metadata:
  name: opensdn-kube-manager-token
  namespace: kube-system
  annotations:
    kubernetes.io/service-account.name: opensdn-kube-manager
type: kubernetes.io/service-account-token
