Skip to content

Commit 824e117

Browse files
committed
Refactored so that agent or server is determined by metadata
1 parent 915c4dd commit 824e117

File tree

8 files changed

+72
-120
lines changed

8 files changed

+72
-120
lines changed

ansible/bootstrap.yml

Lines changed: 2 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,9 @@
11
---
22

3-
- hosts: k3s
4-
become: yes
5-
tasks:
6-
- name: Download k3s install script
7-
ansible.builtin.get_url:
8-
url: https://get.k3s.io/
9-
timeout: 120
10-
dest: /usr/local/bin/k3s-install.sh
11-
owner: root
12-
group: root
13-
mode: "0755"
14-
15-
- hosts: k3s_server
16-
become: yes
17-
tasks:
18-
- name: Install k3s server
19-
ansible.builtin.shell:
20-
cmd: /usr/local/bin/k3s-install.sh
21-
environment:
22-
INSTALL_K3S_VERSION: "v1.31.0+k3s1"
23-
INSTALL_K3S_EXEC: "server"
24-
INSTALL_K3S_SKIP_START: "true"
25-
INSTALL_K3S_SKIP_ENABLE: "true"
26-
changed_when: true
27-
28-
- hosts: k3s_agent
29-
become: yes
30-
tasks:
31-
- name: Install k3s agent
32-
ansible.builtin.shell:
33-
cmd: /usr/local/bin/k3s-install.sh
34-
environment:
35-
INSTALL_K3S_VERSION: "v1.31.0+k3s1"
36-
INSTALL_K3S_EXEC: "agent"
37-
INSTALL_K3S_SKIP_START: "true"
38-
INSTALL_K3S_SKIP_ENABLE: "true"
39-
changed_when: true
40-
41-
- hosts: k3s
42-
become: yes
43-
tasks:
44-
- name: Creating directory on root path
45-
ansible.builtin.file:
46-
path: /root/bin
47-
state: directory
48-
owner: root
49-
- name: Adding symlinks to k3s binaries for root
50-
ansible.builtin.file:
51-
src: /usr/local/bin/k3s
52-
dest: "/root/bin/{{ item }}"
53-
state: link
54-
owner: root
55-
with_items:
56-
- k3s
57-
- kubectl
58-
59-
- hosts: k3s
3+
- hosts: cluster
604
become: yes
615
tasks:
62-
- include_role:
6+
- ansible.builtin.include_role:
637
name: k3s
648

659
- hosts: cluster
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
- hosts: localhost
2+
become: true
3+
vars:
4+
os_metadata: "{{ lookup('url', 'http://169.254.169.254/openstack/latest/meta_data.json') | from_json }}"
5+
k3s_token: "{{ os_metadata.meta.k3s_token }}"
6+
k3s_server_name: "{{ os_metadata.meta.k3s_server }}"
7+
k3s_node_type: "{{ os_metadata.meta.k3s_node_type }}"
8+
service_name: "{{ 'k3s-agent' if k3s_node_type == 'agent' else 'k3s' }}"
9+
tasks:
10+
- name: Add the token for joining the cluster to the environment
11+
no_log: false # avoid logging the server token
12+
ansible.builtin.lineinfile:
13+
path: "/etc/systemd/system/{{ service_name }}.service.env"
14+
line: "K3S_TOKEN={{ k3s_token }}"
15+
- name: Add server url to agents
16+
ansible.builtin.lineinfile:
17+
path: "/etc/systemd/system/{{ service_name }}.service.env"
18+
line: "K3S_URL=https://{{ k3s_server_name }}:6443"
19+
when: k3s_node_type == "agent"
20+
- name: Start k3s service
21+
ansible.builtin.systemd:
22+
name: "{{ service_name }}"
23+
daemon_reload: true
24+
state: started
25+
enabled: true
26+
when: k3s_node_type != "none"

ansible/roles/k3s/files/start_k3s_agent.yml

