From c8329a242b67dbf77b03393dd17f682ce1915489 Mon Sep 17 00:00:00 2001 From: Mike Holloway Date: Mon, 6 Jan 2025 06:20:48 -0500 Subject: [PATCH] linode action yml test --- .gitea/workflows/linode.yml | 53 +++++++++++++++++++++++++ extensions/molecule/linode/converge.yml | 8 ++++ extensions/molecule/linode/create.yml | 40 +++++++++++++++++++ extensions/molecule/linode/destroy.yml | 24 +++++++++++ extensions/molecule/linode/molecule.yml | 8 ++++ 5 files changed, 133 insertions(+) create mode 100644 .gitea/workflows/linode.yml create mode 100644 extensions/molecule/linode/converge.yml create mode 100644 extensions/molecule/linode/create.yml create mode 100644 extensions/molecule/linode/destroy.yml create mode 100644 extensions/molecule/linode/molecule.yml diff --git a/.gitea/workflows/linode.yml b/.gitea/workflows/linode.yml new file mode 100644 index 0000000..1ddd045 --- /dev/null +++ b/.gitea/workflows/linode.yml @@ -0,0 +1,53 @@ +name: Gitea Actions - molecule test work +run-name: ${{ gitea.actor }} is running molecule test work +on: + push: + tags: + - 'linode-test' + +jobs: + Explore-terraform-molecule-Gitea-Action: + env: + ANSIBLE_ROLES_PATH: '/workspace/seasharp/ansible-role_podman-host' +# ANSIBLE_REMOTE_TMP: '/root/.ansible/tmp/' + runs-on: ubuntu-latest + steps: + - name: tofu install + run: | + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://get.opentofu.org/opentofu.gpg | sudo tee /etc/apt/keyrings/opentofu.gpg >/dev/null + curl -fsSL https://packages.opentofu.org/opentofu/tofu/gpgkey | sudo gpg --no-tty --batch --dearmor -o /etc/apt/keyrings/opentofu-repo.gpg >/dev/null + chmod a+r /etc/apt/keyrings/opentofu.gpg /etc/apt/keyrings/opentofu-repo.gpg + echo "deb [signed-by=/etc/apt/keyrings/opentofu.gpg,/etc/apt/keyrings/opentofu-repo.gpg] https://packages.opentofu.org/opentofu/tofu/any/ any main + deb-src [signed-by=/etc/apt/keyrings/opentofu.gpg,/etc/apt/keyrings/opentofu-repo.gpg] https://packages.opentofu.org/opentofu/tofu/any/ any main" | tee /etc/apt/sources.list.d/opentofu.list > /dev/null + chmod a+r /etc/apt/sources.list.d/opentofu.list + apt-get update + apt-get install -y tofu + - name: tofu Checkout + uses: actions/checkout@v4 + with: + repository: 'seasharp/eqit_tofu-plan' + ref: 'refs/heads/master' + path: 'tofu' + ssh-key: |- + -----BEGIN OPENSSH PRIVATE KEY----- + b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW + QyNTUxOQAAACCrwBEqzNuM0VFHpy9bBprXebPnu6oZFBfucpT1k3Bv8gAAAJh9CogdfQqI + HQAAAAtzc2gtZWQyNTUxOQAAACCrwBEqzNuM0VFHpy9bBprXebPnu6oZFBfucpT1k3Bv8g + AAAECnSrigm9ALsWTb6RnDhDFV/nViuPK1jzoE+FAmrwYfdavAESrM24zRUUenL1sGmtd5 + s+e7qhkUF+5ylPWTcG/yAAAAEW0wMHRAbWlzZXJ2ZXIubGFuAQIDBA== + -----END OPENSSH PRIVATE KEY----- + ssh-known-hosts: | + git.libre.audio ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFLiDhNN7aPdGUt8gvvAftF5Oo3xwsy/JcT9gcX00BDW + [git.libre.audio]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFLiDhNN7aPdGUt8gvvAftF5Oo3xwsy/JcT9gcX00BDW + + - name: Project Checkout + uses: actions/checkout@v4 + with: + path: 'podman-host' + - name: Set up Python + uses: actions/setup-python@v2 + - name: Molecule test + run: | + cd podman-host/extensions + molecule test linode diff --git a/extensions/molecule/linode/converge.yml b/extensions/molecule/linode/converge.yml new file mode 100644 index 0000000..e600756 --- /dev/null +++ b/extensions/molecule/linode/converge.yml @@ -0,0 +1,8 @@ +--- +- name: Converge + hosts: all + gather_facts: false + tasks: + - name: Replace this task with one that validates your content + ansible.builtin.debug: + msg: "This is the effective test" diff --git a/extensions/molecule/linode/create.yml b/extensions/molecule/linode/create.yml new file mode 100644 index 0000000..3adbe7f --- /dev/null +++ b/extensions/molecule/linode/create.yml @@ -0,0 +1,40 @@ +--- +- name: Create + hosts: localhost + connection: local + gather_facts: false + # no_log: "{{ molecule_no_log }}" + tasks: + # TODO: Developer must implement and populate 'server' variable + - name: Import state into tofu + command: | + cd ../../../../tofu + tofu import module.main_vpc_subnet.linode_vpc.eqit_vpc {{ eqit_vpc }} + tofu import module.main_vpc_subnet.linode_vpc_subnet.eqit_vpc_subnet {{ eqit_vpc }}, {{ eqit_vpc_subnet }} + +# - name: Create instance config +# when: server.changed | default(false) | bool # noqa no-handler +# block: +# - name: Populate instance config dict # noqa jinja +# ansible.builtin.set_fact: +# instance_conf_dict: {} +# # instance': "{{ }}", +# # address': "{{ }}", +# # user': "{{ }}", +# # port': "{{ }}", +# # 'identity_file': "{{ }}", } +# with_items: "{{ server.results }}" +# register: instance_config_dict +# +# - name: Convert instance config dict to a list +# ansible.builtin.set_fact: +# instance_conf: "{{ instance_config_dict.results | map(attribute='ansible_facts.instance_conf_dict') | list }}" +# +# - name: Dump instance config +# ansible.builtin.copy: +# content: | +# # Molecule managed +# +# {{ instance_conf | to_json | from_json | to_yaml }} +# dest: "{{ molecule_instance_config }}" +# mode: "0600" diff --git a/extensions/molecule/linode/destroy.yml b/extensions/molecule/linode/destroy.yml new file mode 100644 index 0000000..59d6a8e --- /dev/null +++ b/extensions/molecule/linode/destroy.yml @@ -0,0 +1,24 @@ +--- +- name: Destroy + hosts: localhost + connection: local + gather_facts: false + # no_log: "{{ molecule_no_log }}" + tasks: + # Developer must implement. + + # Mandatory configuration for Molecule to function. + + - name: Populate instance config + ansible.builtin.set_fact: + instance_conf: {} + + - name: Dump instance config + ansible.builtin.copy: + content: | + # Molecule managed + + {{ instance_conf | to_json | from_json | to_yaml }} + dest: "{{ molecule_instance_config }}" + mode: "0600" + when: server.changed | default(false) | bool # noqa no-handler diff --git a/extensions/molecule/linode/molecule.yml b/extensions/molecule/linode/molecule.yml new file mode 100644 index 0000000..afddece --- /dev/null +++ b/extensions/molecule/linode/molecule.yml @@ -0,0 +1,8 @@ +--- +driver: + name: default +platforms: + - name: instance + # you might want to add your own variables here based on what provisioning + # you are doing like: + # image: quay.io/centos/centos:stream8