modified to add load balancer kubernetes. 69/26469/2
authorNarinder Gupta <narinder.gupta@canonical.com>
Fri, 23 Dec 2016 18:47:49 +0000 (12:47 -0600)
committerNarinder Gupta <narinder.gupta@canonical.com>
Fri, 23 Dec 2016 18:51:49 +0000 (12:51 -0600)
Change-Id: I87218dd9717c386db1ea721821d0d0e1bf4a08f9
Signed-off-by: Narinder Gupta <narinder.gupta@canonical.com>
ci/config_tpl/juju2/bundle_tpl/keystone.yaml
ci/config_tpl/juju2/bundlek8_tpl/bundle.yaml
ci/config_tpl/juju2/bundlek8_tpl/etcd.yaml
ci/config_tpl/juju2/bundlek8_tpl/kubeapi-load-balancer.yaml [new file with mode: 0644]
ci/config_tpl/juju2/bundlek8_tpl/relations.yaml
ci/default_deployment_config.yaml
ci/genK8Bundle.py
ci/kubernates/fetch-charms.sh

index bbb2358..5a8e16c 100644 (file)
@@ -18,7 +18,7 @@
         region: {{ os.region }}
         admin-role: {{ os.admin.role }}
         keystone-admin-role: {{ os.admin.role }}
-        preferred-api-version: 3
+        preferred-api-version: 2
 {% if os.network.ipv6 %}
         prefer-ipv6: {{ os.network.ipv6 }}
 {% endif %}
index 7af74af..17281be 100644 (file)
 {% include 'easyrsa.yaml' %}
 {% include 'etcd.yaml' %}
 {% include 'subordinate.yaml' %}
+{% if os.kubernetes.loadbalancer %}
+{% include 'kubeapi-load-balancer.yaml' %}
+{% endif %}
+
 
   relations:
     - [ 'ntp:juju-info', 'nodes:juju-info' ]
index ba99d0e..eaea954 100644 (file)
@@ -1,6 +1,16 @@
     etcd:
       charm: "./{{ ubuntu.release }}/etcd"
+{% if os.kubernetes.loadbalancer %}
+      num_units: 3
+{% else %}
       num_units: 1
+{% endif %}
       to:
+{% if os.kubernetes.loadbalancer %}
+{% for unit_id in to_select() %}
+        - "nodes/{{ unit_id }}"
+{% endfor %}
+{% else %}
         - "nodes/0"
+{% endif %}
 
diff --git a/ci/config_tpl/juju2/bundlek8_tpl/kubeapi-load-balancer.yaml b/ci/config_tpl/juju2/bundlek8_tpl/kubeapi-load-balancer.yaml
new file mode 100644 (file)
index 0000000..08e7b33
--- /dev/null
@@ -0,0 +1,8 @@
+
+    kubeapi-load-balancer:
+      charm: "./{{ ubuntu.release }}/kubeapi-load-balancer"
+      num_units: 1
+      expose: true
+      to:
+        - "nodes/0"
+
index fd56090..63fefab 100644 (file)
@@ -1,9 +1,19 @@
-    - [ "kubernetes-master:kube-api-endpoint", "kubernetes-worker:kube-api-endpoint" ]
-    - [ "kubernetes-master:cluster-dns", "kubernetes-worker:kube-dns" ]
-    - [ "kubernetes-master:certificates", "easyrsa:client" ]
-    - [ "kubernetes-master:etcd", "etcd:db" ]
-    - [ "kubernetes-worker:certificates", "easyrsa:client" ]
-    - [ "flannel:etcd", "etcd:db" ]
-    - [ "flannel:cni", "kubernetes-master:cni" ]
-    - [ "flannel:cni", "kubernetes-worker:cni" ]
-    - [ "etcd:certificates", "easyrsa:client" ]
+{% if os.kubernetes.loadbalancer %}
+    - [ 'kubernetes-master:kube-api-endpoint', 'kubeapi-load-balancer:apiserver' ]
+{% else %}
+    - [ 'kubernetes-master:kube-api-endpoint', 'kubernetes-worker:kube-api-endpoint' ]
+{% endif %}
+    - [ 'kubernetes-master:cluster-dns', 'kubernetes-worker:kube-dns' ]
+    - [ 'kubernetes-master:certificates', 'easyrsa:client' ]
+    - [ 'kubernetes-master:etcd', 'etcd:db' ]
+    - [ 'kubernetes-worker:certificates', 'easyrsa:client' ]
+    - [ 'flannel:etcd', 'etcd:db' ]
+    - [ 'flannel:cni', 'kubernetes-master:cni' ]
+    - [ 'flannel:cni', 'kubernetes-worker:cni' ]
+    - [ 'etcd:certificates', 'easyrsa:client' ]
+{% if os.kubernetes.loadbalancer %}
+    - [ 'kubernetes-master:loadbalancer', 'kubeapi-load-balancer:loadbalancer' ]
+    - [ 'kubernetes-worker:kube-api-endpoint', 'kubeapi-load-balancer:website' ]
+    - [ 'kubeapi-load-balancer:certificates', 'easyrsa:client' ]
+{% endif %}
+
index ec6735c..887b096 100644 (file)
@@ -30,3 +30,5 @@ os:
     service:
         congress: True
         promise: True
+    kubernetes:
+        loadbalancer: False
index 439d52f..cfbb6ea 100644 (file)
@@ -162,10 +162,14 @@ except ValueError as err:
 
 if 'dpdk' in features:
     config['os']['network']['dpdk'] = True
+if 'lb' in features:
+    config['os']['kubernetes']['loadbalancer'] = True
 
 # Set beta option from extra
 if 'hugepages' in extra:
     config['os']['beta']['huge_pages'] = True
+if 'lb' in extra:
+    config['os']['kubernetes']['loadbalancer'] = True
 if 'mitaka' in extra:
     config['os']['release'] = 'mitaka'
 if 'xenial' in extra:
index e5bc1fe..06f4838 100755 (executable)
@@ -16,3 +16,4 @@ charm pull cs:~containers/kubernetes-worker $distro/kubernetes-worker
 charm pull cs:~containers/flannel $distro/flannel
 charm pull cs:~containers/etcd $distro/etcd
 charm pull cs:~containers/easyrsa $distro/easyrsa
+charm pull cs:~containers/kubeapi-load-balancer $distro/kubeapi-load-balancer