Merge "Extend for deploy k8s+contrail"
diff --git a/kubernetes/files/kube-addons/contrail/contrail.yaml b/kubernetes/files/kube-addons/contrail/contrail.yaml
new file mode 100644
index 0000000..7ef4e6f
--- /dev/null
+++ b/kubernetes/files/kube-addons/contrail/contrail.yaml
@@ -0,0 +1,221 @@
+apiVersion: apps/v1beta2
+kind: Deployment
+metadata:
+ name: opencontrail
+ namespace: kube-system
+ labels:
+ app: opencontrail
+ kubernetes.io/cluster-service: "true"
+ addonmanager.kubernetes.io/mode: Reconcile
+spec:
+ replicas: 3
+ selector:
+ matchLabels:
+ app: opencontrail
+ template:
+ metadata:
+ labels:
+ app: opencontrail
+ spec:
+ hostNetwork: true
+ containers:
+ - name: opencontrail-controller
+ image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-controller
+ securityContext:
+ privileged: true
+ lifecycle:
+ postStart:
+ exec:
+ command:
+ - /bin/sh
+ - -c
+ - >
+ systemctl stop rabbitmq-server.service;
+ systemctl disable rabbitmq-server.service;
+ systemctl stop redis-server.service;
+ systemctl disable redis-server.service;
+
+ volumeMounts:
+ - name: etc-contrail
+ mountPath: /etc/contrail
+ - name: var-lib-configdb
+ mountPath: /var/lib/cassandra
+ - name: var-lib-config-zookeeper-data
+ mountPath: /var/lib/zookeeper
+ - name: var-lib-zookeeper-myid
+ mountPath: /var/lib/zookeeper/myid
+ - name: etc-cassandra-cassandra-env-sh
+ mountPath: /etc/cassandra/cassandra-env.sh
+ - name: etc-cassandra-cassandra-yaml
+ mountPath: /etc/cassandra/cassandra.yaml
+ - name: etc-cassandra-logback-xml
+ mountPath: /etc/cassandra/logback.xml
+ - name: etc-zookeeper-conf-zoo-cfg
+ mountPath: /etc/zookeeper/conf/zoo.cfg
+ - name: etc-zookeeper-conf-log4j-properties
+ mountPath: /etc/zookeeper/conf/log4j.properties
+ - name: var-lib-rabbitmq-erlang-cookie
+ mountPath: /var/lib/rabbitmq/.erlang.cookie
+
+ - name: opencontrail-analyticsdb
+ image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-analyticsdb
+ securityContext:
+ privileged: true
+ volumeMounts:
+ - name: etc-contrail
+ mountPath: /etc/contrail
+ - name: etc-cassandra-cassandra-env-analytics-sh
+ mountPath: /etc/cassandra/cassandra-env.sh
+ - name: etc-cassandra-cassandra-analytics-yaml
+ mountPath: /etc/cassandra/cassandra.yaml
+ - name: etc-cassandra-logback-xml
+ mountPath: /etc/cassandra/logback.xml
+ - name: var-lib-analyticsdb
+ mountPath: /var/lib/cassandra
+ - name: var-lib-analyticsdb-zookeeper-data
+ mountPath: /var/lib/zookeeper
+ - name: var-lib-zookeeper-myid
+ mountPath: /var/lib/zookeeper/myid
+ - name: usr-share-kafka-config-server-properties
+ mountPath: /usr/share/kafka/config/server.properties
+ - name: usr-share-kafka-config-consumer-properties
+ mountPath: /usr/share/kafka/config/consumer.properties
+ - name: usr-share-kafka-config-zookeeper-properties
+ mountPath: /usr/share/kafka/config/zookeeper.properties
+ - name: usr-share-kafka-logs
+ mountPath: /usr/share/kafka/logs
+ - name: etc-zookeeper-conf-zoo-analytics-cfg
+ mountPath: /etc/zookeeper/conf/zoo.cfg
+ - name: etc-zookeeper-conf-log4j-properties
+ mountPath: /etc/zookeeper/conf/log4j.properties
+
+ - name: opencontrail-analytics
+ image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-analytics
+ volumeMounts:
+ - name: etc-contrail
+ mountPath: /etc/contrail
+ - name: etc-redis-redis-conf
+ mountPath: /etc/redis/redis.conf
+ securityContext:
+ privileged: true
+
+ - name: rabbitmq
+ image: rabbitmq:3.6.6-management-alpine
+ lifecycle:
+ postStart:
+ exec:
+ command:
+ - /bin/sh
+ - -c
+ - >
+ if [ -z "$(grep rabbitmq /etc/resolv.conf)" ]; then
+ sed "s/^search \([^ ]\+\)/search rabbitmq.\1 \1/" /etc/resolv.conf > /etc/resolv.conf.new;
+ cat /etc/resolv.conf.new > /etc/resolv.conf;
+ rm /etc/resolv.conf.new;
+ fi;
+ until rabbitmqctl node_health_check; do sleep 1; done;
+ if [[ "$HOSTNAME" != "ctl01" && -z "$(rabbitmqctl cluster_status | grep ctl01)" ]]; then
+ rabbitmqctl stop_app;
+ rabbitmqctl join_cluster rabbit@ctl01;
+ rabbitmqctl start_app;
+ fi;
+ rabbitmqctl set_policy ha-all "." '{"ha-mode":"exactly","ha-params":3,"ha-sync-mode":"automatic"}'
+ env:
+ - name: RABBITMQ_ERLANG_COOKIE
+ value: YTQMGYEHFATZPDKPOCXX
+
+ volumes:
+ # analytics / analyticsdb / controller /
+ - name: etc-contrail
+ hostPath:
+ path: /etc/contrail
+ type: Directory
+
+ # controller
+ - name: var-lib-configdb
+ hostPath:
+ path: /var/lib/configdb
+ type: Directory
+ - name: var-lib-config-zookeeper-data
+ hostPath:
+ path: /var/lib/config_zookeeper_data
+ type: Directory
+ - name: etc-cassandra-cassandra-env-sh
+ hostPath:
+ path: /etc/cassandra/cassandra-env.sh
+ type: File
+ - name: etc-cassandra-cassandra-yaml
+ hostPath:
+ path: /etc/cassandra/cassandra.yaml
+ type: File
+ - name: etc-zookeeper-conf-zoo-cfg
+ hostPath:
+ path: /etc/zookeeper/conf/zoo.cfg
+ type: File
+ - name: var-lib-rabbitmq-erlang-cookie
+ hostPath:
+ path: /var/lib/rabbitmq/.erlang.cookie
+ type: File
+
+
+ # analyticsdb
+ - name: etc-cassandra-cassandra-env-analytics-sh
+ hostPath:
+ path: /etc/cassandra/cassandra-env-analytics.sh
+ type: File
+ - name: etc-cassandra-cassandra-analytics-yaml
+ hostPath:
+ path: /etc/cassandra/cassandra_analytics.yaml
+ type: File
+ - name: etc-cassandra-logback-xml # is used by controller as well
+ hostPath:
+ path: /etc/cassandra/logback.xml
+ type: File
+ - name: var-lib-analyticsdb
+ hostPath:
+ path: /var/lib/analyticsdb
+ type: Directory
+ - name: var-lib-analyticsdb-zookeeper-data
+ hostPath:
+ path: /var/lib/analyticsdb-zookeeper-data
+ type: Directory
+ - name: var-lib-zookeeper-myid # is used for controller as well
+ hostPath:
+ path: /var/lib/zookeeper/myid
+ type: File
+ - name: usr-share-kafka-config-server-properties
+ hostPath:
+ path: /usr/share/kafka/config/server.properties
+ type: File
+ - name: usr-share-kafka-config-consumer-properties
+ hostPath:
+ path: /usr/share/kafka/config/consumer.properties
+ type: File
+ - name: usr-share-kafka-config-zookeeper-properties
+ hostPath:
+ path: /usr/share/kafka/config/zookeeper.properties
+ type: File
+ - name: usr-share-kafka-logs
+ hostPath:
+ path: /usr/share/kafka/logs
+ type: Directory
+ - name: etc-zookeeper-conf-zoo-analytics-cfg
+ hostPath:
+ path: /etc/zookeeper/conf/zoo_analytics.cfg
+ type: File
+ - name: etc-zookeeper-conf-log4j-properties # is used by controller as well
+ hostPath:
+ path: /etc/zookeeper/conf/log4j.properties
+ type: File
+
+ # analytics
+ - name: etc-redis-redis-conf
+ hostPath:
+ path: /etc/redis/redis.conf
+ type: File
+
+ nodeSelector:
+ "node-role.kubernetes.io/master": "true"
+ tolerations:
+ - effect: NoSchedule
+ key: node-role.kubernetes.io/master
diff --git a/kubernetes/files/kube-addons/contrail/kube-manager.yaml b/kubernetes/files/kube-addons/contrail/kube-manager.yaml
new file mode 100644
index 0000000..0d8162e
--- /dev/null
+++ b/kubernetes/files/kube-addons/contrail/kube-manager.yaml
@@ -0,0 +1,58 @@
+apiVersion: apps/v1beta2
+kind: Deployment
+metadata:
+ name: kube-manager
+ namespace: kube-system
+ labels:
+ app: kube-manager
+ kubernetes.io/cluster-service: "true"
+ addonmanager.kubernetes.io/mode: Reconcile
+spec:
+ replicas: 3
+ selector:
+ matchLabels:
+ app: kube-manager
+ template:
+ metadata:
+ labels:
+ app: kube-manager
+ spec:
+ hostNetwork: true
+ containers:
+ - name: opencontrail-kube-manager
+ image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-kube-manager
+ securityContext:
+ privileged: true
+ lifecycle:
+ postStart:
+ exec:
+ command:
+ - /bin/sh
+ - -c
+ - >
+ apt update;
+ apt install python-eventlet;
+ service contrail-kube-manager restart;
+
+
+ volumeMounts:
+ - name: etc-kubernetes
+ mountPath: /etc/kubernetes
+ - name: etc-contrail
+ mountPath: /etc/contrail
+
+ volumes:
+ - name: etc-kubernetes
+ hostPath:
+ path: /etc/kubernetes
+ type: Directory
+ - name: etc-contrail
+ hostPath:
+ path: /etc/contrail
+ type: Directory
+
+ nodeSelector:
+ "node-role.kubernetes.io/master": "true"
+ tolerations:
+ - effect: NoSchedule
+ key: node-role.kubernetes.io/master
diff --git a/kubernetes/files/opencontrail/4.0/contrail-kubernetes.conf b/kubernetes/files/opencontrail/4.0/contrail-kubernetes.conf
index 14aafbe..83587bc 100644
--- a/kubernetes/files/opencontrail/4.0/contrail-kubernetes.conf
+++ b/kubernetes/files/opencontrail/4.0/contrail-kubernetes.conf
@@ -32,7 +32,7 @@
kombu_ssl_certfile={{ master.network.message_queue.ssl_certfile }}
kombu_ssl_ca_certs={{ master.network.message_queue.ssl_ca_certs }}
{%- endif %}
-cassandra_server_list={% for member in master.network.database.members %}{{ member.host }}:9160 {% endfor %}
+cassandra_server_list={% for member in master.network.database.members %}{{ member.host }}:{{ member.get('port', '9160')}} {% endfor %}
cassandra_user={{ master.network.database.get('user', None) }}
cassandra_password={{ master.network.database.get('password', None) }}
cluster_id=
diff --git a/kubernetes/master/kube-addons.sls b/kubernetes/master/kube-addons.sls
index dd023d1..2d7d150 100644
--- a/kubernetes/master/kube-addons.sls
+++ b/kubernetes/master/kube-addons.sls
@@ -36,6 +36,24 @@
- dir_mode: 755
- makedirs: True
+{%- elif master.network.engine == "opencontrail" and master.network.get('version', 3.0) > 3.0 %}
+
+/etc/kubernetes/addons/contrail/contrail.yaml:
+ file.managed:
+ - source: salt://kubernetes/files/kube-addons/contrail/contrail.yaml
+ - template: jinja
+ - group: root
+ - dir_mode: 755
+ - makedirs: True
+
+/etc/kubernetes/addons/contrail/kube-manager.yaml:
+ file.managed:
+ - source: salt://kubernetes/files/kube-addons/contrail/kube-manager.yaml
+ - template: jinja
+ - group: root
+ - dir_mode: 755
+ - makedirs: True
+
{% endif %}
{%- if common.addons.get('virtlet', {}).get('enabled') %}
diff --git a/kubernetes/master/opencontrail.sls b/kubernetes/master/opencontrail.sls
index 82a5559..462f992 100644
--- a/kubernetes/master/opencontrail.sls
+++ b/kubernetes/master/opencontrail.sls
@@ -2,32 +2,17 @@
{%- if master.enabled %}
{%- if master.network.get('version', 3.0) != 3.0 %}
-opencontrail_kube_manager_package:
- pkg.installed:
- - name: contrail-kube-manager
- - force_yes: True
-
/etc/contrail/contrail-kubernetes.conf:
file.managed:
- source: salt://kubernetes/files/opencontrail/{{ master.network.version }}/contrail-kubernetes.conf
- template: jinja
- - require:
- - pkg: opencontrail_kube_manager_package
+ - makedirs: True
-{%- if master.network.get('systemd', true) %}
-
-contrail_kube_manager:
- service.running:
- - name: contrail-kube-manager
- - enable: True
- - watch:
- - file: /etc/contrail/contrail-kubernetes.conf
- {%- if grains.get('noservices') %}
- - onlyif: /bin/false
- {%- endif %}
+#/etc/kubernetes/opencontrail/contrail-{{ master.network.version }}.yaml:
+# file.managed:
+# - source: salt://kubernetes/files/manifest/contrail-{{ master.network.version }}.manifest
+# - template: jinja
+# - makedirs: True
{%- endif %}
-
-{%- endif %}
-
{%- endif %}