diff --git a/ansible/roles/bootstrap/tasks/dependencies.yml b/ansible/roles/bootstrap/tasks/dependencies.yml index d0ee3af..819ccd2 100644 --- a/ansible/roles/bootstrap/tasks/dependencies.yml +++ b/ansible/roles/bootstrap/tasks/dependencies.yml @@ -1,11 +1,37 @@ -- name: Create folder structure +- name: Create folder structure(s) ansible.builtin.file: path: "{{ item }}" state: directory loop: - - /opt/x + - /opt/metacluster/dependencies/helm/charts -- name: Install ansible-galaxy collection +- name: Download & install static binaries + ansible.builtin.get_url: + url: "{{ item.url }}" + dest: "/usr/local/bin/{{ item.name }}" + owner: root + group: root + mode: 0755 + loop: "{{ dependencies.static_binaries }}" + +- name: Install ansible-galaxy collections ansible.builtin.shell: cmd: "ansible-galaxy collection install {{ item }}" loop: "{{ dependencies.ansible_galaxy_collections }}" + +- block: + + - name: Download Helm binary + ansible.builtin.unarchive: + src: https://get.helm.sh/helm-{{ helm.version }}-linux-amd64.tar.gz + dest: /opt/metacluster/dependencies/helm + + - name: Install Helm binary + ansible.builtin.copy: + src: /opt/metacluster/dependencies/helm/helm + dest: /usr/local/bin/helm + remote_src: yes + owner: root + group: root + mode: 0755 + diff --git a/ansible/roles/metacluster/tasks/components.yml b/ansible/roles/metacluster/tasks/components.yml index 832492d..e29169b 100644 --- a/ansible/roles/metacluster/tasks/components.yml +++ b/ansible/roles/metacluster/tasks/components.yml @@ -1,3 +1,13 @@ -#- name: XYZ -# ansible.builtin.get_url: +- name: Create folder structure(s) + ansible.builtin.file: + path: "{{ item }}" + state: directory + loop: + - /opt/metacluster/components/harbor +- name: Add helm repositories + kubernetes.core.helm_repository: + name: "{{ item.name }} + repo_url: "{{ item.url }}" + state: present + loop: "{{ components.helm_repositories }}" diff --git a/ansible/roles/metacluster/tasks/k3s.yml b/ansible/roles/metacluster/tasks/k3s.yml index 7e21c75..9236296 100644 --- a/ansible/roles/metacluster/tasks/k3s.yml +++ b/ansible/roles/metacluster/tasks/k3s.yml @@ -1,6 +1,28 @@ -- name: Create folder structure +- name: Create folder structures ansible.builtin.file: path: "{{ item }}" state: directory loop: - - /opt/x + - /var/lib/rancher/k3s/agent/images + - /opt/metacluster/k3s + +- name: Download & install K3s binary + ansible.builtin.get_url: + url: https://github.com/k3s-io/k3s/releases/download/{{ k3s.version }}/k3s + dest: /usr/local/bin/k3s + owner: root + group: root + mode: 0755 + +- name: Download K3s images tarball + ansible.builtin.get_url: + url: https://github.com/k3s-io/k3s/releases/download/{{ k3s.version }}/k3s-airgap-images-amd64.tar.gz + dest: /var/lib/rancher/k3s/agent/images + +- name: Download K3s install script + ansible.builtin.get_url: + url: https://get.k3s.io + dest: /opt/metacluster/k3s + owner: root + group: root + mode: 0755 diff --git a/ansible/vars/metacluster.yml b/ansible/vars/metacluster.yml index 2f4e930..bcf1a0f 100644 --- a/ansible/vars/metacluster.yml +++ b/ansible/vars/metacluster.yml @@ -3,6 +3,15 @@ k3s: components: + helm_repositories: + - name: longhorn + url: https://charts.longhorn.io + - name: harbor + url: https://helm.goharbor.io + + longhorn: + version: + harbor: version: @@ -17,4 +26,4 @@ dependencies: static_binaries: - binary: yq - url: + url: http://github.com/mikefarah/yq/releases/download/v4.25.2/yq_linux_amd64 diff --git a/packer/k8sboostrap.pkr.hcl b/packer/k8sboostrap.pkr.hcl index e54b520..5ae58f4 100644 --- a/packer/k8sboostrap.pkr.hcl +++ b/packer/k8sboostrap.pkr.hcl @@ -60,7 +60,7 @@ source "vsphere-iso" "k8sbootstrap" { export { images = false - output_directory = "/scratch/ubuntuserver" + output_directory = "/scratch/k8sbootstrap" } remove_cdrom = true }