Lines changed: 0 additions & 21 deletions
This file was deleted.

ansible/roles/k3s/files/start_k3s_server.yml

Lines changed: 0 additions & 19 deletions
This file was deleted.

ansible/roles/k3s/tasks/main.yml

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,49 @@
11
---
22

3-
- name: Create ansible-init playbook install directory
3+
- name: Download k3s install script
4+
ansible.builtin.get_url:
5+
url: https://get.k3s.io/
6+
timeout: 120
7+
dest: /usr/local/bin/k3s-install.sh
8+
owner: root
9+
group: root
10+
mode: "0755"
11+
12+
- name: Install k3s server
13+
ansible.builtin.shell:
14+
cmd: /usr/local/bin/k3s-install.sh
15+
environment:
16+
INSTALL_K3S_VERSION: "v1.31.0+k3s1"
17+
INSTALL_K3S_EXEC: "{{ item }}"
18+
INSTALL_K3S_SKIP_START: "true"
19+
INSTALL_K3S_SKIP_ENABLE: "true"
20+
changed_when: true
21+
with_items:
22+
- server
23+
- agent
24+
25+
- name: Creating directory on root path
26+
ansible.builtin.file:
27+
path: /root/bin
28+
state: directory
29+
owner: root
30+
31+
- name: Adding symlinks to k3s binaries for root
32+
ansible.builtin.file:
33+
src: /usr/local/bin/k3s
34+
dest: "/root/bin/{{ item }}"
35+
state: link
36+
owner: root
37+
with_items:
38+
- k3s
39+
- kubectl
40+
41+
- name: Create ansible-init playbook install directory #TODO: move into ansible-init
442
file:
543
path: "/etc/ansible-init/playbooks"
644
state: directory
745

846
- name: Install k3s server ansible-init playbook
947
copy:
10-
src: start_k3s_server.yml
11-
dest: /etc/ansible-init/playbooks/0-start-k3s.yml
12-
when: inventory_hostname in groups["k3s_server"]
13-
14-
- name: Install k3s agent ansible-init playbook
15-
copy:
16-
src: start_k3s_agent.yml
48+
src: start_k3s.yml
1749
dest: /etc/ansible-init/playbooks/0-start-k3s.yml
18-
when: inventory_hostname in groups["k3s_agent"]

environments/common/inventory/groups

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -135,16 +135,3 @@ freeipa_client
135135

136136
[ansible_init]
137137
# Hosts to run linux-anisble-init
138-
139-
[k3s_server:children]
140-
# Host to run k3s server
141-
control
142-
143-
[k3s_agent:children]
144-
# Hosts to run as k3s agents
145-
login
146-
compute
147-
148-
[k3s:children]
149-
k3s_server
150-
k3s_agent

environments/skeleton/{{cookiecutter.environment}}/terraform/compute/nodes.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ resource "openstack_compute_instance_v2" "compute" {
4848
environment_root = var.environment_root
4949
k3s_token = var.k3s_token
5050
k3s_server = "${var.cluster_name}-control"
51+
k3s_node_type = "agent"
5152
}
5253

5354
user_data = <<-EOF

environments/skeleton/{{cookiecutter.environment}}/terraform/nodes.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ resource "openstack_compute_instance_v2" "control" {
7777
metadata = {
7878
environment_root = var.environment_root
7979
k3s_token = var.k3s_token
80+
k3s_server = "${var.cluster_name}-control"
81+
k3s_node_type = "server"
8082
}
8183

8284
user_data = <<-EOF
@@ -127,6 +129,7 @@ resource "openstack_compute_instance_v2" "login" {
127129
environment_root = var.environment_root
128130
k3s_token = var.k3s_token
129131
k3s_server = "${var.cluster_name}-control"
132+
k3s_node_type = "agent"
130133
}
131134

132135
user_data = <<-EOF

0 commit comments

Comments
 (0)