commit fabd695cb9f9e4e4b01aa4529e66a915397f1cd5 Author: Thomas Constans Date: Tue Oct 10 14:37:22 2023 +0200 initial version: gimme a list of container name, i will create them in "formation" project and generate a list you ca feed tco.dns with, to create appropriate dns record diff --git a/README.md b/README.md new file mode 100644 index 0000000..5c6d432 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +Role Name +========= + +Create container on scaleaway cloud + +Requirements +------------ + +None + +Role Variables +-------------- + +scw_api_secret_key: +scw_api_default_project_id: + +container_action; delete or running +container_list: list of container +scw_gen_hostlist: default true, wether we create a hostlist.yml file containing containers name and ip (to be fed to dns role to create records) + +Dependencies +------------ + +None + +Example Playbook +---------------- + +```yaml +--- +- hosts: localhost + vars: + container_action: running + container_list: + - test1 + - test2 + - test3 + roles: + - tco.scw_container +``` + +License +------- + +BSD + +Author Information +------------------ + + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..2508443 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,3 @@ +--- +# defaults file for tco.scw_container +scw_gen_hostlist: true diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..687dc78 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for tco.scw_container diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,52 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..6dbd289 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,22 @@ +--- + - community.general.scaleway_compute: + commercial_type: DEV1-S + region: par1 + name: "{{ item}}" + state: "{{ (container_action == 'delete' ) | ternary( 'absent', 'running' ) }}" + api_token: "{{ scw_api_secret_key }}" + image: 26e4c50e-91d6-41a5-8898-9e40920e819d + project: "{{ scw_api_default_project_id }}" + public_ip: dynamic + loop: "{{ container_list }}" + register: "container_info" + + - name: "generate host list" + ansible.builtin.lineinfile: + create: yes + path: "hostlist.yml" + line: "- { record_name: {{ item.msg.name}}, record_type: A, record_value: {{ item.msg.public_ip.address }} " + state: present + loop: "{{ container_info.results }}" + when: scw_gen_hostlist is true and container_action !='delete' + diff --git a/tests/inventory b/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 0000000..22a957c --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - tco.scw_container diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..e016ebf --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for tco.scw_container