From eccb68b7bd04223449453c1c0978817a93c14a07 Mon Sep 17 00:00:00 2001 From: kiemlicz Date: Fri, 2 Feb 2024 19:36:27 +0100 Subject: [PATCH] fixed some states to support arm64 k3s orchestrator --- salt/docker/map.jinja | 15 +++------ salt/kubernetes/_orchestrate/k3s.sls | 48 +++++++++++++++++++++++++--- salt/os/boot/init.sls | 15 +++++++++ salt/os/boot/map.jinja | 5 +++ salt/os/init.sls | 1 + salt/salt/map.jinja | 15 +++------ 6 files changed, 72 insertions(+), 27 deletions(-) create mode 100644 salt/os/boot/init.sls create mode 100644 salt/os/boot/map.jinja diff --git a/salt/docker/map.jinja b/salt/docker/map.jinja index 54c5046b..a6b87090 100644 --- a/salt/docker/map.jinja +++ b/salt/docker/map.jinja @@ -2,19 +2,12 @@ {% set os = salt['grains.get']('os') %} {% set dist_codename = salt['grains.get']('lsb_distrib_codename') %} +{% set arch = salt['grains.get']("osarch") %} {% set docker = salt['grains.filter_by']({ - 'RedHat': { - 'baseurl': "https://download.docker.com/linux/fedora/$releasever/$basearch/stable", - 'repo_id': "docker-ce-stable", - 'gpgkey': "https://download.docker.com/linux/fedora/gpg", - 'pkg_name': "docker-ce", - 'service_name': "docker", - 'config': '/etc/docker/daemon.json', - }, - 'Debian': { + 'default': { 'file': '/etc/apt/sources.list.d/docker.list', - 'names': ["deb [arch=amd64] https://download.docker.com/linux/" ~ os.lower() ~ " " ~ dist_codename ~ " stable"], + 'names': ["deb [arch=" ~ arch ~ "] https://download.docker.com/linux/" ~ os.lower() ~ " " ~ dist_codename ~ " stable"], 'key_url': "https://download.docker.com/linux/" ~ os.lower() ~ "/gpg", 'pkg_names': ["docker-ce", "docker-ce-cli", "containerd.io"], 'required_pkgs': ["bridge-utils"], @@ -23,6 +16,6 @@ }, }, merge=salt['grains.filter_by']({ 'sid': { - 'names': ["deb [arch=amd64] https://download.docker.com/linux/" ~ os.lower() ~ " stretch stable edge"], + 'names': ["deb [arch=" ~ arch ~ "] https://download.docker.com/linux/" ~ os.lower() ~ " stretch stable edge"], } }, grain='oscodename', merge=salt['pillar.get']('docker'))) %} diff --git a/salt/kubernetes/_orchestrate/k3s.sls b/salt/kubernetes/_orchestrate/k3s.sls index dfe9dd3d..a7c5b957 100644 --- a/salt/kubernetes/_orchestrate/k3s.sls +++ b/salt/kubernetes/_orchestrate/k3s.sls @@ -1,7 +1,44 @@ +{% set masters = salt.saltutil.runner('manage.up', tgt="k3sm*") %} +{% set workers = salt.saltutil.runner('manage.up', tgt="k3sw*") %} +{% set allnodes = [] %} +{% do allnodes.extend(masters) %} +{% do allnodes.extend(workers) %} + sync_modules_master: salt.runner: - name: saltutil.sync_all +sync_minions: + salt.function: + - tgt: "k3s*" + - name: saltutil.sync_all + - kwarg: + refresh: True + +#setup_prerequisites: +# salt.state: +# - tgt: "k3s*" +# - sls: +# - os.boot +# - require: +# - salt: sync_modules_master +# - salt: sync_minions +#restart_nodes: +# salt.function: +# - tgt: {{ allnodes|tojson }} +# - tgt_type: list +# - name: cmd.run +# - arg: +# - reboot +# - require: +# - salt: setup_prerequisites +#wait_for_restart: +# salt.wait_for_event: +# - name: salt/minion/*/start +# - id_list: {{ allnodes|tojson }} +# - require: +# - salt: restart_nodes + setup_k3s_single_master: salt.state: - tgt: "k3sm1*" @@ -9,10 +46,11 @@ setup_k3s_single_master: - pillar: kubernetes: nodes: - masters: {{ salt.saltutil.runner('manage.up', tgt="k3sm*") }} - workers: {{ salt.saltutil.runner('manage.up', tgt="k3sw*") }} + masters: {{ masters|tojson }} + workers: {{ workers|tojson }} - require: - - salt: sync_modules_master + - salt: sync_modules_master + - salt: sync_minions setup_k3s_workers: salt.state: @@ -21,7 +59,7 @@ setup_k3s_workers: - pillar: kubernetes: nodes: - masters: {{ salt.saltutil.runner('manage.up', tgt="k3sm*") }} - workers: {{ salt.saltutil.runner('manage.up', tgt="k3sw*") }} + masters: {{ masters|tojson }} + workers: {{ workers|tojson }} - require: - salt: setup_k3s_single_master diff --git a/salt/os/boot/init.sls b/salt/os/boot/init.sls new file mode 100644 index 00000000..5e6e020e --- /dev/null +++ b/salt/os/boot/init.sls @@ -0,0 +1,15 @@ +{%- from "os/boot/map.jinja" import boot with context %} + +{% for file in boot.files %} +{{ file.name }}: + file.managed: + - name: {{ file.name }} + - contents: {{ file.contents }} +{% if 'mode' in file %} + - mode: {{ file.mode }} +{% endif %} + - user: {{ file.user|default("root") }} + - group: {{ file.group|default("root") }} + - makedirs: True + - contents_newline: False +{% endfor %} diff --git a/salt/os/boot/map.jinja b/salt/os/boot/map.jinja new file mode 100644 index 00000000..618855ad --- /dev/null +++ b/salt/os/boot/map.jinja @@ -0,0 +1,5 @@ +{% set boot = salt['grains.filter_by']({ + 'default': { + 'files': [], + }, +}, merge=salt['pillar.get']('boot')) %} diff --git a/salt/os/init.sls b/salt/os/init.sls index cde7bc54..17775abc 100644 --- a/salt/os/init.sls +++ b/salt/os/init.sls @@ -1,5 +1,6 @@ {%- from "os/network/map.jinja" import network with context %} include: + - os.boot {%- if network.enabled %} # included only upon explicit request - os.network diff --git a/salt/salt/map.jinja b/salt/salt/map.jinja index 036f633a..993f6243 100644 --- a/salt/salt/map.jinja +++ b/salt/salt/map.jinja @@ -1,3 +1,5 @@ +{% set arch = salt['grains.get']("osarch") %} + {% set salt_installer = salt['grains.filter_by']({ 'default': { 'repository': { @@ -27,25 +29,16 @@ 'bookworm': { 'repository': { 'names': [ - "deb [arch=amd64] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main" + "deb [arch=" ~ arch ~ "] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main" ], 'key_url': "https://repo.saltproject.io/salt/py3/debian/12/arm64/SALT-PROJECT-GPG-PUBKEY-2023.gpg", 'origin': 'bookworm' } }, - 'bullseye': { - 'repository': { - 'names': [ - "deb [arch=amd64] https://repo.saltproject.io/salt/py3/debian/11/amd64/latest bullseye main" - ], - 'key_url': "https://repo.saltproject.io/salt/py3/debian/11/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg", - 'origin': 'bullseye' - } - }, 'focal': { 'repository': { 'names': [ - "deb [arch=amd64] https://repo.saltproject.io/salt/py3/ubuntu/20.04/amd64/latest focal main" + "deb [arch=" ~ arch ~ "] https://repo.saltproject.io/salt/py3/ubuntu/20.04/amd64/latest focal main" ], 'key_url': "https://repo.saltproject.io/salt/py3/ubuntu/20.04/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg", 'origin': 'focal'