diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..9ec6f5b --- /dev/null +++ b/content/_index.md @@ -0,0 +1,59 @@ +--- +title: wp-opentofu +--- + +[![Build Status](https://ci.thegeeklab.de/api/badges/thegeeklab/wp-opentofu/status.svg)](https://ci.thegeeklab.de/repos/thegeeklab/wp-opentofu) +[![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/wp-opentofu) +[![Quay.io](https://img.shields.io/badge/quay-latest-blue.svg?logo=docker&logoColor=white)](https://quay.io/repository/thegeeklab/wp-opentofu) +[![Go Report Card](https://goreportcard.com/badge/github.com/thegeeklab/wp-opentofu)](https://goreportcard.com/report/github.com/thegeeklab/wp-opentofu) +[![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/wp-opentofu)](https://github.com/thegeeklab/wp-opentofu/graphs/contributors) +[![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/wp-opentofu) +[![License: Apache-2.0](https://img.shields.io/github/license/thegeeklab/wp-opentofu)](https://github.com/thegeeklab/wp-opentofu/blob/main/LICENSE) + +Woodpecker CI plugin to manage infrastructure with [OpenTofu](https://github.com/opentofu/opentofu). + + + +{{< toc >}} + + + +## Usage + +```YAML +steps: + - name: tofu + image: quay.io/thegeeklab/wp-opentofu + settings: + actions: + - validate + - plan +``` + +### Parameters + + + +{{< propertylist name=wp-opentofu.data sort=name >}} + + + +## Build + +Build the binary with the following command: + +```Shell +make build +``` + +Build the Container image with the following command: + +```Shell +docker build --file Containerfile.multiarch --tag thegeeklab/wp-opentofu . +``` + +## Test + +```Shell + +``` diff --git a/data/data.yaml b/data/data.yaml new file mode 100644 index 0000000..8d30b9e --- /dev/null +++ b/data/data.yaml @@ -0,0 +1,211 @@ +--- +properties: + - name: become + description: | + Enable privilege escalation. + type: bool + defaultValue: false + required: false + + - name: become_method + description: | + Privilege escalation method to use. + type: string + required: false + + - name: become_user + description: | + Privilege escalation user to use. + type: string + required: false + + - name: check + description: | + Run a check, do not apply any changes. + type: bool + defaultValue: false + required: false + + - name: connection + description: | + Connection type to use. + type: string + required: false + + - name: diff + description: | + Show the differences. Be careful when using it in public CI environments as it can print secrets. + type: bool + defaultValue: false + required: false + + - name: extra_vars + description: | + Set additional variables as `key=value`. + type: list + required: false + + - name: flush_cache + description: | + Clear the fact cache for every host in inventory. + type: bool + defaultValue: false + required: false + + - name: force_handlers + description: | + Run handlers even if a task fails. + type: bool + defaultValue: false + required: false + + - name: forks + description: | + Specify number of parallel processes to use. + type: integer + defaultValue: 5 + required: false + + - name: galaxy_requirements + description: | + Path to galaxy requirements file. + type: string + required: false + + - name: inventory + description: | + Path to inventory file. + type: list + required: false + + - name: limit + description: | + Limit selected hosts to an additional pattern. + type: string + required: false + + - name: list_hosts + description: | + Outputs a list of matching hosts. + type: bool + defaultValue: false + required: false + + - name: list_tags + description: | + List all available tags. + type: bool + defaultValue: false + required: false + + - name: list_tasks + description: | + List all tasks that would be executed. + type: bool + defaultValue: false + required: false + + - name: module_path + description: | + Prepend paths to module library. + type: list + required: false + + - name: playbook + description: | + List of playbooks to apply. + type: list + required: false + + - name: private_key + description: | + SSH private key used to authenticate the connection. + type: string + required: false + + - name: python_requirements + description: | + Path to python requirements file. + type: string + required: false + + - name: scp_extra_args + description: | + Specify extra arguments to pass to SCP connections only. + type: string + required: false + + - name: sftp_extra_args + description: | + Specify extra arguments to pass to SFTP connections only. + type: string + required: false + + - name: skip_tags + description: | + Only run plays and tasks whose tags do not match. + type: string + required: false + + - name: ssh_common_args + description: | + Specify common arguments to pass to SFTP, SCP and SSH connections. + type: string + required: false + + - name: ssh_extra_args + description: | + Specify extra arguments to pass to SSH connections only. + type: string + required: false + + - name: start_at_task + description: | + Start the playbook at the task matching this name. + type: string + required: false + + - name: syntax_check + description: | + Perform a syntax check on the playbook. + type: bool + defaultValue: false + required: false + + - name: tags + description: | + Only run plays and tasks tagged with these values. + type: string + required: false + + - name: timeout + description: | + Override the connection timeout in seconds. + type: integer + defaultValue: 0 + required: false + + - name: user + description: | + Connect as this user. + type: string + required: false + + - name: vault_id + description: | + The vault identity to use. + type: string + required: false + + - name: vault_password + description: | + The vault password to use. + type: string + required: false + + - name: verbose + description: | + Level of verbosity, 0 up to 4. + type: integer + defaultValue: 0 + required: false