Merge "Terraform roles and jobs."
This commit is contained in:
commit
08420e0827
7
doc/source/hashicorp-jobs.rst
Normal file
7
doc/source/hashicorp-jobs.rst
Normal file
@ -0,0 +1,7 @@
|
||||
Packer Jobs
|
||||
===========
|
||||
|
||||
.. zuul:autojob:: packer
|
||||
.. zuul:autojob:: terraform-apply
|
||||
.. zuul:autojob:: terraform-base
|
||||
.. zuul:autojob:: terraform-plan
|
@ -2,4 +2,6 @@ Packer Roles
|
||||
============
|
||||
|
||||
.. zuul:autorole:: ensure-packer
|
||||
.. zuul:autorole:: ensure-terraform
|
||||
.. zuul:autorole:: packer
|
||||
.. zuul:autorole:: terraform
|
@ -9,8 +9,8 @@ Jobs
|
||||
js-jobs
|
||||
docker-jobs
|
||||
go-jobs
|
||||
hashicorp-jobs
|
||||
haskell-jobs
|
||||
helm-jobs
|
||||
packer-jobs
|
||||
system-jobs
|
||||
deprecated-jobs
|
||||
|
@ -1,4 +0,0 @@
|
||||
Packer Jobs
|
||||
===========
|
||||
|
||||
.. zuul:autojob:: packer
|
@ -16,13 +16,13 @@ Roles
|
||||
deprecated-roles
|
||||
galaxy-roles
|
||||
go-roles
|
||||
hashicorp-roles
|
||||
haskell-roles
|
||||
helm-roles
|
||||
java-roles
|
||||
js-roles
|
||||
kubernetes-roles
|
||||
launchpad-roles
|
||||
packer-roles
|
||||
puppet-roles
|
||||
python-roles
|
||||
system-roles
|
||||
|
5
playbooks/terraform/pre.yaml
Normal file
5
playbooks/terraform/pre.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
- hosts: all
|
||||
roles:
|
||||
- ensure-terraform
|
||||
- revoke-sudo
|
||||
|
4
playbooks/terraform/run.yaml
Normal file
4
playbooks/terraform/run.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
- hosts: all
|
||||
roles:
|
||||
- terraform
|
||||
|
@ -56,4 +56,3 @@
|
||||
|
||||
- name: Output packer version
|
||||
command: "{{ packer_executable }} version"
|
||||
|
||||
|
24
roles/ensure-terraform/README.rst
Normal file
24
roles/ensure-terraform/README.rst
Normal file
@ -0,0 +1,24 @@
|
||||
Install terraform
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: terraform_install_dir
|
||||
:default: {{ ansible_user_dir }}/.local/bin/
|
||||
|
||||
Directory to install terraform in.
|
||||
|
||||
.. zuul:rolevar:: terraform_version
|
||||
:default: 0.12.26
|
||||
|
||||
Version of terraform to install.
|
||||
Zuul will skip the installation if this matches an already installed version of terraform.
|
||||
|
||||
.. zuul:rolevar:: terraform_os
|
||||
:default: {{ ansible_system | lower }}
|
||||
|
||||
OS target of package to install.
|
||||
|
||||
.. zuul:rolevar:: terraform_arch
|
||||
:default: amd64 / 386
|
||||
|
||||
Architecture target of package to install.
|
7
roles/ensure-terraform/defaults/main.yaml
Normal file
7
roles/ensure-terraform/defaults/main.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
hashicorp_releases_fqdn: https://releases.hashicorp.com
|
||||
terraform_version: 0.12.26
|
||||
terraform_install_dir: "{{ ansible_user_dir }}/.local/bin/"
|
||||
terraform_os: "{{ ansible_system | lower }}"
|
||||
terraform_arch: "{{ terraform_arch_translation[ansible_architecture] }}"
|
||||
terraform_package: "terraform_{{ terraform_version }}_{{ terraform_os }}_{{ terraform_arch }}"
|
||||
terraform_executable: "{{ ansible_user_dir }}/.local/bin/terraform"
|
74
roles/ensure-terraform/tasks/install-terraform.yaml
Normal file
74
roles/ensure-terraform/tasks/install-terraform.yaml
Normal file
@ -0,0 +1,74 @@
|
||||
- name: Check if unzip is installed
|
||||
command: unzip -v # noqa 303
|
||||
failed_when: false
|
||||
register: _unzip_probe
|
||||
|
||||
- name: Install unzip
|
||||
when: _unzip_probe.rc != 0
|
||||
package:
|
||||
name: unzip
|
||||
become: yes
|
||||
|
||||
- name: Get terraform checksums
|
||||
uri:
|
||||
url: "{{ hashicorp_releases_fqdn }}/\
|
||||
terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_SHA256SUMS"
|
||||
return_content: true
|
||||
register: terraform_version_checksums
|
||||
|
||||
- name: Set terraform checksum
|
||||
set_fact:
|
||||
terraform_checksum: "{{\
|
||||
terraform_version_checksums.content |\
|
||||
regex_search( '[a-z0-9]+ ' + terraform_package) |\
|
||||
regex_replace( '(?P<checksum>[a-z0-9]+) ' + terraform_package, '\\g<checksum>')
|
||||
}}"
|
||||
|
||||
- name: Create temp directory
|
||||
tempfile:
|
||||
state: directory
|
||||
register: terraform_install_tempdir
|
||||
|
||||
- name: Download terraform archive
|
||||
get_url:
|
||||
url: "{{ hashicorp_releases_fqdn }}/\
|
||||
terraform/{{ terraform_version }}/{{ terraform_package }}.zip"
|
||||
dest: "{{ terraform_install_tempdir.path }}/{{ terraform_package }}.zip"
|
||||
checksum: "sha256:{{ terraform_checksum }}"
|
||||
|
||||
- name: Create terraform package directory
|
||||
file:
|
||||
path: "{{ terraform_install_tempdir.path }}/{{ terraform_package }}"
|
||||
state: directory
|
||||
|
||||
- name: Unarchive terraform
|
||||
unarchive:
|
||||
src: "{{ terraform_install_tempdir.path }}/{{ terraform_package }}.zip"
|
||||
dest: "{{ terraform_install_tempdir.path }}/{{ terraform_package }}"
|
||||
remote_src: yes
|
||||
|
||||
- name: Make sure installation directory exists
|
||||
file:
|
||||
path: "{{ terraform_install_dir }}"
|
||||
state: directory
|
||||
|
||||
- name: Install terraform
|
||||
copy:
|
||||
src: "{{ terraform_install_tempdir.path }}/{{ terraform_package }}/terraform"
|
||||
dest: "{{ terraform_install_dir }}/terraform"
|
||||
mode: '0755'
|
||||
owner: "{{ ansible_user }}"
|
||||
remote_src: yes
|
||||
|
||||
- name: Remove tempdir
|
||||
file:
|
||||
path: "{{ terraform_install_tempdir }}"
|
||||
state: absent
|
||||
|
||||
- name: Set terraform executable fact
|
||||
set_fact:
|
||||
terraform_executable: "{{ terraform_install_dir }}/terraform"
|
||||
cacheable: true
|
||||
|
||||
- name: Output terraform version
|
||||
command: "{{ terraform_executable }} version"
|
12
roles/ensure-terraform/tasks/main.yaml
Normal file
12
roles/ensure-terraform/tasks/main.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
- name: Check installed terraform version
|
||||
command: "{{ terraform_executable }} version"
|
||||
register: terraform_installed_version
|
||||
failed_when: false
|
||||
|
||||
- name: Install terraform
|
||||
include_tasks: install-terraform.yaml
|
||||
when:
|
||||
- terraform_installed_version.rc != 0 or
|
||||
"terraform_version != (terraform_installed_version.msg | \
|
||||
regex_replace(terraform_version_pattern, '\\g<version>'))"
|
||||
|
6
roles/ensure-terraform/vars/main.yaml
Normal file
6
roles/ensure-terraform/vars/main.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
terraform_arch_translation:
|
||||
amd64: amd64
|
||||
x86_64: amd64
|
||||
i386: 386
|
||||
|
||||
terraform_version_pattern: ^Terraform v(?P<version>\d+\.\d+\.\d+).*$
|
@ -26,7 +26,7 @@ Run packer command. Assumes the appropriate version of packer has been installed
|
||||
|
||||
Environment variables to set in packer command.
|
||||
|
||||
.. zuul:rolevar:: zuul_workdir
|
||||
.. zuul:rolevar:: packer_workdir
|
||||
:default: {{ zuul.project.src_dir }}
|
||||
|
||||
Directory to run packer in.
|
||||
|
53
roles/terraform/README.rst
Normal file
53
roles/terraform/README.rst
Normal file
@ -0,0 +1,53 @@
|
||||
Run terraform command. Assumes the appropriate version of terraform has been installed.
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: terraform_executable
|
||||
:default: {{ ansible_user_dir }}/.local/bin/terraform
|
||||
|
||||
Path to terraform executable to use.
|
||||
|
||||
.. zuul:rolevar:: terraform_command
|
||||
:default: build
|
||||
|
||||
Terraform command to run.
|
||||
Examples are "plan", "apply"
|
||||
|
||||
.. zuul:rolevar:: terraform_extra_args
|
||||
|
||||
String of extra command line options to pass to terraform.
|
||||
|
||||
.. zuul:rolevar:: terraform_workspace
|
||||
|
||||
Name of the workspace to operate against.
|
||||
By default this will not be created if it does not exist.
|
||||
|
||||
.. zuul:rolevar:: terraform_create_workspace
|
||||
:default: false
|
||||
|
||||
Set to true if the workspace should automatically be created if
|
||||
doesn't already exist.
|
||||
|
||||
.. zuul:rolevar:: terraform_comment
|
||||
:default: true
|
||||
|
||||
Set to false to stop zuul from leaving a comment with the execution plan.
|
||||
|
||||
.. zuul:rolevar:: terraform_overrides
|
||||
|
||||
List of override.tf files to create before initializing terraform.
|
||||
This is useful if a module should use the source from a required project
|
||||
that has been checked out by zuul instead of using a remote git repository.
|
||||
|
||||
.. zuul:rolevar:: dir
|
||||
|
||||
Directory to put override.tf
|
||||
|
||||
.. zuul:rolevar:: content
|
||||
|
||||
Free form content of the override.tf file.
|
||||
|
||||
.. zuul:rolevar:: zuul_work_dir
|
||||
:default: {{ zuul.project.src_dir }}
|
||||
|
||||
Directory to run terraform in.
|
5
roles/terraform/defaults/main.yaml
Normal file
5
roles/terraform/defaults/main.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
terraform_executable: "{{ ansible_user_dir }}/.local/bin/terraform"
|
||||
terraform_extra_args: ""
|
||||
terraform_create_workspace: false
|
||||
terraform_comment: true
|
||||
zuul_work_dir: "{{ zuul.project.src_dir }}"
|
79
roles/terraform/tasks/main.yaml
Normal file
79
roles/terraform/tasks/main.yaml
Normal file
@ -0,0 +1,79 @@
|
||||
- name: Fail if no terraform command is given
|
||||
fail:
|
||||
msg: "No terraform command given."
|
||||
when: terraform_command is not defined
|
||||
|
||||
- name: Create terrafrom overrides
|
||||
when: terraform_overrides is defined
|
||||
copy:
|
||||
content: "{{ zj_override.content }}"
|
||||
dest: "{{ zj_override.dir }}/override.tf"
|
||||
loop: "{{ terraform_overrides }}"
|
||||
loop_control:
|
||||
loop_var: zj_override
|
||||
|
||||
- name: Initialize terraform
|
||||
command: "{{ terraform_executable }} init -no-color -input=false"
|
||||
args:
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
environment:
|
||||
TF_IN_AUTOMATION: 1
|
||||
|
||||
- name: List workspaces
|
||||
when: terraform_workspace is defined
|
||||
shell: |
|
||||
set -o pipefail
|
||||
{{ terraform_executable }} workspace list -no-color | sed 's/* //'
|
||||
register: _terraform_workspace_list
|
||||
args:
|
||||
executable: /bin/bash
|
||||
environment:
|
||||
TF_IN_AUTOMATION: 1
|
||||
|
||||
- name: Create workspace if it doesn't exist
|
||||
when:
|
||||
- terraform_workspace is defined
|
||||
- terraform_workspace not in _terraform_workspace_list.stdout_lines
|
||||
- terraform_create_workspace
|
||||
command: "{{ terraform_executable }} workspace new -no-color {{ terraform_workspace }}"
|
||||
environment:
|
||||
TF_IN_AUTOMATION: 1
|
||||
|
||||
- name: Select workspace
|
||||
when:
|
||||
- terraform_workspace is defined
|
||||
command: "{{ terraform_executable }} workspace select -no-color {{ terraform_workspace }}"
|
||||
environment:
|
||||
TF_IN_AUTOMATION: 1
|
||||
|
||||
- name: Run terraform
|
||||
register: terraform_state_change
|
||||
command: >-
|
||||
{{ terraform_executable }} {{ terraform_command }}
|
||||
-no-color
|
||||
-input=false
|
||||
{{ terraform_extra_args }}
|
||||
{% if terraform_command == 'apply' or terraform_command == 'destroy' %}-auto-approve{% endif %}
|
||||
args:
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
environment:
|
||||
TF_IN_AUTOMATION: 1
|
||||
|
||||
- name: Get path to main.tf relative to the repo root
|
||||
when: terraform_command == "plan"
|
||||
register: main_file_location
|
||||
command: "git ls-files --full-name main.tf" # noqa 303
|
||||
args:
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
|
||||
- name: Return output if command is plan
|
||||
when:
|
||||
- terraform_command == "plan"
|
||||
- terraform_comment
|
||||
zuul_return:
|
||||
data:
|
||||
zuul:
|
||||
file_comments: >
|
||||
{% set file_comments = {} -%}
|
||||
{% set _ = file_comments.update({main_file_location.stdout: [{'message': terraform_state_change.stdout }]}) %}
|
||||
{{- file_comments -}}
|
8
test-playbooks/terraform/main.tf
Normal file
8
test-playbooks/terraform/main.tf
Normal file
@ -0,0 +1,8 @@
|
||||
resource "local_file" "test_file" {
|
||||
content = "test-content"
|
||||
filename = "${path.module}/test-file"
|
||||
}
|
||||
|
||||
module "test_module" {
|
||||
source = "git::https://example.org/this/module/does/not/exist.git//module"
|
||||
}
|
4
test-playbooks/terraform/other-module/main.tf
Normal file
4
test-playbooks/terraform/other-module/main.tf
Normal file
@ -0,0 +1,4 @@
|
||||
resource "local_file" "test_file" {
|
||||
content = "test-content"
|
||||
filename = "${path.module}/module-test-file"
|
||||
}
|
@ -9,6 +9,7 @@
|
||||
- roles/packer/.*
|
||||
- test-playbooks/packer/.*
|
||||
- zuul.d/packer-jobs.yaml
|
||||
- playbooks/packer/.*
|
||||
vars:
|
||||
packer_install_dir: '{{ ansible_user_dir }}/packer'
|
||||
packer_template: test-playbooks/packer/packer.json
|
||||
|
158
zuul-tests.d/terraform-jobs.yaml
Normal file
158
zuul-tests.d/terraform-jobs.yaml
Normal file
@ -0,0 +1,158 @@
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform
|
||||
parent: terraform-plan
|
||||
description: Test terraform job
|
||||
tags: all-platforms
|
||||
files:
|
||||
- roles/ensure-terraform/.*
|
||||
- roles/terraform/.*
|
||||
- test-playbooks/terraform/.*
|
||||
- zuul.d/terraform-jobs.yaml
|
||||
- playbooks/terraform/.*
|
||||
vars:
|
||||
zuul_work_dir: '{{ zuul.project.src_dir }}/test-playbooks/terraform'
|
||||
terraform_workspace: testing
|
||||
terraform_create_workspace: true
|
||||
terraform_overrides:
|
||||
- dir: '{{ zuul.project.src_dir }}/test-playbooks/terraform'
|
||||
content: |
|
||||
module "test_module" {
|
||||
source = "./other-module"
|
||||
}
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-centos-7
|
||||
description: Test terraform job on centos-7
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: centos-7
|
||||
label: centos-7
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-centos-8
|
||||
description: Test terraform job on centos-8
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: centos-8
|
||||
label: centos-8
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-debian-stretch
|
||||
description: Test terraform job on debian-stretch
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: debian-stretch
|
||||
label: debian-stretch
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-fedora-31
|
||||
description: Test terraform job on fedora-31
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: fedora-31
|
||||
label: fedora-31
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-gentoo-17-0-systemd
|
||||
description: Test terraform job on gentoo-17-0-systemd
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: gentoo-17-0-systemd
|
||||
label: gentoo-17-0-systemd
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-opensuse-15
|
||||
description: Test terraform job on opensuse-15
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: opensuse-15
|
||||
label: opensuse-15
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-opensuse-tumbleweed-nv
|
||||
voting: false
|
||||
description: Test terraform job on opensuse-tumbleweed
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: opensuse-tumbleweed
|
||||
label: opensuse-tumbleweed
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-ubuntu-bionic
|
||||
description: Test terraform job on ubuntu-bionic
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: ubuntu-bionic
|
||||
label: ubuntu-bionic
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-ubuntu-xenial
|
||||
description: Test terraform job on ubuntu-xenial
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: ubuntu-xenial
|
||||
label: ubuntu-xenial
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-ubuntu-bionic-plain
|
||||
description: Test terraform job on ubuntu-bionic-plain
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: ubuntu-bionic-plain
|
||||
label: ubuntu-bionic-plain
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-ubuntu-xenial-plain
|
||||
description: Test terraform job on ubuntu-xenial-plain
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: ubuntu-xenial-plain
|
||||
label: ubuntu-xenial-plain
|
||||
|
||||
- job:
|
||||
name: zuul-jobs-test-terraform-centos-8-plain
|
||||
description: Test terraform job on centos-8-plain
|
||||
parent: zuul-jobs-test-terraform
|
||||
tags: auto-generated
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: centos-8-plain
|
||||
label: centos-8-plain
|
||||
|
||||
- project:
|
||||
check: &id001
|
||||
jobs:
|
||||
- zuul-jobs-test-terraform-centos-7
|
||||
- zuul-jobs-test-terraform-centos-8
|
||||
- zuul-jobs-test-terraform-debian-stretch
|
||||
- zuul-jobs-test-terraform-fedora-31
|
||||
- zuul-jobs-test-terraform-gentoo-17-0-systemd
|
||||
- zuul-jobs-test-terraform-opensuse-15
|
||||
- zuul-jobs-test-terraform-ubuntu-bionic
|
||||
- zuul-jobs-test-terraform-ubuntu-xenial
|
||||
- zuul-jobs-test-terraform-ubuntu-bionic-plain
|
||||
- zuul-jobs-test-terraform-ubuntu-xenial-plain
|
||||
- zuul-jobs-test-terraform-centos-8-plain
|
||||
gate: *id001
|
@ -1,7 +1,7 @@
|
||||
- job:
|
||||
name: packer
|
||||
description: |
|
||||
Base job for packaer operations
|
||||
Base job for packer operations
|
||||
|
||||
Responds to these variables:
|
||||
|
||||
|
104
zuul.d/terraform-jobs.yaml
Normal file
104
zuul.d/terraform-jobs.yaml
Normal file
@ -0,0 +1,104 @@
|
||||
- job:
|
||||
name: terraform-base
|
||||
description: |
|
||||
Base job for terraform operations
|
||||
|
||||
Responds to these variables:
|
||||
|
||||
.. zuul:jobvar:: terraform_command
|
||||
|
||||
Command to pass to terraform.
|
||||
|
||||
.. zuul:jobvar:: terraform_workspace
|
||||
|
||||
Name of the workspace to operate against.
|
||||
By default this will not be created if it does not exist.
|
||||
|
||||
.. zuul:rolevar:: terraform_create_workspace
|
||||
:default: false
|
||||
|
||||
Set to true if the workspace should automatically be created if
|
||||
doesn't already exist.
|
||||
|
||||
.. zuul:rolevar:: terraform_comment
|
||||
:default: true
|
||||
|
||||
Set to false to stop zuul from leaving a comment with the execution plan.
|
||||
|
||||
.. zuul:rolevar:: terraform_overrides
|
||||
|
||||
List of override.tf files to create before initializing terraform.
|
||||
This is useful if a module should use the source from a required project
|
||||
that has been checked out by zuul instead of using a remote git repository.
|
||||
|
||||
.. zuul:rolevar:: dir
|
||||
|
||||
Directory to put override.tf
|
||||
|
||||
.. zuul:rolevar:: content
|
||||
|
||||
Free form content of the override.tf file.
|
||||
|
||||
.. zuul:jobvar:: terraform_extra_args
|
||||
:default: ""
|
||||
|
||||
String containing extra arguments to append to the terraform command line.
|
||||
|
||||
.. zuul:jobvar:: terraform_install_dir
|
||||
:default: {{ ansible_user_dir }}/terraform/
|
||||
|
||||
Path to install terraform in.
|
||||
|
||||
.. zuul:rolevar:: terraform_executable
|
||||
:default: {{ ansible_user_dir }}/.local/bin/terraform
|
||||
|
||||
Path to terraform executable to use.
|
||||
|
||||
.. zuul:jobvar:: terraform_version
|
||||
:default: 0.12.26
|
||||
|
||||
The version of terraform to use.
|
||||
|
||||
.. zuul:jobvar:: terraform_os
|
||||
:default: {{ ansible_system | lower }}
|
||||
|
||||
OS to use when choosing terraform version.
|
||||
|
||||
.. zuul:jobvar:: terraform_arch
|
||||
:default: amd64 / 386
|
||||
|
||||
Architecture to use when choosing terraform version
|
||||
|
||||
.. zuul:jobvar:: zuul_work_dir
|
||||
:default: {{ zuul.project.src_dir }}
|
||||
|
||||
Path to operate in.
|
||||
|
||||
pre-run: playbooks/terraform/pre.yaml
|
||||
run: playbooks/terraform/run.yaml
|
||||
|
||||
- job:
|
||||
name: terraform-plan
|
||||
parent: terraform-base
|
||||
description: |
|
||||
Extends terraform-base.
|
||||
|
||||
.. zuul:jobvar:: terraform_command
|
||||
:default: plan
|
||||
|
||||
Command to pass to terraform.
|
||||
vars:
|
||||
terraform_command: plan
|
||||
|
||||
- job:
|
||||
name: terraform-apply
|
||||
parent: terraform-base
|
||||
description: |
|
||||
Extends terraform-base.
|
||||
|
||||
.. zuul:jobvar:: terraform_command
|
||||
:default: apply
|
||||
|
||||
Command to pass to terraform.
|
||||
vars:
|
||||
terraform_command: apply
|
Loading…
x
Reference in New Issue
Block a user