Merge "Fix Kafka config path for AnalyticsDB 4.0x4.1"
diff --git a/kubernetes/control/endpoint.sls b/kubernetes/control/endpoint.sls
index 4bb4df3..962855e 100644
--- a/kubernetes/control/endpoint.sls
+++ b/kubernetes/control/endpoint.sls
@@ -20,7 +20,7 @@
{%- if endpoint.get('create', false) %}
{%- set service_name = endpoint.service + '-' + endpoint.role if endpoint.role is defined else endpoint.service %}
kubernetes_service_create_{{ endpoint.service }}:
- cmd.run:
+ cmd.wait:
- name: kubectl apply -f /srv/kubernetes/services/{{ endpoint.cluster }}/{{ endpoint.service }}-svc.yml
- unless: kubectl get service -o=custom-columns=NAME:.metadata.name --namespace {{ endpoint.namespace }} | grep -xq {{ endpoint.service }}
{%- if grains.get('noservices') %}
@@ -47,7 +47,7 @@
{%- if endpoint.get('create', false) %}
kubernetes_endpoint_create_{{ endpoint_name }}:
- cmd.run:
+ cmd.wait:
- name: kubectl apply -f /srv/kubernetes/endpoints/{{ endpoint.cluster }}/{{ endpoint_name }}.yml
- unless: kubectl get endpoint -o=custom-columns=NAME:.metadata.name --namespace {{ endpoint.namespace }} | grep -xq {{ endpoint_name }}
{%- if grains.get('noservices') %}
diff --git a/kubernetes/control/ingress.sls b/kubernetes/control/ingress.sls
new file mode 100644
index 0000000..8a262dc
--- /dev/null
+++ b/kubernetes/control/ingress.sls
@@ -0,0 +1,34 @@
+{% from "kubernetes/map.jinja" import control with context %}
+include:
+ - kubernetes.control
+
+{%- for ingress_name, ingress in control.ingress.items() %}
+ {%- if ingress.get('enabled', false) %}
+
+/srv/kubernetes/ingress/{{ ingress.cluster }}/{{ ingress_name }}-ingress.yml:
+ file.managed:
+ - source: salt://kubernetes/files/ingress.yml
+ - user: root
+ - group: root
+ - template: jinja
+ - makedirs: true
+ - require:
+ - file: /srv/kubernetes
+ - defaults:
+ ingress: {{ ingress|yaml }}
+ ingress_name: {{ ingress_name }}
+
+ {%- if ingress.get('create', false) %}
+kubernetes_ingress_create_{{ ingress_name }}:
+ cmd.wait:
+ - name: kubectl apply -f /srv/kubernetes/ingress/{{ ingress.cluster }}/{{ ingress_name }}-ingress.yml
+ - unless: kubectl get ingress -o=custom-columns=NAME:.metadata.name --namespace {{ ingress.namespace }} | grep -xq {{ ingress_name }}
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
+ - watch:
+ - file: /srv/kubernetes/ingress/{{ ingress.cluster }}/{{ ingress_name }}-ingress.yml
+ {%- endif %}
+
+ {%- endif %}
+{%- endfor %}
diff --git a/kubernetes/control/init.sls b/kubernetes/control/init.sls
index 508f167..18d8b11 100644
--- a/kubernetes/control/init.sls
+++ b/kubernetes/control/init.sls
@@ -18,6 +18,9 @@
{%- if control.endpoints is defined %}
- kubernetes.control.endpoint
{%- endif %}
+ {%- if control.ingress is defined %}
+ - kubernetes.control.ingress
+ {%- endif %}
/srv/kubernetes:
file.directory:
diff --git a/kubernetes/control/service.sls b/kubernetes/control/service.sls
index 3e28bf7..4e94a56 100644
--- a/kubernetes/control/service.sls
+++ b/kubernetes/control/service.sls
@@ -20,7 +20,7 @@
{%- if service.get('create', false) %}
{%- set service_real_name = service.service + '-' + service.role if service.role is defined else service.service %}
kubernetes_service_create_{{ service_name }}:
- cmd.run:
+ cmd.wait:
- name: kubectl apply -f /srv/kubernetes/services/{{ service.cluster }}/{{ service_name }}-svc.yml
- unless: kubectl get service -o=custom-columns=NAME:.metadata.name --namespace {{ service.namespace }} | grep -xq {{ service_real_name }}
{%- if grains.get('noservices') %}
@@ -47,7 +47,7 @@
{%- if service.get('create', false) %}
{%- set service_real_name = service.service + '-' + service.role if service.role is defined else service.service %}
kubernetes_{{ service.kind|lower }}_create_{{ service_name }}:
- cmd.run:
+ cmd.wait:
- name: kubectl apply -f /srv/kubernetes/{{ service.kind|lower }}/{{ service_name }}-{{ service.kind }}.yml
- unless: kubectl get {{ service.kind|lower }} -o=custom-columns=NAME:.metadata.name --namespace {{ service.namespace }} | grep -xq {{ service_real_name }}
{%- if grains.get('noservices') %}
@@ -80,7 +80,7 @@
{%- if service.get('create', false) %}
{%- set service_real_name = service.service + '-' + service.role if service.role is defined else service.service %}
kubernetes_service_create_{{ service.service }}:
- cmd.run:
+ cmd.wait:
- name: kubectl apply -f /srv/kubernetes/services/{{ node_name }}-svc.yml
- unless: kubectl get service -o=custom-columns=NAME:.metadata.name --namespace {{ service.namespace }} | grep -xq {{ service_real_name }}
{%- if grains.get('noservices') %}
@@ -106,7 +106,7 @@
{%- if service.get('create', false) %}
{%- set service_real_name = service.service + '-' + service.role if service.role is defined else service.service %}
kubernetes_{{ service.kind|lower }}_create_{{ service_name }}:
- cmd.run:
+ cmd.wait:
- name: kubectl apply -f /srv/kubernetes/{{ service.kind|lower }}/{{ node_name }}-{{ service.kind }}.yml
- unless: kubectl get {{ service.kind|lower }} -o=custom-columns=NAME:.metadata.name --namespace {{ service.namespace }} | grep -xq {{ service_real_name }}
{%- if grains.get('noservices') %}
diff --git a/kubernetes/files/ingress.yml b/kubernetes/files/ingress.yml
new file mode 100644
index 0000000..5fb1cf0
--- /dev/null
+++ b/kubernetes/files/ingress.yml
@@ -0,0 +1,41 @@
+{% from "kubernetes/map.jinja" import control with context %}
+apiVersion: {{ ingress.apiVersion }}
+kind: Ingress
+metadata:
+ name: {{ ingress_name }}
+ namespace: {{ ingress.namespace }}
+ {%- if ingress.annotations is defined %}
+ annotations:
+ {%- for annotation in ingress.annotations %}
+ {{ annotation.name }}: "{{ annotation.value }}"
+ {%- endfor %}
+ {%- endif %}
+spec:
+ {%- if ingress.tls is defined %}
+ tls:
+ - hosts:
+ {%- for host in ingress.tls.hosts %}
+ - {{ host }}
+ {%- endfor %}
+ secretName: {{ ingress.tls.secret_name }}
+ {%- endif %}
+ {%- if ingress.rules is defined %}
+ rules:
+ {%- for host in ingress.rules.hosts %}
+ - {%- if host.name is defined %}
+ host: {{ host.name }}
+ {%- endif %}
+ http:
+ paths:
+ {%- for path, backend in host.paths.items() %}
+ - path: {{ path }}
+ backend:
+ serviceName: {{ backend.service }}
+ servicePort: {{ backend.port }}
+ {%- endfor %}
+ {%- endfor %}
+ {%- elif ingress.backend is defined %}
+ backend:
+ serviceName: {{ ingress.backend.service }}
+ servicePort: {{ ingress.backend.port }}
+ {%- endif %}
diff --git a/kubernetes/files/kube-addons/contrail/contrail.yaml b/kubernetes/files/kube-addons/contrail/contrail.yaml
index 244a3ea..ee56429 100644
--- a/kubernetes/files/kube-addons/contrail/contrail.yaml
+++ b/kubernetes/files/kube-addons/contrail/contrail.yaml
@@ -113,6 +113,8 @@
mountPath: /var/log/contrail
- name: journal-controller
mountPath: /var/log/journal
+ - name: var-log-configdb-zookeeper
+ mountPath: /var/log/zookeeper
- name: etc-hostname
mountPath: /etc/hostname
readOnly: true
@@ -157,6 +159,8 @@
mountPath: /var/log/contrail
- name: journal-analyticsdb
mountPath: /var/log/journal
+ - name: var-log-analyticsdb-zookeeper
+ mountPath: /var/log/zookeeper
- name: etc-hostname
mountPath: /etc/hostname
readOnly: true
@@ -224,6 +228,10 @@
hostPath:
path: /var/log/journal/contrail-controller
type: DirectoryOrCreate
+ - name: var-log-configdb-zookeeper
+ hostPath:
+ path: /var/log/configdb/zookeeper
+ type: DirectoryOrCreate
# analyticsdb
- name: etc-cassandra-cassandra-env-analytics-sh
@@ -278,6 +286,10 @@
hostPath:
path: /var/log/journal/contrail-analyticsdb
type: DirectoryOrCreate
+ - name: var-log-analyticsdb-zookeeper
+ hostPath:
+ path: /var/log/analyticsdb/zookeeper
+ type: DirectoryOrCreate
# analytics
- name: etc-redis-redis-conf
diff --git a/kubernetes/files/kube-addons/ingress-nginx/ingress-nginx.yaml b/kubernetes/files/kube-addons/ingress-nginx/ingress-nginx.yaml
index aedb8be..cfd5251 100644
--- a/kubernetes/files/kube-addons/ingress-nginx/ingress-nginx.yaml
+++ b/kubernetes/files/kube-addons/ingress-nginx/ingress-nginx.yaml
@@ -86,6 +86,12 @@
kind: ConfigMap
apiVersion: v1
+{%- if common.addons.get('ingress-nginx', {}).tcp_data is defined %}
+data:
+ {%- for key, value in common.addons.get('ingress-nginx').tcp_data.items() %}
+ {{ key }}: "{{ value }}"
+ {%- endfor %}
+{%- endif %}
metadata:
name: tcp-services
namespace: ingress-nginx
@@ -97,6 +103,12 @@
kind: ConfigMap
apiVersion: v1
+{%- if common.addons.get('ingress-nginx', {}).udp_data is defined %}
+data:
+ {%- for key, value in common.addons.get('ingress-nginx').udp_data.items() %}
+ {{ key }}: "{{ value }}"
+ {%- endfor %}
+{%- endif %}
metadata:
name: udp-services
namespace: ingress-nginx
@@ -320,6 +332,18 @@
containerPort: 80
- name: https
containerPort: 443
+ {%- if common.addons.get('ingress-nginx', {}).tcp_ports is defined %}
+ {%- for port in common.addons.get('ingress-nginx').tcp_ports %}
+ - name: tcp{{ port }}
+ containerPort: {{ port }}
+ {%- endfor %}
+ {%- endif %}
+ {%- if common.addons.get('ingress-nginx', {}).udp_ports is defined %}
+ {%- for port in common.addons.get('ingress-nginx').udp_ports %}
+ - name: udp{{ port }}
+ containerPort: {{ port }}
+ {%- endfor %}
+ {%- endif %}
livenessProbe:
failureThreshold: 3
httpGet:
@@ -364,5 +388,18 @@
- name: https
port: 443
targetPort: https
-
+ {%- if common.addons.get('ingress-nginx', {}).tcp_ports is defined %}
+ {%- for port in common.addons.get('ingress-nginx').tcp_ports %}
+ - name: tcp{{ port }}
+ port: {{ port }}
+ targetPort: tcp{{ port }}
+ {%- endfor %}
+ {%- endif %}
+ {%- if common.addons.get('ingress-nginx', {}).udp_ports is defined %}
+ {%- for port in common.addons.get('ingress-nginx').udp_ports %}
+ - name: udp{{ port }}
+ port: {{ port }}
+ targetPort: udp{{ port }}
+ {%- endfor %}`
+ {%- endif %}
---