Skip to content
Snippets Groups Projects
Commit b3841659 authored by Smaine Kahlouch's avatar Smaine Kahlouch
Browse files

Review role order, use master ip even when fqdn are used in the inventory

parent 3a349b85
No related branches found
No related tags found
No related merge requests found
...@@ -123,14 +123,14 @@ kube-master ...@@ -123,14 +123,14 @@ kube-master
- { role: dnsmasq, tags: dnsmasq } - { role: dnsmasq, tags: dnsmasq }
- { role: network_plugin, tags: ['calico', 'flannel', 'network'] } - { role: network_plugin, tags: ['calico', 'flannel', 'network'] }
- hosts: kube-node
roles:
- { role: kubernetes/node, tags: node }
- hosts: kube-master - hosts: kube-master
roles: roles:
- { role: kubernetes/master, tags: master } - { role: kubernetes/master, tags: master }
- hosts: kube-node
roles:
- { role: kubernetes/node, tags: node }
``` ```
### Run ### Run
......
...@@ -11,10 +11,10 @@ ...@@ -11,10 +11,10 @@
- { role: dnsmasq, tags: dnsmasq } - { role: dnsmasq, tags: dnsmasq }
- { role: network_plugin, tags: ['calico', 'flannel', 'network'] } - { role: network_plugin, tags: ['calico', 'flannel', 'network'] }
- hosts: kube-node
roles:
- { role: kubernetes/node, tags: node }
- hosts: kube-master - hosts: kube-master
roles: roles:
- { role: kubernetes/master, tags: master } - { role: kubernetes/master, tags: master }
- hosts: kube-node
roles:
- { role: kubernetes/node, tags: node }
--- ---
- name: Copy kubectl bash completion
copy:
src: kubectl_bash_completion.sh
dest: /etc/bash_completion.d/kubectl.sh
- name: Install kubectl binary - name: Install kubectl binary
copy: copy:
src={{ local_release_dir }}/kubernetes/bin/kubectl src={{ local_release_dir }}/kubernetes/bin/kubectl
dest={{ bin_dir }} dest={{ bin_dir }}
owner=kube owner=kube
mode=u+x mode=u+x
notify:
- restart daemons
- name: Copy kubectl bash completion
copy:
src: kubectl_bash_completion.sh
dest: /etc/bash_completion.d/kubectl.sh
- name: populate users for basic auth in API - name: populate users for basic auth in API
lineinfile: lineinfile:
...@@ -58,7 +56,7 @@ ...@@ -58,7 +56,7 @@
- name: Create 'kube-system' namespace - name: Create 'kube-system' namespace
uri: uri:
url: http://{{ groups['kube-master'][0]}}:{{ kube_apiserver_insecure_port }}/api/v1/namespaces url: http://127.0.0.1:{{ kube_apiserver_insecure_port }}/api/v1/namespaces
method: POST method: POST
body: '{"apiVersion":"v1","kind":"Namespace","metadata":{"name":"kube-system"}}' body: '{"apiVersion":"v1","kind":"Namespace","metadata":{"name":"kube-system"}}'
status_code: 201,409 status_code: 201,409
......
...@@ -8,24 +8,27 @@ ...@@ -8,24 +8,27 @@
- name: Make sure manifest directory exists - name: Make sure manifest directory exists
file: path={{ kube_manifest_dir }} state=directory file: path={{ kube_manifest_dir }} state=directory
- include: secrets.yml
tags:
- secrets
- include: install.yml - name: certs | create system kube-cert groups
group: name={{ kube_cert_group }} state=present system=yes
- name: write the global config file - name: create system kube user
template: user:
src: config.j2 name=kube
dest: "{{ kube_config_dir }}/config" comment="Kubernetes user"
notify: shell=/sbin/nologin
- restart kubelet state=present
system=yes
groups={{ kube_cert_group }}
- name: Create kubelet environment vars dir - include: install.yml
file: path=/etc/systemd/system/kubelet.service.d state=directory
- include: secrets.yml
tags:
- secrets
- name: Write kubelet config file - name: Write kubelet config file
template: src=kubelet.j2 dest=/etc/systemd/system/kubelet.service.d/10-kubelet.conf backup=yes template: src=kubelet.j2 dest={{ kube_config_dir }}/kubelet.conf backup=yes
notify: notify:
- restart kubelet - restart kubelet
......
--- ---
- name: certs | create system kube-cert groups
group: name={{ kube_cert_group }} state=present system=yes
- name: create system kube user
user:
name=kube
comment="Kubernetes user"
shell=/sbin/nologin
state=present
system=yes
groups={{ kube_cert_group }}
- name: certs | make sure the certificate directory exits - name: certs | make sure the certificate directory exits
file: file:
path={{ kube_cert_dir }} path={{ kube_cert_dir }}
......
###
# kubernetes system config
#
# The following values are used to configure various aspects of all
# kubernetes services, including
#
# kube-apiserver.service
# kube-controller-manager.service
# kube-scheduler.service
# kubelet.service
# kube-proxy.service
# Comma separated list of nodes in the etcd cluster
# KUBE_ETCD_SERVERS="--etcd_servers="
# logging to stderr means we get it in the systemd journal
KUBE_LOGTOSTDERR="--logtostderr=true"
# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v={{ kube_log_level | default('2') }}"
# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow_privileged=true"
# How the replication controller, scheduler, and proxy
KUBE_MASTER="--master=https://{{ groups['kube-master'][0] }}:{{ kube_apiserver_port }}"
[Service] KUBE_LOGTOSTDERR="--logtostderr=true"
Environment="KUBE_LOGTOSTDERR=--logtostderr=true" KUBE_LOG_LEVEL="--v={{ kube_log_level | default('2') }}"
Environment="KUBE_LOG_LEVEL=--v={{ kube_log_level | default('2') }}" KUBE_ALLOW_PRIV="--allow_privileged=true"
Environment="KUBE_ALLOW_PRIV=--allow_privileged=true" KUBELET_API_SERVER="--api_servers={% for host in groups['kube-master'] %}https://{{ hostvars[host]['ip'] | default(hostvars[host]['ansible_default_ipv4']['address']) }}:{{ kube_apiserver_port }}{% if not loop.last %},{% endif %}{% endfor %}"
Environment="KUBELET_API_SERVER=--api_servers={% for srv in groups['kube-master'] %}https://{{ srv }}:{{ kube_apiserver_port }}{% if not loop.last %},{% endif %}{% endfor %}"
# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces) # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
Environment="KUBELET_ADDRESS=--address=0.0.0.0" KUBELET_ADDRESS="--address=0.0.0.0"
# The port for the info server to serve on # The port for the info server to serve on
# Environment="KUBELET_PORT=--port=10250" # KUBELET_PORT="--port=10250"
# You may leave this blank to use the actual hostname # You may leave this blank to use the actual hostname
Environment="KUBELET_HOSTNAME=--hostname_override={{ inventory_hostname }}" KUBELET_HOSTNAME="--hostname_override={{ inventory_hostname }}"
{% if inventory_hostname in groups['kube-master'] and inventory_hostname not in groups['kube-node'] %} {% if inventory_hostname in groups['kube-master'] and inventory_hostname not in groups['kube-node'] %}
Environment="KUBELET_REGISTER_NODE=--register-node=false" KUBELET_REGISTER_NODE="--register-node=false"
{% endif %} {% endif %}
# location of the api-server # location of the api-server
{% if dns_setup %} {% if dns_setup %}
Environment="KUBELET_ARGS=--cluster_dns={{ dns_server }} --cluster_domain={{ dns_domain }} --kubeconfig={{ kube_config_dir}}/node-kubeconfig.yaml --config={{ kube_manifest_dir }}" KUBELET_ARGS="--cluster_dns={{ dns_server }} --cluster_domain={{ dns_domain }} --kubeconfig={{ kube_config_dir}}/node-kubeconfig.yaml --config={{ kube_manifest_dir }}"
{% else %} {% else %}
Environment="KUBELET_ARGS=--kubeconfig={{ kube_config_dir}}/kubelet.kubeconfig --config={{ kube_manifest_dir }}" KUBELET_ARGS="--kubeconfig={{ kube_config_dir}}/kubelet.kubeconfig --config={{ kube_manifest_dir }}"
{% endif %} {% endif %}
{% if kube_network_plugin is defined and kube_network_plugin == "calico" %} {% if kube_network_plugin is defined and kube_network_plugin == "calico" %}
Environment="KUBELET_NETWORK_PLUGIN=--network_plugin={{ kube_network_plugin }}" KUBELET_NETWORK_PLUGIN="--network_plugin={{ kube_network_plugin }}"
{% endif %} {% endif %}
# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow_privileged=true"
...@@ -8,7 +8,7 @@ After=docker.service ...@@ -8,7 +8,7 @@ After=docker.service
{% endif %} {% endif %}
[Service] [Service]
EnvironmentFile=/etc/kubernetes/config EnvironmentFile=/etc/kubernetes/kubelet.conf
EnvironmentFile=/etc/network-environment EnvironmentFile=/etc/network-environment
ExecStart={{ bin_dir }}/kubelet \ ExecStart={{ bin_dir }}/kubelet \
$KUBE_LOGTOSTDERR \ $KUBE_LOGTOSTDERR \
......
...@@ -5,7 +5,7 @@ CALICO_IPAM=true ...@@ -5,7 +5,7 @@ CALICO_IPAM=true
DEFAULT_IPV4={{ip | default(ansible_default_ipv4.address) }} DEFAULT_IPV4={{ip | default(ansible_default_ipv4.address) }}
# The kubernetes master IP # The kubernetes master IP
KUBERNETES_MASTER={{ groups['kube-master'][0] }} KUBERNETES_MASTER={{ hostvars[groups['kube-master'][0]]['ip'] | default(hostvars[groups['kube-master'][0]]['ansible_default_ipv4']['address']) }}
# Location of etcd cluster used by Calico. By default, this uses the etcd # Location of etcd cluster used by Calico. By default, this uses the etcd
# instance running on the Kubernetes Master # instance running on the Kubernetes Master
...@@ -16,7 +16,7 @@ ETCD_AUTHORITY="127.0.0.1:23799" ...@@ -16,7 +16,7 @@ ETCD_AUTHORITY="127.0.0.1:23799"
{% endif %} {% endif %}
# The kubernetes-apiserver location - used by the calico plugin # The kubernetes-apiserver location - used by the calico plugin
KUBE_API_ROOT=http://{{ groups['kube-master'][0] }}:{{kube_apiserver_insecure_port}}/api/v1/ KUBE_API_ROOT=http://{{ hostvars[groups['kube-master'][0]]['ip'] | default(hostvars[groups['kube-master'][0]]['ansible_default_ipv4']['address']) }}:{{kube_apiserver_insecure_port}}/api/v1/
# Location of the calicoctl binary - used by the calico plugin # Location of the calicoctl binary - used by the calico plugin
CALICOCTL_PATH="{{ bin_dir }}/calicoctl" CALICOCTL_PATH="{{ bin_dir }}/calicoctl"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment