diff options
-rw-r--r-- | ansible/inventory/hosts.yml | 6 | ||||
-rw-r--r-- | ansible/roles/rke/templates/cluster.yml.j2 | 4 | ||||
-rw-r--r-- | tools/cicdansible/roles/install/templates/inventory.yml.j2 | 4 |
3 files changed, 11 insertions, 3 deletions
diff --git a/ansible/inventory/hosts.yml b/ansible/inventory/hosts.yml index 4a6b68cf..825ee3b2 100644 --- a/ansible/inventory/hosts.yml +++ b/ansible/inventory/hosts.yml @@ -33,6 +33,10 @@ all: ansible_host: 10.8.8.19 #ip of the node that it uses for communication with k8s cluster. cluster_ip: 10.8.8.19 + # External ip of the node, used for access from outside of the cluster. + # Can be set to some kind of floating or public ip. + # If not set, cluster_ip is used for this purpose. + # external_ip: x.x.x.x # Group of hosts containing etcd cluster nodes. # Defaults to infra. @@ -44,7 +48,7 @@ all: # This means they host kubernetes api server, controller manager and scheduler. # This example uses infra for this purpose, however note that any # other host could be used including kubernetes nodes. - # cluster_ip needs to be set for hosts used as control planes. + # cluster_ip needs to be set for hosts used as control planes, external_ip can also be used. kubernetes-control-plane: hosts: infrastructure-server diff --git a/ansible/roles/rke/templates/cluster.yml.j2 b/ansible/roles/rke/templates/cluster.yml.j2 index 737d306f..51f4e28b 100644 --- a/ansible/roles/rke/templates/cluster.yml.j2 +++ b/ansible/roles/rke/templates/cluster.yml.j2 @@ -1,6 +1,6 @@ nodes: {% for node in groups['kubernetes'] %} -- address: "{{ hostvars[node].cluster_ip }}" +- address: "{{ hostvars[node].external_ip | default(hostvars[node].cluster_ip) }}" port: "22" internal_address: "{{ hostvars[node].cluster_ip }}" role: @@ -13,7 +13,7 @@ nodes: {% if node in groups['kubernetes-etcd'] %} - etcd {% endif %} - hostname_override: "" + hostname_override: "{{ node }}" user: "{{ rke_username }}" docker_socket: /var/run/docker.sock ssh_key: "" diff --git a/tools/cicdansible/roles/install/templates/inventory.yml.j2 b/tools/cicdansible/roles/install/templates/inventory.yml.j2 index 36bf3bd3..c828ca00 100644 --- a/tools/cicdansible/roles/install/templates/inventory.yml.j2 +++ b/tools/cicdansible/roles/install/templates/inventory.yml.j2 @@ -16,6 +16,7 @@ all: infra_host: ansible_host: infra cluster_ip: {{ hostvars['infra'].ansible_default_ipv4.address }} + external_ip: "{{ hostvars['infra'].ansible_host }}" kubernetes: children: kubernetes-node: @@ -24,6 +25,9 @@ all: {{ h }}: ansible_host: "{{ hostvars[h].ansible_default_ipv4.address }}" cluster_ip: "{{ hostvars[h].ansible_default_ipv4.address }}" +{% if h == 'node0' %} + external_ip: "{{ hostvars[h].first_node_ip }}" +{% endif %} {% endfor %} kubernetes-control-plane: hosts: |