-
Notifications
You must be signed in to change notification settings - Fork 44
/
apply.yml
112 lines (109 loc) · 3.33 KB
/
apply.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
description: >
Execute terraform plan
parameters:
attach-workspace:
default: false
description: "Attach (CircleCI) workspace to job."
type: boolean
workspace-root:
default: "."
description: "Workspace root path that is either an absolute path or a path relative to the working directory. Defaults to '.' (the working directory)"
type: string
path:
type: "string"
description: "Path to the terraform module"
default: "."
persist-workspace:
type: boolean
default: false
description: "Boolean parameter to indicate whether or not to attach to an existing workspace."
workspace-path:
default: "."
description: "Path of the workspace to persist to relative to workspace-root. "
type: string
checkout:
type: boolean
default: false
description: "Perform checkout as first step in job."
var:
type: "string"
description: "Comma separated list of vars to set, e.g. 'foo=bar,bas=foo'"
default: ""
var_file:
type: "string"
description: "Comma separated list of var file paths"
default: ""
workspace:
type: "string"
description: "Name of the terraform workspace"
default: ""
backend_config:
type: "string"
description: |
"Comma separated list of backend configs to set, e.g. 'foo=bar'"
default: ""
backend_config_file:
type: "string"
description: "Path to a backend config file"
default: ""
cli_config_file:
type: "string"
description: "Path to terraform cli config file"
default: ""
plan:
type: string
description: Optionally provide a plan file to supply to the 'apply' command.
default: ""
tag:
description: "Specify the Terraform Docker image tag for the executor"
type: "string"
default: "1.0.0" # update commands/install when updating this
timeout:
description: "Configure a custom timeout limit"
type: "string"
default: "10m"
lock-timeout:
description: Configure a custom state lock timeout
type: string
default: 30s
resource_class:
description: "Specify the resource class for Docker Executor"
type: "string"
default: "medium"
executor:
name: default
tag: << parameters.tag >>
resource_class: << parameters.resource_class >>
steps:
- when:
condition: << parameters.checkout >>
steps:
- checkout
- when:
condition: << parameters.attach-workspace >>
steps:
- attach_workspace:
at: << parameters.workspace-root >>
- init:
path: << parameters.path >>
backend_config: << parameters.backend_config >>
backend_config_file: << parameters.backend_config_file >>
cli_config_file: << parameters.cli_config_file >>
- apply:
path: << parameters.path >>
var: << parameters.var >>
var_file: << parameters.var_file >>
workspace: << parameters.workspace >>
backend_config: << parameters.backend_config >>
backend_config_file: << parameters.backend_config_file >>
cli_config_file: << parameters.cli_config_file >>
plan: <<parameters.plan>>
timeout: <<parameters.timeout>>
lock-timeout: <<parameters.lock-timeout>>
- when:
condition: << parameters.persist-workspace >>
steps:
- persist_to_workspace:
paths:
- << parameters.workspace-path >>
root: << parameters.workspace-root >>