Skip to content

Commit 74de97b

Browse files
committed
Initial commit
0 parents  commit 74de97b

File tree

1,799 files changed

+18956
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,799 files changed

+18956
-0
lines changed

CHANGELOG.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Unreleased
2+
3+
# v5.0
4+
5+
* [Issue #132](https://github.com/manheim/terraform-pipeline/issues/132) OpenSource this project.
6+
* [Issue #148](https://github.com/manheim/terraform-pipeline/issues/148) Remove `env` as an argument to `Jenkinsfile.init`, it's not needed.
7+
* [Issue #42](https://github.com/manheim/terraform-pipeline/issues/42) Enable Declarative pipelines, which in turn, enables Restart From Stage.
8+
9+
# v4.3
10+
11+
* [Issue #107](https://github.com/manheim/terraform-pipeline/issues/107) WithAwsPlugin - alternative to AwssumePlugin to assume roles in different accounts
12+
* [Issue #106](https://github.com/manheim/terraform-pipeline/issues/106) Use `withGlobalEnv` method on TerraformEnvironmentStage to add global variables to Stages
13+
* [Issue #143](https://github.com/manheim/terraform-pipeline/issues/143) Fix defect introduced by v4.1, with change to CrqPlugin.
14+
* [Issue #142](https://github.com/manheim/terraform-pipeline/issues/142) `withEnv` should be executed in order, along with every other plugin. This was not previously the case, so environment variables were not always visible to plugins that might need it.
15+
16+
# v4.2
17+
* [Issue #43](https://github.com/manheim/terraform-pipeline/issues/43) AgentNodePlugin - intial support for docker containers in TerraformValidate & TerraformEnvironmentStage
18+
19+
# v4.1
20+
* [Issue #111](https://github.com/manheim/terraform-pipeline/issues/111) Improve cross-pipeline configuration for CRQPlugin
21+
* Allow multiple environment variables to configure CRQ_ENVIRONMENT
22+
* [Issue #110](https://github.com/manheim/terraform-pipeline/issues/110) Improve cross-pipeline configuration for AwssumePlugin
23+
* Allow case-insensitive `<environment>_AWS_ROLE_ARN` variables
24+
* Allow hierarchy for `AWS_ROLE_ARN` variables
25+
26+
# v4.0
27+
* [Issue #120](https://github.com/manheim/terraform-pipeline/issues/120) Delay when plugins are applied
28+
* This is a change in the plugin behavior. Plugins will now affect TerraformCommands even after they've been instantiated - this was not previously the case.
29+
* The purpose of this, is to allow other Plugins to modify Environment variables. Some TerraformCommands may be affected by the Environment variables at the time in which plugins are applied (eg: S3BackendPlugin). Make sure that all possible environment variables are available at the time in which plugins are applied to the commands.
30+
* [Issue #115](https://github.com/manheim/terraform-pipeline/issues/115) Expand configuration for S3BackendPlugin
31+
* Support upper or lower case environment prefixes
32+
* Support general, or environment-specific configuration
33+
* Standardize configuration for region, bucket, dynamodb_table
34+
* ACTION: *Deprecated* DEFAULT_S3_BACKEND_REGION - use S3_BACKEND_REGION, env_S3_BACKEND_REGION, AWS_REGION, or AWS_DEFAULT_REGION
35+
* ACTION: *Deprecated* env_S3_BACKEND_DYNAMO_TABLE_LOCK - use S3_BACKEND_DYNAMODB_TABLE, or env_S3_BACKEND_DYNAMODB_TABLE
36+
37+
# v3.12
38+
* [Issue #24](https://github.com/manheim/terraform-pipeline/issues/24) ConfirmApplyPlugin - skip human confirmation
39+
40+
# v3.11
41+
* [Issue #73](https://github.com/manheim/terraform-pipeline/issues/73) In a single-branch pipeline, allow terraform apply to happen
42+
* Allow custom key pattern in S3BackendPlugin - https://github.com/manheim/terraform-pipeline/pull/117
43+
* [Issue #114](https://github.com/manheim/terraform-pipeline/issues/114) Point out DefaultEnvironmentPlugin earlier in README
44+
45+
# v3.10
46+
* [Issue #103](https://github.com/manheim/terraform-pipeline/issues/103) Support multiple repos
47+
* [Issue #101](https://github.com/manheim/terraform-pipeline/issues/101) Expect test suite to exist locally by default
48+
49+
# v3.9
50+
* [Issue #99](https://github.com/manheim/terraform-pipeline/issues/99) Added RegressionStage to allow running automated tests.
51+
52+
# v3.8
53+
* [Issue #90](https://github.com/manheim/terraform-pipeline/issues/90) Allow configuration of the directory where Terraform runs
54+
55+
# v3.7
56+
* [Issue #67](https://github.com/manheim/terraform-pipeline/issues/67) Support injecting CredentialsPlugin credentials into the BuildStage
57+
* [Issue #71](https://github.com/manheim/terraform-pipeline/issues/71) Update README code examples with the latest stable release.
58+
* [Issue #80](https://github.com/manheim/terraform-pipeline/issues/80) Fix S3Backend code examples.
59+
* [Issue #72](https://github.com/manheim/terraform-pipeline/issues/72) Improve README instructions for setting up a pipeline.
60+
61+
# v3.6
62+
* [Issue #84](https://github.com/manheim/terraform-pipeline/issues/84) Support DynamoDb table locking in S3BackendPlugin
63+
64+
# v3.5
65+
* [Issue #75](https://github.com/manheim/terraform-pipeline/issues/75) Be able to skip awssume if not doing a cross-account deploy. Disable by not specifying `<environment>_AWS_ROLE_ARN` variable.
66+
* [Issue #62](https://github.com/manheim/terraform-pipeline/issues/62) Create a new FileParametersPlugin, to set environment variables through properties files.
67+
* [Issue #76](https://github.com/manheim/terraform-pipeline/issues/76) The README shows an example of providing a local Customizations class. That doesn't actually work. Remove that from the README until we can find something that works.
68+
69+
# v3.4
70+
* [Issue #49](https://github.com/manheim/terraform-pipeline/issues/49) Allow Consul address to be provided in ways other than hard-coding.
71+
* [Issue #50](https://github.com/manheim/terraform-pipeline/issues/50) Allow Consul path pattern for environments to be overridden.
72+
73+
# v3.3
74+
* [Issue #44](https://github.com/manheim/terraform-pipeline/issues/44) Create a new DefaultEnvironmentPlugin, to provide a terraform variable `environment` by default.
75+
76+
# v3.2
77+
* [Issue #33](https://github.com/manheim/terraform-pipeline/issues/33) Add information in the README to control the node label for your pipelines.
78+
* Update README code examples
79+
80+
# v3.1
81+
* TerraformCommand Refactor: use explicit interfaces to customize commands, stop using Closures.
82+
* Add a unit test suite for every plugin
83+
* Add new S3BackendPlugin to support storing terraform state in S3
84+
85+
# v3.0
86+
* [Issue #35](https://github.com/manheim/terraform-pipeline/issues/35): turn hardcoded backend path for terraform init into a new ConsulBackendPlugin. BackendPath is no longer set by default.
87+
88+
# v2.4
89+
* Bug fix: Prefer Jenkinsfile.defaultNodeName over environment variable DEFAULT_NODE_NAME when choosing the node to run jobs
90+
* ParameterStoreBuildWrapperPlugin now available, and is the preferred method to retrieve ParameterStore parameters. Start deprecating use of ParameterStoreExecPlugin.
91+
92+
# v2.3.1
93+
* Optionally stash and unstash an artifact generated by the BuildStage. See Issue #40 (https://github.com/manheim/terraform-pipeline/issues/40)
94+
* Delete and checkout SCM only once, at the beginning of every TerraformEnvironmentStage
95+
96+
# v2.3
97+
* Add a BuildStage.groovy that can be used to insert an arbitrary build script in your pipeline.
98+
99+
# v2.2.1
100+
* Fix typo in README for ParameterStoreExecPlugin. Example code did not work if you copy-paste.
101+
102+
# v2.2
103+
* Update README with clarifications on Plugin use.
104+
* Add missing AwssumePlugin to README
105+
106+
# v2.1
107+
* Update README with strategies for DRY'ing up plugin configuration.
108+
109+
# v2.0
110+
* [Issue #10](https://github.com/manheim/terraform-pipeline/issues/10) - flesh out a general pattern for plugins. These are breaking changes.
111+
* AnsiColorPlugin is no longer active by default. Enable AnsiColorPlugin by calling `AnsiColorPlugin.init()`
112+
* CrqPlugin is no longer active by default. Enable CrqPlugin by calling `CrqPlugin.init()`
113+
* Combine and rename ParameterStorePlugin to ParameterStoreExecPlugin.
114+
* ParameterStoreExecPlugin is no longer active by default. Enable ParameterExecStorePlugin by calling `ParameterStoreExecPlugin.init()`
115+
* New TerraformEnvironmentStagePlugin interface - AnsiColorPlugin and CrqPlugin implements this. Plugins should implement this type of interface going forward.
116+
* StageConditionPlugin is now implemented as a TerraformEnvironmentStagePlugin. It continues to be enabled by default, and continues to default to the master branch.
117+
* Rename StageConditionPlugin to ConditionalApplyPlugin.
118+
* TerraformConfirmPlugin is now implemented as a TerraformEnvironmentStagePlugin. It continues to be enabled by default, with all existing defaults.
119+
* Rename TerraformConfirmPlugin to ConfirmApplyPlugin
120+
121+
# v1.7
122+
* [Issue #16](https://github.com/manheim/terraform-pipeline/issues/16): support either HTTPS or SSH urls when constructing repo slug (used for consul state path on terraform plan and terraform apply)
123+
* Add gradle and unit testing
124+
125+
# v1.6
126+
* awssume is no longer used by default in terraform-plan and terraform-apply
127+
* A new AwssumePlugin is available, which will add awssume functionality if you want it
128+
129+
# v1.5
130+
* parameter-store-exec is no longer used by default in terraform-plan, terraform-apply
131+
* A new ParameterStoreExec Plugin is available, which will restore that functionality if you want it.
132+
* Reduce boiler plate code for Jenkinsfile - a new init() method takes in the Script, the environment, and an optional customization class (just needs an init()) method, where you can load any plugins that might customize the behavior of your pipeline (eg: ParameterStoreExec)
133+
134+
# v1.3
135+
* Store the `env` variable for later use
136+
* Allow pipeline users to provide a DEFAULT_NODE_NAME environment variable, rather than explicitly specifying it in the pipeline

Jenkinsfile.terraform-pipeline

Whitespace-only changes.

0 commit comments

Comments
 (0)