Home / Keptn v1 Docs / Release 0.10.0 / Operate Keptn / Advanced Install Options
When executing keptn install
, Keptn is installed via a Helm chart, which can also be done using the Helm CLI directly.
Therefore, the helm CLI is required to execute of the following command:
helm install keptn https://github.com/keptn/keptn/releases/download/0.10.0/keptn-0.10.0.tgz -n keptn --create-namespace --wait --set=continuous-delivery.enabled=true,control-plane.apiGatewayNginx.type=LoadBalancer
helm install jmeter-service https://github.com/keptn/keptn/releases/download/0.10.0/jmeter-service-0.10.0.tgz -n keptn --create-namespace --wait
helm install helm-service https://github.com/keptn/keptn/releases/download/0.10.0/helm-service-0.10.0.tgz -n keptn --create-namespace --wait
Note: To continue with Keptn after the installation with Helm, we recommend authenticating the Ketpn CLI as explained here.
As shown above, the helm install
or helm upgrade
commands offer a flag called --set
, which can be used to specify several configuration options using the format key1=value1,key2=value2,...
.
The following flags are available:
Flag | Description | Possible Values | Default Value |
---|---|---|---|
continuous-delivery.enabled |
Specifies whether the continuous-delivery execution-plane services (e.g., helm-service, jmeter-service) should be installed on the cluster or not | true, false | false |
continuous-delivery.<SERVICE-NAME>.image.repository |
Allows to specify an alternative repository for the docker image used | Container registry URL | docker.io/keptn/ |
control-plane.apiGatewayNginx.type |
Specifies the Kubernetes service-type for api-gateway-nginx, which can be used to expose the Keptn API | NodePort, ClusterIP, LoadBalancer | ClusterIP |
control-plane.prefixPath |
Allows to set a prefixPath for the api-gateway. This value has to start with a “/” but must not contain a trailing “/” | URI, e.g., /mykeptn | empty |
control-plane.bridge.cliDownloadLink |
Specifies a download link for the Keptn CLI which is displayed in Keptn Bridge | any string/URL | null |
control-plane.bridge.lookAndFeelUrl |
Specifies a custom look and feel for Keptn Bridge | any URL containing a zip archive | null |
control-plane.bridge.versionCheck.enabled |
Specifies whether the automatic version-check in Keptn Bridge should be enabled or not | true, false | true |
control-plane.bridge.showApiToken.enabled |
Specifies whether the Keptn API Token and the keptn auth command should be shown in Keptn Bridge or not |
true, false | true |
control-plane.bridge.secret.enabled |
Specifies whether the secret used for the basic auth is enabled or not. Please be aware that if this value is set to false , there is no basic authentication for the bridge. |
true, false | true |
control-plane.bridge.installationType |
Specifies which of the use cases are supported in the installation | “QUALITY_GATES,CONTINUOUS_OPERATIONS”, “QUALITY_GATES,CONTINUOUS_OPERATIONS,CONTINUOUS_DELIVERY” | “QUALITY_GATES,CONTINUOUS_OPERATIONS” |
control-plane.configurationService.storage |
Allows to specify the storage-size of the persistent volume used in configuration-service | K8s volume storage size (e.g., 500Mi) | 100Mi |
control-plane.configurationService.storageClass |
Allows to specify the storage-class of the persistent volume used in configuration-service | K8s storage class | null |
control-plane.<SERVICE-NAME>.image.repository |
Allows to specify an alternative repository for the docker image | Container registry URL | docker.io/keptn/ |
control-plane.mongodb.enabled |
Allows to not install the default MongoDB instance in Keptn. | true,false | true |
control-plane.mongodb.host |
If an external MongoDB instance is used, specify the host name of this instance. | URL | empty |
control-plane.mongodb.user |
If an external MongoDB instance is used, specify the user to access the MongoDB.Keptn | any string | empty |
control-plane.mongodb.password |
If an external MongoDB instance is used, specify the password to access the MongoDB. | any string | empty |
control-plane.mongodb.adminPassword |
If an external MongoDB instance is used, specify the admin password to access the MongoDB | any string | empty |
control-plane.ingress.enabled |
Allows you to Install your own ingress object for Keptn | true,false | false |
control-plane.ingress.annotations |
If ingress is set to true you can optionally specify any annotations you require | any string | empty |
control-plane.ingress.host |
If ingress is set to true you can optionally specify a host | any string | empty |
control-plane.ingress.path |
If ingress is set to true you can specify a path | any string | / |
control-plane.ingress.pathType |
If ingress is set to true you can specify a pathType | any string | Prefix |
control-plane.ingress.tls |
If ingress is set to true you can optionally specify tls config | any string | empty |
helm upgrade keptn keptn --install -n keptn --create-namespace --wait --version=0.10.0 --repo=https://charts.keptn.sh --set=control-plane.apiGatewayNginx.type=LoadBalancer
For example, the Control Plane with the Execution Plane (for Continuous Delivery) can be installed by the following command:
helm upgrade keptn keptn --install -n keptn --create-namespace --wait --version=0.10.0 --repo=https://charts.keptn.sh --set=continuous-delivery.enabled=true
For example, the Control Plane with the Execution Plane (for Continuous Delivery) and a LoadBalancer
for exposing Keptn can be installed by the following command:
helm upgrade keptn keptn --install -n keptn --create-namespace --wait --version=0.10.0 --repo=https://charts.keptn.sh --set=continuous-delivery.enabled=true,control-plane.apiGatewayNginx.type=LoadBalancer
The following section contains instructions for installing Keptn in an air-gapped / offline installation scenario.
The following artifacts need to be available locally:
Download Keptn Helm Charts
Download the Helm charts from the Keptn 0.10.0 release:
Move the helm charts to a directory on your local machine, e.g., offline-keptn
.
For convenience, the following script creates this directory and downloads the required helm charts into it:
mkdir offline-keptn
cd offline-keptn
curl -L https://github.com/keptn/keptn/releases/download/0.10.0/keptn-0.10.0.tgz -o keptn-0.10.0.tgz
curl -L https://github.com/keptn/keptn/releases/download/0.10.0/helm-service-0.10.0.tgz -o helm-service-0.10.0.tgz
curl -L https://github.com/keptn/keptn/releases/download/0.10.0/jmeter-service-0.10.0.tgz -o jmeter-service-0.10.0.tgz
cd ..
Download Containers/Images
Within the Helm Charts several Docker Images are referenced (Keptn specific and some third party dependencies). We recommend to pulling, re-tagging and pushing those images to a local registry that the Kubernetes cluster can reach.
We are providing a helper script for this in our Git repository: https://github.com/keptn/keptn/blob/master/installer/airgapped/pull_and_retag_images.sh
For convenience, you can use the following commands to download and execute the script:
cd offline-keptn
curl -L https://raw.githubusercontent.com/keptn/keptn/0.10.0/installer/airgapped/pull_and_retag_images.sh -o pull_and_retag_images.sh
chmod +x pull_and_retag_images.sh
KEPTN_TAG=0.10.0 ./pull_and_retag_images.sh "your-registry.localhost:5000/"
cd ..
Please mind the trailing slash for the registry url (e.g., your-registry.localhost:5000/
).
Installation
Keptn’s Helm chart allows you to specify the name of all images, which can be especially handy in air-gapped systems where you cannot access DockerHub for pulling the images.
We are providing a helper script for this in our Git repository: https://github.com/keptn/keptn/blob/master/installer/airgapped/install_keptn.sh
For convenience, you can use the following commands to download and execute the script:
cd offline-keptn
curl -L https://raw.githubusercontent.com/keptn/keptn/0.10.0/installer/airgapped/install_keptn.sh -o install_keptn.sh
chmod +x install_keptn.sh
./install_keptn.sh "your-registry.localhost:5000/" keptn-0.10.0.tgz helm-service-0.10.0.tgz jmeter-service-0.10.0.tgz
cd ..
The Helm chart allows customizing the root-context for the Keptn API and Bridge.
By default, the Keptn API is located under http://HOSTNAME/api
and the Keptn Bridge is located under http://HOSTNAME/bridge
.
By specifying a value for control-plane.prefixPath
, the used prefix for the root-context can be configured.
For example, if a user sets control-plane.prefixPath=/mykeptn
in the Helm install/upgrade command,
the Keptn API is located under http://HOSTNAME/mykeptn/api
and the Keptn Bridge is located under http://HOSTNAME/mykeptn/bridge
:
helm upgrade keptn keptn --install -n keptn --create-namespace --wait --version=0.10.0 --repo=https://charts.keptn.sh --set=control-plane.apiGatewayNginx.type=LoadBalancer,continuous-delivery.enabled=true,control-plane.prefixPath=/mykeptn
If you want to use an externally hosted MongoDB instead of the MongoDB installed by Keptn, please use the helm upgrade
command as shown below. Basically, provide the MongoDB host, user, and password as required for the connection string.
helm upgrade keptn keptn --install -n keptn --create-namespace
--set=control-plane.mongodb.enabled=false,
control-plane.mongodb.host=<YOUR_MONGODB_HOST>,
control-plane.mongodb.user=<YOUR_MONGODB_USER>,
control-plane.mongodb.password=<YOUR_MONGODB_PASSWORD>,
control-plane.mongodb.adminPassword=<YOUR_MONGODB_ADMIN_PASSWORD>
If you are already using an Ingress-Controller and want to create an ingress object for Keptn, you can leverage the ingress section of the helm chart. By default enabled is set to false.
The Helm chart allows customizing the ingress object to your needs. When enabled is set the true, the chart allows you to specify optional parameters of host, path, pathType, tls, and annotations. This will cater for alot of different Ingress-Controllers and configurations.
helm upgrade keptn keptn --install -n keptn --create-namespace
--set=control-plane.ingress.enabled=true,
control-plane.ingress.annotations=<YOUR_ANNOTATIONS>,
control-plane.ingress.host=<YOUR_HOST>,
control-plane.ingress.path=<YOUR_PATH>,
control-plane.ingress.pathType=<YOUR_PATH_TYPE>,
control-plane.ingress.tls=<YOUR_TLS>