forked from mboldt/docs-tiledev
-
Notifications
You must be signed in to change notification settings - Fork 0
/
concourse.html.md.erb
277 lines (179 loc) · 12.2 KB
/
concourse.html.md.erb
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
---
title: Continuous integration testing on your service tile
owner: Services
---
You can do continuous integration (CI) testing on your service tile.
There are two ways to do CI testing on your tile:
+ Use the Tile Dashboard provided as a service by the <%= vars.company_name %> ISV team.<br>
For more information on using the Tile Dashboard as a service, see [Use Tile Dashboard CI to Test Your Tile](#dashboard) below.<br>
+ Set up and use your own Concourse pipeline.<br>
For more information on setting up a Concourse pipeline, see [Set Up a concourse pipeline and test your tile](#concourse).<br>
New partners can work on only one tile at a time.
## <a id="dashboard"></a>Use Tile Dashboard CI to test your tile
With your tile in the Tile Dashboard CI testing system, you can monitor changes to <%= vars.platform_name %> that might require changes
in your tile.
The text box representatives gain an understanding of your tile’s compatibility across <%= vars.platform_name %> versions,
underlying IaaS, and different flavors of environments.
This abstains you from maintaining your own CI system and keeping up with latest <%= vars.platform_name %> versions, and others.
The Tile Dashboard CI is part of the VMware Enterprise Readiness criteria,
which monitors the text box of the quality and capabilities of your tile.
For an introduction to our readiness criteria, see
[Enterprise Readiness criteria](https://docs.google.com/presentation/d/1Z05EuIB11cLejldShVTffprzBulZxiL8MTVxrfPbvT0).
### <a id="tile-dashboard-ci"></a> The Tile Dashboard CI test process
The Tile Dashboard CI runs your tile through a series of steps, which include:
1. Downloading your tile from the VMware Tanzu Network and verifying hash integrity.
2. Scanning your tile for known problems or potential problems, such as:
- Use of deprecated properties.
- Use of properties whose values/meanings have changed.
- Use of features that are no longer supported.
3. Configuring, installing, testing, and uninstalling your tile in several <%= vars.platform_name %> environments:
- A patch release of every supported
<%= vars.app_runtime_full %> minor version.
- Every supported IaaS.
- Environments with extra configuration, such as multiple availability zones and IPsec.
The Tile Dashboard reports the results of each step.
The results that are reported for each step include a pass/fail status, the run log, and output.
If a step fails, for a reason unrelated to a tile, for example, a network glitch,
you can retry that step from the Tile Dashboard CI.
### <a id="prereq"></a>Prerequisites
To use the Tile Dashboard to configure and test your tile:
+ You must have a Slack account on the PivotalPartners.slack.com organization.
If you don't have an account, contact the technical program management of the ISV team.
+ You belong to your company's Slack channel in the PivotalPartners.slack.com organization.
+ Your tile is uploaded to the [VMware Tanzu Network](https://network.tanzu.vmware.com/).
| If you are uploading a… | Then… |
|------------------------------------|--------------|
| first release | contact the technical program management of the ISV team. |
| subsequent release| you can upload pre-releases to the VMware Tanzu Network.|
### <a id="intro"></a> Configuring a tile on the Tile Dashboard
After your tile is uploaded to the VMware Tanzu Network, the Tile Dashboard starts to stage and scan it.
For new tiles, this can take up to an hour.
After the stage and scan tasks, you must configure your tile on the Tile Dashboard.
The configuration specfies how the tile is installed on the test environment.
Configuring your tile through the Tile Dashboard is equivalent to configuring the tile on Tanzu Operations Manager
after you download it from the VMware Tanzu Network.
There are two ways that you can configure the tile on the Tile Dashboard:
| Method | Notes and Restrictions | For more information, see… |
| --------| -----------------------| ----------------------------------|
| Through the **Properties** tab | This is a form view of the installation properties. | [Configure Your Tile Using the Properties Tab](#config-with-property-tab).|
| Through the **Advanced - JSON Properties** tab | This is the list of properties displayed in JSON. | [Configure Your Tile Using the Advanced - JSON Properties Tab](#config-with-advanced-tab).|
### <a id="navigate-to-tile"></a> Log in to the Tile Dashboard and locate the configuration page
To log in to the Tile Dashboard and go to the configuration page:
1. Log on to your PivotalPartners.slack.com account.
2. Go to the Tile Dashboard URL.
![The icons named pie-20, pie-21, and others on a list.](img/pie-environments.png)
4. Click **Tiles** in the menu bar.
5. Click the row where your tile is listed.
6. If your tile has more than one version, click the one you want to configure.
7. Click **Configure**.
![The configure link is in the top left corner under the logo.](img/configurelink.png)
### <a id="config-with-property-tab"></a> Configure your tile using the properties tab
The **Properties** tab view allows you to configure installation properties through a form.
The form pulls properties from your `tile.yml` file parsing the `properties_blueprints`.
For general information about `properties_blueprints`,
see [Configuration properties](./reference.html#properties).
In the form, you can configure:
* strings
* integers
* boolean values
* drop-down menus
* network addresses, ports, secrets, and credentials.
To configure other types, for example, nested collections, use the **Advanced - JSON Properties** tab.
For more in formation about the **Advanced - JSON Properties** tab, see [Configure Your Tile Using the Advanced - JSON Properties Tab](#config-with-advanced-tab).
For more information on property types, see [Property and template references](property-template-references.html).
To configure install properties for your tile using the **Properties** tab:
1. [Log in to the Tile Dashboard and Locate the Configuration Page](#navigate-to-tile).
2. Click the **Properties** tab.
3. Review or specify the value for each property.
If a property is required and is missing valid values, the text box displays in red.
3. When you remove all of the red text box, click **Save** or **Save and Run**.
### <a id="config-with-advanced-tab"></a> Configure your tile using the advanced - JSON properties tab
In the **Advanced - JSON Properties** tab, you configure install properties, specifying them in JSON,
in the format used by the om tool.
For more information about this format used by the om tool,
see [om configure-product](https://github.com/pivotal-cf/om/blob/master/docs/configure-product/README.md#configuring-the---product-properties)
and [Using the Tanzu Operations Manager CLI](https://docs.vmware.com/en/VMware-Tanzu-Operations-Manager/3.0/vmware-tanzu-ops-manager/install-cli.html).
To configure install properties for your tile using the **Advanced - JSON Properties** tab:
1. [Log in to the Tile Dashboard and Locate the Configuration Page](#navigate-to-tile).
2. Click the **Advanced - JSON Properties** tab.
3. Enter values for all required properties.
If a property is required, it returns: `"required": true`.
For example:
```console
".properties.syslog_selector.enabled.address": {
"value": "",
"type": "network_address",
"required": true
},
```
4. After entering values for properties, delete the required attribute.
This tells Tile Dashboard that this text box is now provided.
For example:
```console
".properties.syslog_selector.enabled.address": {
"value": "192.0.2.1",
"type": "network_address",
},
```
3. Click **Save**.
### <a id="environment-sensitive-values"></a> Environment sensitive values
Some property values can vary between test environments, such as availability zone names. When the test is run, for these environment sensitive properties, VMware provides placeholder values that are replaced
with an appropriate value for each test environment.
A description of these placeholder values appears on the **Tile Configuration** tabs for reference.
###<a id="uaa-users"></a> Specify UAA users
To specify the UAA users:
1. [Log on to the Tile Dashboard and locate the Configuration page](#navigate-to-tile).
1. At the bottom of the configuration page, click **+** to expand the box and view the text boxes.
![The bottom of the page shows plus button used to expand uaa properties form.](img/uaa-properties-collapsed.png)
2. Enter user name, password, and groups for the UAA user.
###<a id="save-and-run"></a> Save and run
1. [Log in to the Tile Dashboard and Locate the Configuration Page](#navigate-to-tile).
1. Click **Save and Run**.
This action tests the tile on all the environments.
![Success Config save succeeded! Tile CI begun! message appears when the run starts.](img/save-and-run-message.png)
3. Click **Tiles** in the toolbar to return to the Tiles view.
4. Follow the progress of the tests in the Tiles view.
![Staged, scan and config jobs followed by environment jobs.](img/kick-off-testing.png)
The staged, scan, and config notations are the prerequisite jobs and they run in a series.
The rest of the jobs are the environment jobs and they run in parallel.
The environment jobs do not run until the config job has finished successfully.
### <a id="test"></a> About test configuration
After your tile is installed, the Tile Dashboard runs any post-deploy errands your tile has defined, including tests.
Ideally your tile includes tests that use all of its capability.
### <a id="backing"></a> About backing services
Your tile might require a backing service outside of the existing <%= vars.platform_name %> environment,
for example, your tile might be a service broker to a SaaS offering.
You are responsible for maintaining the backing service in an environment
that the Tile Dashboard can reach, that is, it must be Internet-facing.
## <a id="concourse"></a> Set up a Concourse pipeline and test your tile
The [Tile Dashboard CI](#tile-dashboard-ci) that <%= vars.company_name %> runs for its technical partnership program members
uses the CI tool [Concourse](https://tanzu.vmware.com/developer/guides/concourse-gs/) to verify that partner products continue
to work with every new release of the platform.
You can also follow the pointers as shown later in this topic to set up your own Concourse CI pipeline
that integrates and tests your tile on your own deployment of the latest <%= vars.platform_name %>.
While you are free to use any other CI systems you are familiar with,
<%= vars.company_name %>'s tools and documentation were built to use with Concourse CI.
### <a id="server"></a> Set up a Concourse server
You need a Concourse server to host your pipeline.
If you partner with <%= vars.company_name %>,
the [Tile Dashboard CI](#tile-dashboard-ci) servers can host your pipeline
and provide S3 storage to exchange artifacts with your own servers.
If you set up your own Concourse server,
see the instructions in [Concourse: Setup & Operations](https://concourse-ci.org/index.html).
### <a id="pipeline"></a> Create a Concourse pipeline for your tile
A typical CI pipeline for a tile consists of the following jobs:
- Build the tile.
- Deploy it to <%= vars.platform_name %>.
- Run a set of deployment tests to verify that it deployed and works correctly.
- Remove it from <%= vars.platform_name %>.
You define this pipeline in the `pipeline.yml` file that is uploaded to the
Concourse server. The [Tile Generator](tile-generator.html) contains a sample
pipeline that you can clone for your own tile.
### <a id="pool"></a> Set up <%= vars.platform_name %> for your CI pipeline
<%= vars.company_name %> partners who have VMware host their pipeline have access to a pool of <%= vars.platform_name %>
instances that are managed and are regularly updated with the latest
(pre-)release versions of <%= vars.platform_name %>. If you set up your own Concourse server, you
have to target your pipeline at a [<%= vars.platform_name %> instance you have setup](./environments.html).
Concourse has a resource type to manage a pool of resources that are shared
between pipelines, which is what we use to serialize <%= vars.platform_name %> access between the
partner pipelines that run on the Concourse server.