Skip to content

Commit 525a0c0

Browse files
authored
docs(plugins): New Terraform Integration plugin section (#2086)
* docs(plugins): New Terraform Integration plugin section CDSH-148 * add 2.30 compat * create sharable components; flesh out install and index * update armory cd to include patches and spinsvc options * Add k8s stuff to Halyard install; configure features * final copy edits
1 parent cb3ddf2 commit 525a0c0

35 files changed

+1379
-520
lines changed

config.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ anchor = "smart"
106106
[languages]
107107
[languages.en]
108108
#comment out title as it messes with the new logo
109-
#title = "Armory Docs"
109+
title = "Armory Docs"
110110
description = "Unlocking Innovation by Making Software Delivery Continuous, Scalable, and Safe"
111111
languageName ="English"
112112
# Weight used for sorting.

content/en/continuous-deployment/armory-admin/terraform-enable-integration.md

+3-473
Large diffs are not rendered by default.

content/en/continuous-deployment/feature-status/continuous-deployment-matrix/_index.md

+3-19
Original file line numberDiff line numberDiff line change
@@ -122,31 +122,15 @@ The following table lists the supported artifact stores:
122122

123123
[![Generally available](/images/ga.svg)]({{< ref "release-definitions#ga" >}}) ![Proprietary](/images/proprietary.svg)
124124

125-
Use Terraform within your pipelines to create your infrastructure as part of your software delivery pipeline. For more information see {{< linkWithTitle terraform-enable-integration.md >}} and {{< linkWithTitle terraform-use-integration.md >}}.
125+
Use Terraform within your pipelines to create your infrastructure as part of your software delivery pipeline. Terraform Integration is a feature in Armory CD and a plugin for Spinnaker. For more information see the [Terrafrom Integration docs]({{< ref "plugins/terraform/_index.md" >}}).
126126

127127
**Supported Terraform versions**
128128

129-
| CDSH Version | Terraform Supported Versions | Notes |
130-
| ------------ | ------------------------------------------- | ----------------------------------------------------------------------------- |
131-
| 2.27 | 0.11, 0.12, 0.13, 0.14, 0.15, 1.0, 1.1, 1.2 | |
132-
| 2.28 | 0.12, 0.13, 0.14, 0.15, 1.0, 1.1, 1.2 | Version 0.12 was not available in 2.28 but is supported as of release 2.28.1. |
133-
| 2.30 | 0.12, 0.13, 0.14, 0.15, 1.0, 1.1, 1.2, 1.3 | |
134-
135-
{{% alert title="Note" color="primary" %}}
136-
Not all patch versions are included for each release. Although other Terraform versions may be usable with Armory Continuous Deployment and the Terraform Integration, only the versions listed here are supported.
137-
{{% /alert %}}
138-
139-
129+
{{< include "plugins/terraform/terraform-versions.md" >}}
140130

141131
**Features**
142132

143-
The following table lists the Terraform Integration features and their supported versions:
144-
145-
| Feature | Armory Continuous Deployment Version | Notes |
146-
| ---------------------------------------------------------------------------------------------- | ------------------------- | ----- |
147-
| [Base Terraform Integration]({{< ref "terraform-enable-integration" >}}) | All supported versions | |
148-
| [Named Profiles with authorization]({{< ref "terraform-enable-integration#named-profiles" >}}) | All supported versions | |
149-
133+
{{< include "plugins/terraform/features.md" >}}
150134

151135
Support is limited to configuring Terraform Integration and using the stage within Armory Continuous Deployment. Armory's Customer Care team does not troubleshoot Terraform script issues or infrastructure creation using Terraform. If you have questions, contact your assigned Technical Account Manager and/or Account Executive. Alternatively, you can reach our Customer Care team by visiting the [Armory Support Portal](https://support.armory.io/) to [submit a case](https://support.armory.io/support?id=kb_article_view&sysparm_article=KB0010136).
152136

content/en/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-26-5.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Each item category (such as UI) under here should be an h3 (###). List the follo
5555

5656
There is a new Terraform Show stage available as part of the Terraform Integration. This stage is the equivalent of running the `terraform show` command with Terraform. The JSON output from your `planfile` can be used in subsequent stages.
5757

58-
To use the stage, select **Terraform** for the stage type and **Show** as the action in the stage configuration UI. Note that the Show stage depends on your Plan stage. For more information, see the [Show Stage section in the Terraform Integration docs]({{< ref "terraform-use-integration#example-terraform-integration-stage" >}}).
58+
To use the stage, select **Terraform** for the stage type and **Show** as the action in the stage configuration UI. Note that the Show stage depends on your Plan stage. For more information, see the [Show Stage section in the Terraform Integration docs]({{< ref "plugins/terraform/use#example-terraform-integration-stage" >}}).
5959

6060

6161
### Spinnaker Community Contributions

content/en/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-3.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Armory scans the codebase as we develop and release software. Contact your Armor
5858
### **Show** Added to Terraform Integration Stage
5959
There is a new Terraform action available as part of the Terraform Integration stage. This action is the equivalent of running the Terraform ```show``` command with Terraform. The JSON output from your planfile can be used in subsequent stages.
6060

61-
To use the stage, select **Terraform** for the stage type and **Show** as the action in the Stage Configuration UI. Note that the **Show** stage depends on your **Plan** stage. For more information, see [Show Stage section in the Terraform Integration docs]({{< ref "terraform-use-integration#example-terraform-integration-stage" >}}).
61+
To use the stage, select **Terraform** for the stage type and **Show** as the action in the Stage Configuration UI. Note that the **Show** stage depends on your **Plan** stage. For more information, see [Show Stage section in the Terraform Integration docs]({{< ref "plugins/terraform/use#example-terraform-integration-stage" >}}).
6262

6363
## Detailed updates
6464

content/en/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-0.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,13 @@ EXECUTE defined as a potential permission type.
8282
Added support for max concurrent pipeline executions. If concurrent pipeline execution is enabled, pipelines will queue when the max concurrent pipeline executions is reached. Any queued pipelines will be allowed to run once the number of running pipeline executions drops below the max. If the max is set to 0, then pipelines will not queue.
8383

8484
### **Show** Added to Terraform Integration Stage
85+
8586
There is a new Terraform action available as part of the Terraform Integration stage. This action is the equivalent of running the Terraform ```show``` command with Terraform. The JSON output from your planfile can be used in subsequent stages.
8687

87-
To use the stage, select **Terraform** for the stage type and **Show** as the action in the Stage Configuration UI. Note that the **Show** stage depends on your **Plan** stage. For more information, see [Show Stage section in the Terraform Integration docs]({{< ref "terraform-use-integration#example-terraform-integration-stage" >}}).
88+
To use the stage, select **Terraform** for the stage type and **Show** as the action in the Stage Configuration UI. Note that the **Show** stage depends on your **Plan** stage. For more information, see [Show Stage section in the Terraform Integration docs]({{< ref "plugins/terraform/use#example-terraform-integration-stage" >}}).
8889

8990
### Terraform remote backends provided by Terraform Cloud and Terraform Enterprise
90-
Terraform now supports remote backends provided by Terraform Cloud and Terraform Enterprise - see [Remote Backends section in the Terraform Integration docs]({{< ref "terraform-enable-integration#remote-backends" >}}).
91+
Terraform now supports remote backends provided by Terraform Cloud and Terraform Enterprise - see [Remote Backends section in the Terraform Integration docs]({{< ref "plugins/terraform/install/configure" >}}).
9192

9293
### Clouddriver
9394
* Improvements to Docker Registry Account Management, including integration of Docker Registry Clouddriver accounts to take advantage of the new self-service on-boarding account management API.

content/en/contribute/create/guides/tips-tricks.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ If there isn’t a description, Hugo uses the first 70 words of your content. Fo
5555
- /spinnaker/terraform-configure-integration/
5656
- /docs/spinnaker/terraform-enable-integration/---## Overview
5757
58-
The examples on this page describe how to configure the Terraform Integration and an artifact provider to support either GitHub or BitBucket. Note that the Terraform Integration also requires a `git/repo` artifact account. For information about how to use the stage, see [Using the Terraform Integration]({{< ref "terraform-use-integration" >}}).
58+
The examples on this page describe how to configure the Terraform Integration and an artifact provider to support either GitHub or BitBucket. Note that the Terraform Integration also requires a `git/repo` artifact account. For information about how to use the stage, see [Using the Terraform Integration]({{< ref "plugins/terraform/use" >}}).
5959
6060
Armory's Terraform Integration integrates your infrastructure-as-code Terraform workflow into your SDLC. The integration interacts with a source repository you specify to deploy your infrastructure as part of a Spinnaker pipeline.
6161
```

content/en/includes/plugins/plugin-compat-matrix.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@
66
| {{< linkWithLinkTitle "plugins/pipelines-as-code/_index.md" >}}<br>{{% getPageDesc "/plugins/pipelines-as-code/_index.md" %}} | 1.26+ | 2.21+ |
77
| {{< linkWithLinkTitle "plugins/policy-engine/_index.md" >}}<br>{{% getPageDesc "/plugins/policy-engine/_index.md" %}} | 1.26+ | 2.26+ |
88
| {{< linkWithLinkTitle "plugins/scale-agent/_index.md" >}}<br>{{% getPageDesc "/plugins/scale-agent/_index.md" %}} | 1.26+ | 2.26+ |
9+
| {{< linkWithLinkTitle "plugins/terraform/_index.md" >}}<br>{{% getPageDesc "/plugins/terraform/_index.md" %}} | 1.26+ | 2.26+ |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
```yaml
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: spin-terraformer
6+
labels:
7+
app: spin
8+
cluster: spin-terraformer
9+
spec:
10+
selector:
11+
app: spin
12+
cluster: spin-terraformer
13+
ports:
14+
- name: http
15+
port: 7088
16+
protocol: TCP
17+
targetPort: 7088
18+
---
19+
apiVersion: apps/v1
20+
kind: Deployment
21+
metadata:
22+
name: spin-terraformer
23+
annotations:
24+
deployment.kubernetes.io/revision: "1"
25+
moniker.spinnaker.io/application: '"spin"'
26+
moniker.spinnaker.io/cluster: '"terraformer"'
27+
labels:
28+
app: spin
29+
app.kubernetes.io/managed-by: armory
30+
app.kubernetes.io/name: terraformer
31+
app.kubernetes.io/part-of: spinnaker
32+
app.kubernetes.io/version: <version> # CHANGE
33+
cluster: spin-terraformer
34+
spec:
35+
progressDeadlineSeconds: 600
36+
replicas: 1
37+
revisionHistoryLimit: 10
38+
selector:
39+
matchLabels:
40+
app: spin
41+
cluster: spin-terraformer
42+
strategy:
43+
rollingUpdate:
44+
maxSurge: 25%
45+
maxUnavailable: 25%
46+
type: RollingUpdate
47+
template:
48+
metadata:
49+
labels:
50+
app: spin
51+
app.kubernetes.io/managed-by: armory
52+
app.kubernetes.io/name: terraformer
53+
app.kubernetes.io/part-of: spinnaker
54+
app.kubernetes.io/version: <version> # CHANGE
55+
cluster: spin-terraformer
56+
spec:
57+
affinity: {}
58+
containers:
59+
- env:
60+
- name: SPRING_PROFILES_ACTIVE
61+
value: local
62+
image: docker.io/armory/terraformer
63+
imagePullPolicy: IfNotPresent
64+
lifecycle: {}
65+
name: terraformer
66+
ports:
67+
- containerPort: 7088
68+
protocol: TCP
69+
readinessProbe:
70+
exec:
71+
command:
72+
- wget
73+
- --no-check-certificate
74+
- --spider
75+
- -q
76+
- http://localhost:7088/health
77+
failureThreshold: 3
78+
periodSeconds: 10
79+
successThreshold: 1
80+
timeoutSeconds: 1
81+
resources: {}
82+
terminationMessagePath: /dev/termination-log
83+
terminationMessagePolicy: File
84+
volumeMounts:
85+
- mountPath: /opt/spinnaker/config
86+
name: spin-terraformer-config-file
87+
dnsPolicy: ClusterFirst
88+
restartPolicy: Always
89+
schedulerName: default-scheduler
90+
securityContext:
91+
fsGroup: 1000
92+
runAsUser: 1000
93+
terminationGracePeriodSeconds: 60
94+
volumes:
95+
- name: spin-terraformer-config-file
96+
secret:
97+
secretName: spin-terraformer-config-file
98+
99+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
```yaml
2+
apiVersion: v1
3+
kind: ServiceAccount
4+
metadata:
5+
name: terraformer-sa
6+
namespace: spinnaker
7+
---
8+
apiVersion: rbac.authorization.k8s.io/v1
9+
kind: ClusterRole
10+
metadata:
11+
name: terraformer-cluster-role
12+
rules:
13+
- apiGroups:
14+
- extensions
15+
resources:
16+
- ingresses
17+
- ingresses/status
18+
verbs:
19+
- get
20+
- list
21+
- watch
22+
- create
23+
- update
24+
- patch
25+
- delete
26+
- apiGroups:
27+
- networking.k8s.io
28+
resources:
29+
- ingresses
30+
- ingresses/status
31+
verbs:
32+
- get
33+
- list
34+
- watch
35+
- create
36+
- update
37+
- patch
38+
- delete
39+
- apiGroups:
40+
- ""
41+
resources:
42+
- pods
43+
- endpoints
44+
verbs:
45+
- get
46+
- list
47+
- watch
48+
- create
49+
- update
50+
- patch
51+
- delete
52+
- apiGroups:
53+
- ""
54+
resources:
55+
- services
56+
- services/finalizers
57+
- events
58+
- configmaps
59+
- secrets
60+
- namespaces
61+
- jobs
62+
verbs:
63+
- create
64+
- get
65+
- list
66+
- update
67+
- watch
68+
- patch
69+
- delete
70+
- apiGroups:
71+
- batch
72+
resources:
73+
- jobs
74+
verbs:
75+
- create
76+
- get
77+
- list
78+
- update
79+
- watch
80+
- patch
81+
- apiGroups:
82+
- apps
83+
- extensions
84+
resources:
85+
- deployments
86+
- deployments/finalizers
87+
- deployments/scale
88+
- daemonsets
89+
- replicasets
90+
- statefulsets
91+
verbs:
92+
- create
93+
- get
94+
- list
95+
- update
96+
- watch
97+
- patch
98+
- delete
99+
- apiGroups:
100+
- monitoring.coreos.com
101+
resources:
102+
- servicemonitors
103+
verbs:
104+
- get
105+
- create
106+
- apiGroups:
107+
- spinnaker.armory.io
108+
resources:
109+
- '*'
110+
- spinnakerservices
111+
verbs:
112+
- create
113+
- get
114+
- list
115+
- update
116+
- watch
117+
- patch
118+
- apiGroups:
119+
- admissionregistration.k8s.io
120+
resources:
121+
- validatingwebhookconfigurations
122+
verbs:
123+
- '*'
124+
---
125+
apiVersion: rbac.authorization.k8s.io/v1
126+
kind: ClusterRoleBinding
127+
metadata:
128+
name: terraformer-cluster-role-binding
129+
roleRef:
130+
apiGroup: rbac.authorization.k8s.io
131+
kind: ClusterRole
132+
name: terraformer-cluster-role
133+
subjects:
134+
- kind: ServiceAccount
135+
name: terraformer-sa
136+
namespace: spinnaker
137+
```

0 commit comments

Comments
 (0)