diff options
Diffstat (limited to 'kube2consul/bin')
-rw-r--r-- | kube2consul/bin/Dockerfile | 11 | ||||
-rw-r--r-- | kube2consul/bin/blueprint/deploy.yml | 8 | ||||
-rw-r--r-- | kube2consul/bin/blueprint/list_of_servicelet.list | 4 | ||||
-rw-r--r-- | kube2consul/bin/blueprint/task.yml | 118 | ||||
-rw-r--r-- | kube2consul/bin/blueprint/vars.yml | 14 | ||||
-rw-r--r-- | kube2consul/bin/start.sh | 36 |
6 files changed, 191 insertions, 0 deletions
diff --git a/kube2consul/bin/Dockerfile b/kube2consul/bin/Dockerfile new file mode 100644 index 0000000..278cac5 --- /dev/null +++ b/kube2consul/bin/Dockerfile @@ -0,0 +1,11 @@ +FROM alpine:3.3
+ENV CONSUL_VERSION 0.7.1
+ENV BASE /
+ADD consul-linux_amd64.tar.gz /
+RUN cd /usr/lib \
+ && ln -s /consul/libglib-2.0.so.0.4400.0 libglib-2.0.so.0 \
+ && ln -s /consul/libintl.so.8.1.3 libintl.so.8
+COPY kube2consul /bin/
+COPY start.sh /
+
+ENTRYPOINT exec /start.sh
\ No newline at end of file diff --git a/kube2consul/bin/blueprint/deploy.yml b/kube2consul/bin/blueprint/deploy.yml new file mode 100644 index 0000000..cc61076 --- /dev/null +++ b/kube2consul/bin/blueprint/deploy.yml @@ -0,0 +1,8 @@ +--- +- remote_user: ubuntu + become: yes + become_method: sudo + vars_files: + - vars.yml + tasks: + - include: task.yml diff --git a/kube2consul/bin/blueprint/list_of_servicelet.list b/kube2consul/bin/blueprint/list_of_servicelet.list new file mode 100644 index 0000000..77a1d4f --- /dev/null +++ b/kube2consul/bin/blueprint/list_of_servicelet.list @@ -0,0 +1,4 @@ +{
+ "servicelet_module":[
+ ]
+}
\ No newline at end of file diff --git a/kube2consul/bin/blueprint/task.yml b/kube2consul/bin/blueprint/task.yml new file mode 100644 index 0000000..45cfcd9 --- /dev/null +++ b/kube2consul/bin/blueprint/task.yml @@ -0,0 +1,118 @@ +--- +- name: remove kube2consul container + docker: + name: kube2consul + image: "{{kube2consul_image}}" + state: absent + +- name: run kube2consul container + docker: + name: kube2consul + image: "{{kube2consul_image}}" + log_driver: syslog + net: host + restart_policy: always + volumes: + - "{{ kube2consul_data_host }}:{{ kube2consul_data_container }}" + env: + KUBE_MASTER_IP: "{{kube_master_ip}}" + PDM_CONTROLLER_IP: "{{pdm_controller_ip}}" + JOIN_IP: "{{consul_join_ip}}" + when: + - all_in_one == 'no' + - master_in_controller == 'no' + - cluster_type == 'k8s' + +- name: run kube2consul container + docker: + name: kube2consul + image: "{{kube2consul_image}}" + net: host + restart_policy: always + privileged: true + volumes: + - "{{ kube2consul_data_host }}:{{ kube2consul_data_container }}" + - "/root/.kube/config:/root/.kube/config:ro" + env: + KUBE_MASTER_IP: "{{kube_master_ip}}" + PDM_CONTROLLER_IP: "{{pdm_controller_ip}}" + JOIN_IP: "{{consul_join_ip}}" + CLUSTER_TYPE: "openshift" + when: + - all_in_one == 'no' + - master_in_controller == 'no' + - cluster_type == 'openshift' + +- name: run kube2consul container + docker: + name: kube2consul + image: "{{kube2consul_image}}" + log_driver: syslog + restart_policy: always + volumes: + - "{{ kube2consul_data_host }}:{{ kube2consul_data_container }}" + env: + KUBE_MASTER_IP: "{{kube_master_ip}}" + PDM_CONTROLLER_IP: "{{pdm_controller_ip}}" + JOIN_IP: "{{consul_join_ip}}" + ALL_IN_ONE: "yes" + when: + - all_in_one == 'yes' + - cluster_type == 'k8s' + +- name: run kube2consul container + docker: + name: kube2consul + image: "{{kube2consul_image}}" + log_driver: syslog + restart_policy: always + privileged: true + volumes: + - "{{ kube2consul_data_host }}:{{ kube2consul_data_container }}" + - "/root/.kube/config:/root/.kube/config:ro" + env: + KUBE_MASTER_IP: "{{kube_master_ip}}" + PDM_CONTROLLER_IP: "{{pdm_controller_ip}}" + JOIN_IP: "{{consul_join_ip}}" + ALL_IN_ONE: "yes" + CLUSTER_TYPE: "openshift" + when: + - all_in_one == 'yes' + - cluster_type == 'openshift' + +- name: run kube2consul container + docker: + name: kube2consul + image: "{{kube2consul_image}}" + log_driver: syslog + restart_policy: always + volumes: + - "{{ kube2consul_data_host }}:{{ kube2consul_data_container }}" + env: + KUBE_MASTER_IP: "{{kube_master_ip}}" + PDM_CONTROLLER_IP: "{{pdm_controller_ip}}" + JOIN_IP: "{{consul_join_ip}}" + ALL_IN_ONE: "yes" + when: + - master_in_controller == 'yes' + - cluster_type == 'k8s' + +- name: run kube2consul container + docker: + name: kube2consul + image: "{{kube2consul_image}}" + log_driver: syslog + restart_policy: always + privileged: true + volumes: + - "{{ kube2consul_data_host }}:{{ kube2consul_data_container }}" + - "/root/.kube/config:/root/.kube/config:ro" + env: + KUBE_MASTER_IP: "{{kube_master_ip}}" + PDM_CONTROLLER_IP: "{{pdm_controller_ip}}" + JOIN_IP: "{{consul_join_ip}}" + ALL_IN_ONE: "yes" + CLUSTER_TYPE: "openshift" + when: + - master_in_controller == 'yes' + - cluster_type == 'openshift'
\ No newline at end of file diff --git a/kube2consul/bin/blueprint/vars.yml b/kube2consul/bin/blueprint/vars.yml new file mode 100644 index 0000000..971438d --- /dev/null +++ b/kube2consul/bin/blueprint/vars.yml @@ -0,0 +1,14 @@ +--- +- api_network_ip: +- man_network_ip: +- registry_url: +- cp_vertype: +- cp_type: +- cp_name: +- cp_version: +- kube2consul_image: "{{registry_url}}/{{cp_type}}/{{cp_name}}:{{cp_version}}" +- kube_master_ip: "{{ hostvars[inventory_hostname]['api_network_ip'] }}" +- pdm_controller_ip: "{{vp_ip}}" +- consul_join_ip: "{{zenap_msb_consul_server_ip}}" +- kube2consul_data_host: "/home/zenap-msb/consul_data/kube2consul_{{kube_master_ip}}" +- kube2consul_data_container: "/consul-works/data-dir"
\ No newline at end of file diff --git a/kube2consul/bin/start.sh b/kube2consul/bin/start.sh new file mode 100644 index 0000000..033c50b --- /dev/null +++ b/kube2consul/bin/start.sh @@ -0,0 +1,36 @@ +#!/bin/sh +if [ -z "${KUBE_MASTER_IP}" ]; then + echo "kube master node ip is required." + exit 1 +fi + +if [ -n "${JOIN_IP}" ]; then + echo "### Starting consul client" + if [ -z "${ALL_IN_ONE}" ]; then + /consul/consul agent -data-dir /consul-works/data-dir -node kube2consul_${KUBE_MASTER_IP} -bind ${KUBE_MASTER_IP} -client 0.0.0.0 -retry-join ${JOIN_IP} -retry-interval 5s & + else + /consul/consul agent -data-dir /consul-works/data-dir -node kube2consul_${KUBE_MASTER_IP} -bind 0.0.0.0 -client 0.0.0.0 -retry-join ${JOIN_IP} -retry-interval 5s & + fi +fi + +if [ -z "${RUN_MODE}" ]; then + echo "non-HA scenario." +else + echo "\n\n### Starting consul agent" + cd ./consul + ./entry.sh & +fi + +kube_url="http://${KUBE_MASTER_IP}:8080" + +if [ "${CLUSTER_TYPE}" == "openshift" ]; then + kube_url="https://${KUBE_MASTER_IP}:8443" +fi + +echo "\n\n### Starting kube2consul" +if [ -z "${PDM_CONTROLLER_IP}" ]; then + /bin/kube2consul --kube_master_url ${kube_url} +else + echo "in Paas mode." + /bin/kube2consul --kube_master_url ${kube_url} --pdm_controller_url http://${PDM_CONTROLLER_IP}:9527 +fi
\ No newline at end of file |