-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[WIP] Add documentation for CI/CD setup and Commodore Compile Pipeline
- Loading branch information
1 parent
e121890
commit 88191d9
Showing
5 changed files
with
95 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
92 changes: 92 additions & 0 deletions
92
docs/modules/ROOT/pages/how-tos/compile-pipeline-setup.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
= Compile Pipeline Setup | ||
|
||
Lieutenant can automatically configure CI/CD tooling on your Git repositories. | ||
This page explains how to set up the https://github.com/projectsyn/commodore-compile-pipelines[Commodore Compile Pipeline]. | ||
|
||
[INFO] | ||
-- | ||
Automatic configuration of CI/CD tooling is so far only supported on GitLab. | ||
|
||
To allow the Lieutenant Operator to connect to GitLab, refer to xref:how-tos/gitlab-connection.adoc[Connection to GitLab]. | ||
-- | ||
|
||
== Enabling the Compile Pipeline for individual tenants and clusters | ||
|
||
The `compilePipelineSpec` field on a Tenant object governs how CI/CD tooling is managed. | ||
To enable the Commodore Compile Pipeline on a tenant, configure it as follows: | ||
|
||
[source,bash] | ||
.... | ||
kubectl patch tenant my-tenant --type merge -p ' | ||
spec: | ||
compilePipeline: | ||
enabled: true <1> | ||
pipelineFiles: | ||
.gitlab-ci.yml: | <2> | ||
include: | ||
- https://raw.githubusercontent.com/projectsyn/commodore-compile-pipelines/main/gitlab/commodore-pipeline.yml | ||
' | ||
.... | ||
<1> This field enables the compile pipeline for this tenant. | ||
If it is `false` or unset, no CI/CD tooling will be managed, regardless of other configuration options on the tenant or its clusters. | ||
<2> This example causes Lieutenant to create a file `.gitlab-ci.yml` in the tenant repository, which references the open-source https://github.com/projectsyn/commodore-compile-pipelines[Commodore Compile Pipeline]. | ||
It is possible to customize this file, or create different files. | ||
|
||
In addition, the Compile Pipeline must be enabled for each cluster where CI/CD is desired: | ||
[source,bash] | ||
.... | ||
kubectl patch cluster my-cluster --type merge -p ' | ||
spec: | ||
enableCompilePipeline: true <1> | ||
gitRepoTemplate: | ||
accessToken: | ||
secretRef: my-cluster-api-token <2> | ||
' | ||
.... | ||
<1> This field enables the compile pipeline for this cluster. | ||
If it is `false` or unset, the tenant's CI/CD configuration will disregard this cluster. | ||
<2> For the compile pipeline to work, an access token for the Git repository is required. | ||
Lieutenant creates this access token and will store it in the secret specified here. | ||
|
||
|
||
== Enabling the Compile Pipeline for all clusters of a tenant | ||
|
||
We can leverage templating to configure and enable the Compile Pipeline for all clusters on a tenant. | ||
For more information on templating, refer to xref:explanations/templating.adoc[Templating]. | ||
|
||
The following example configures a tenant such that its clusters automatically include the correct configuration for the Compile Pipeline: | ||
[source,bash] | ||
.... | ||
kubectl patch tenant my-tenant --type merge -p ' | ||
spec: | ||
clusterTemplate: | ||
enableCompilePipeline: true | ||
gitRepoTemplate: | ||
accessToken: | ||
secretRef: '{{ .Name }}-api-token' | ||
' | ||
.... | ||
|
||
|
||
== Enabling the Compile Pipeline for all tenants | ||
|
||
We can leverage tenant templating to configure and enable the Compile Pipeline for all clusters on a tenant. | ||
For more information on templating, refer to xref:how-tos/create-tenant.adoc#_tenant_templating[Tenant Templating]. | ||
|
||
[source,bash] | ||
.... | ||
kubectl patch tenanttemplate my-template --type merge -p ' | ||
spec: | ||
clusterTemplate: | ||
enableCompilePipeline: true | ||
gitRepoTemplate: | ||
accessToken: | ||
secretRef: '{{ .Name }}-api-token' | ||
compilePipeline: | ||
enabled: true | ||
pipelineFiles: | ||
.gitlab-ci.yml: | | ||
include: | ||
- https://raw.githubusercontent.com/projectsyn/commodore-compile-pipelines/main/gitlab/commodore-pipeline.yml | ||
' | ||
.... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters