diff --git a/README.md b/README.md index 016189c..6751777 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ consistency. These are generally cluster-level configuration. | `k3s_use_unsupported_config` | Allow the use of unsupported configurations in k3s. | `false` | | `k3s_etcd_datastore` | Enable etcd embedded datastore (read notes below). | `false` | | `k3s_debug` | Enable debug logging on the k3s service. | `false` | +| `k3s_registries` | Configuration containerd's registries config file. | `mirrors:\n configs:\n` | ### K3S Service Configuration diff --git a/defaults/main.yml b/defaults/main.yml index b599ee8..eec4acf 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -97,3 +97,20 @@ k3s_become_for_usr_local_bin: null k3s_become_for_package_install: null k3s_become_for_kubectl: null k3s_become_for_uninstall: null + + +k3s_registries: +# rancher k3s doc https://rancher.com/docs/k3s/latest/en/installation/private-registry/ + mirrors: +# docker.io: +# endpoint: +# - "https://mycustomreg.com:5000" + configs: +# "mycustomreg:5000": +# auth: +# username: xxxxxx # this is the registry username +# password: xxxxxx # this is the registry password +# tls: +# cert_file: # path to the cert file used in the registry +# key_file: # path to the key file used in the registry +# ca_file: # path to the ca file used in the registry \ No newline at end of file diff --git a/tasks/build/containerd/registries.yml b/tasks/build/containerd/registries.yml new file mode 100644 index 0000000..c914a70 --- /dev/null +++ b/tasks/build/containerd/registries.yml @@ -0,0 +1,11 @@ +--- + +- name: Ensure containerd registries file exists + ansible.builtin.template: + src: registries.yaml.j2 + dest: "{{ k3s_config_dir }}/registries.yaml" + mode: 0644 + notify: + - reload systemd + - restart k3s + become: "{{ k3s_become_for_install_dir | ternary(true, false, k3s_become_for_all) }}" \ No newline at end of file diff --git a/tasks/state-installed.yml b/tasks/state-installed.yml index a693927..0538715 100644 --- a/tasks/state-installed.yml +++ b/tasks/state-installed.yml @@ -29,6 +29,15 @@ - ('docker' in k3s_runtime_config and k3s_runtime_config.docker) - ('rootless' not in k3s_runtime_config or not k3s_runtime_config.rootless) + +- name: Ensure containerd installation tasks are run + block: + - include_tasks: build/containerd/registries.yml + when: + - k3s_registries is defined + - (k3s_runtime_config.docker is not defined or not k3s_runtime_config.docker) + - ('rootless' not in k3s_runtime_config or not k3s_runtime_config.rootless) + - name: Flush Handlers meta: flush_handlers diff --git a/templates/registries.yaml.j2 b/templates/registries.yaml.j2 new file mode 100644 index 0000000..b53fadd --- /dev/null +++ b/templates/registries.yaml.j2 @@ -0,0 +1 @@ +{{ k3s_registries | to_nice_yaml }} \ No newline at end of file