-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathconcourse.html.md.erb
102 lines (65 loc) · 6.73 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
---
title: Continuous Integration Testing
owner: Services
---
<strong><%= modified_date %></strong>
This topic explains how to use the [Tile Dashboard](https://tile-dashboard.cfapps.io/static/index.html#/environments) continuous integration (CI) system and its underlying [Concourse](http://concourse.ci) platform to help develop and integrate software services for Pivotal Cloud Foundry (PCF).
## <a id="tile-dashboard-ci"></a> Tile Dashboard CI
With your tile in our Tile Dashboard continuous integration testing system, we all win. You stay on top of changes to PCF that may require changes in your tile. Our field representatives gain a clear understanding of your tile’s compatibility across PCF versions, underlying IaaS, and different flavors of environments. This also relieves you from maintaining your own CI system, keeping up with latest PCF versions, etc. Further, the Tile Dashboard CI is part of our [Enterprise Readiness criteria](https://docs.google.com/presentation/d/1Z05EuIB11cLejldShVTffprzBulZxiL8MTVxrfPbvT0), which is used to inform the field of the quality and capabilities of your tile, so it is important to get your tile performing well.
### <a id="td-ci-steps"></a> Tile Dashboard Steps
Tile Dashboard runs your tile through a series of steps, which include:
* Download your tile from PivNet and check hash integrity.
* Scan your tile for known issues or potential problems, like:
- Use of deprecated properties.
- Use of properties whose values/meanings have changed.
- Use of features that are no longer supported.
* Configure, install, test, and uninstall your tile in several PCF environments:
- A patch release of every supported ERT/PAS minor version.
- Every supported IaaS.
- Environments with extra configuration (e.g., multiple availability zones, IPsec).
Tile Dashboard reports the results of each step. The results report for each step includes a general pass/fail status, the execution log, and output. If a test failed for a reason unrelated to a tile (e.g., a network glitch), you can retry the step from Tile Dashboard.
### <a id="what-we-need"></a> What Pivotal Needs from You
To integrate your tile with [Tile Dashboard](https://tile-dashboard.cfapps.io/static/index.html#/environments) CI, Pivotal needs you to upload or send the following:
* Your pre-release [tile](#upload)
* Your tile's [configuration parameters](#params)
* One or more [test configurations](#test)
* Any [backing services](#backing) that the tile requires
These requirements are discussed below.
#### <a id="upload"></a> Uploaded Tile
If this is your first tile and you have not yet released it, email your Pivotal contact to upload the pre-release tile. Tile Dashboard will then pick up the pre-release and run it through CI.
After the first release of your tile, the admin for your tile can continue to upload new pre-releases for future versions to network.pivotal.io.
#### <a id="params"></a> Tile Configuration Parameters
To automate the installation of your tile, we need the configuration parameters the operator would enter into Ops Manager forms. Tile Dashboard includes an interface for you to enter this configuration directly for properties, in the format used by the [om tool](https://github.com/pivotal-cf/om). Click on your tile’s slug, then click the “Configure” link near the top of the screen, and you can enter the following information:
* **Properties**: Configure your tile’s properties, if necessary, using the [JSON product properties format used by om](https://github.com/pivotal-cf/om/blob/master/docs/configure-product/README.md#configuring-the---product-properties). (Note: this is the same format used by the Operations Manager product properties API.)
* **UAA Users**: Include a list of UAA users to use for testing your tile. The format is a JSON array, with the specific format described on the configuration page.
#### <a id="test"></a> Test Configuration
After your tile is installed, Tile Dashboard will run any post-deploy errands your tile has defined, including tests. Ideally your tile will include tests that exercise all of its functionality. We have some ideas for expanding the Tile Dashboard testing capabilities; if you’re interested in other ways of defining tests, please reach out to us on [Pivotal Partners Slack](https://pivotalpartners.slack.com/).
#### <a id="backing"></a> Backing Services
If your tile requires a backing service outside of the existing PCF environment (e.g., your tile is a service broker to a SaaS offering), you are responsible for maintaining the backing service in an environment that the Tile Dashboard can reach (i.e., it must be internet-facing).
## <a id="overview"></a> Concourse
The [Tile Dashboard CI](#tile-dashboard-ci) that Pivotal runs for its technical partnership program members uses the CI tool [Concourse](http://concourse.ci/) to make sure that partner products continue to work with every new release of the platform.
With more effort, you can also follow the pointers below to set up your own Concourse CI pipeline that integrates and tests your tile on your own deployment of the latest PCF.
While you are of course also free to use any other CI system you are familiar with, Pivotal's tools and documentation are built to make Concourse CI as easy as possible.
### <a id="server"></a> Set Up a Concourse Server
You will need a Concourse server to host your pipeline. If you partner with
Pivotal, 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 choose to set
up your own Concourse server, instructions can be found here:
- [Setting up Concourse](http://concourse.ci/setting-up.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 PCF
- Run a set of deployment tests to verify that it deployed and works correctly
- Remove it from PCF
You describe this pipeline in a `pipeline.yml` file that is then uploaded to the
Concourse server. [Tile Generator](tile-generator.html) contains a sample
pipeline that you can clone for your own tile. We are working on automating
the process of generating a pipeline template for you.
### <a id="pool"></a> Set Up PCF for Your CI Pipeline
Pivotal partners who have us host their pipeline have access to a pool of PCF
instances that are managed by us and are regularly updated with the latest
(pre-)release versions of PCF. If you set up your own concourse server, you
will have to target your pipeline at a [PCF 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 PCF access between the
partner pipelines that run on our concourse server.