Fix calico configuration
This allows proper use of calicoctl command on k8s nodes
instead of getting:
Failed to get resources: client: etcd cluster is unavailable or
misconfigured; error #0: dial tcp 127.0.0.1:2379:
getsockopt: connection refused
Change-Id: I095edf2cc7328a6ab0ce1479cbc71e5a10b58b73
diff --git a/kubernetes/files/calico/calicoctl.cfg.master b/kubernetes/files/calico/calicoctl.cfg.master
new file mode 100644
index 0000000..c500749
--- /dev/null
+++ b/kubernetes/files/calico/calicoctl.cfg.master
@@ -0,0 +1,7 @@
+{%- from "kubernetes/map.jinja" import master with context %}
+apiVersion: v1
+kind: calicoApiConfig
+metadata:
+spec:
+ datastoreType: "etcdv2"
+ etcdEndpoints: {% for member in master.network.etcd.members %}http://{{ member.host }}:{{ member.port }}{% if not loop.last %},{% endif %}{% endfor %}
diff --git a/kubernetes/files/calico/calicoctl.cfg.pool b/kubernetes/files/calico/calicoctl.cfg.pool
new file mode 100644
index 0000000..73c437d
--- /dev/null
+++ b/kubernetes/files/calico/calicoctl.cfg.pool
@@ -0,0 +1,7 @@
+{%- from "kubernetes/map.jinja" import pool with context %}
+apiVersion: v1
+kind: calicoApiConfig
+metadata:
+spec:
+ datastoreType: "etcdv2"
+ etcdEndpoints: {% for member in pool.network.etcd.members %}http://{{ member.host }}:{{ member.port }}{% if not loop.last %},{% endif %}{% endfor %}
diff --git a/kubernetes/master/calico.sls b/kubernetes/master/calico.sls
index f175a70..8ecc181 100644
--- a/kubernetes/master/calico.sls
+++ b/kubernetes/master/calico.sls
@@ -11,6 +11,16 @@
- dir_mode: 755
- template: jinja
+/etc/calico/calicoctl.cfg:
+ file.managed:
+ - source: salt://kubernetes/files/calico/calicoctl.cfg.master
+ - user: root
+ - group: root
+ - mode: 644
+ - makedirs: true
+ - dir_mode: 755
+ - template: jinja
+
/usr/bin/calicoctl:
file.managed:
- source: {{ master.network.get('source', 'https://github.com/projectcalico/calico-containers/releases/download/') }}{{ master.network.version }}/calicoctl
@@ -37,4 +47,4 @@
{%- endif %}
-{%- endif %}
\ No newline at end of file
+{%- endif %}
diff --git a/kubernetes/pool/calico.sls b/kubernetes/pool/calico.sls
index fbe7bdb..e0925c2 100644
--- a/kubernetes/pool/calico.sls
+++ b/kubernetes/pool/calico.sls
@@ -68,6 +68,16 @@
- dir_mode: 755
- template: jinja
+/etc/calico/calicoctl.cfg:
+ file.managed:
+ - source: salt://kubernetes/files/calico/calicoctl.cfg.pool
+ - user: root
+ - group: root
+ - mode: 644
+ - makedirs: true
+ - dir_mode: 755
+ - template: jinja
+
{%- if pool.network.get('systemd', true) %}
/etc/systemd/system/calico-node.service: