From 4d1725f17f077454e7dd399eab5aac226acad954 Mon Sep 17 00:00:00 2001 From: Ruakij Date: Fri, 9 Oct 2026 14:37:29 +0000 Subject: [PATCH] Deploy a registries.yaml from registries_config on k3s servers and restart k3s on its change --- kubernetes/defaults/main.yml | 11 +++++++++++ kubernetes/tasks/install.yml | 7 +++++++ kubernetes/tasks/install/server/install_k3s.yml | 2 +- kubernetes/templates/k3s/server/registries.yaml.j2 | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 kubernetes/templates/k3s/server/registries.yaml.j2 diff --git a/kubernetes/defaults/main.yml b/kubernetes/defaults/main.yml index 28c0a60..8dddbf9 100644 --- a/kubernetes/defaults/main.yml +++ b/kubernetes/defaults/main.yml @@ -52,3 +52,14 @@ kubernetes: etcd-arg: heartbeat-interval: 500 election-timeout: 5000 + + registries_config: + # Defines the names and endpoints of registries + # When embedded-registry is enabled, every registry needs to be defined here to allow this node to distribute those images. + #mirrors: + # Enable distribution for all registries + #"*": {} + + # Defines authentication and extra settings for the registries + #config: + \ No newline at end of file diff --git a/kubernetes/tasks/install.yml b/kubernetes/tasks/install.yml index 4a44319..3a7aa2f 100644 --- a/kubernetes/tasks/install.yml +++ b/kubernetes/tasks/install.yml @@ -36,6 +36,13 @@ mode: "744" # todo: update when file changed? +- name: Deploy registries.yaml + ansible.builtin.template: + src: k3s/server/registries.yaml.j2 + dest: /etc/rancher/k3s/registries.yaml + register: registries_config + when: "type == 'server'" + - import_tasks: ./install/server/setup_network.yml when: "type == 'server'" diff --git a/kubernetes/tasks/install/server/install_k3s.yml b/kubernetes/tasks/install/server/install_k3s.yml index 73d665a..fadbad5 100644 --- a/kubernetes/tasks/install/server/install_k3s.yml +++ b/kubernetes/tasks/install/server/install_k3s.yml @@ -15,7 +15,7 @@ service: name: k3s enabled: true - state: "{{ 'restarted' if not command.changed and config.changed else 'started' }}" + state: "{{ 'restarted' if not command.changed and (config.changed or registries_config.changed) else 'started' }}" - name: Waiting for K3s-server to accept connections ansible.builtin.wait_for: diff --git a/kubernetes/templates/k3s/server/registries.yaml.j2 b/kubernetes/templates/k3s/server/registries.yaml.j2 new file mode 100644 index 0000000..8b603a6 --- /dev/null +++ b/kubernetes/templates/k3s/server/registries.yaml.j2 @@ -0,0 +1 @@ +{{ kubernetes.registries_config | to_nice_yaml(indent=2) }}