Home / Docs / Develop / Operate Keptn / Keptn Quality Gates Installation using manifests (experimental)
The following installation instructions provide a way to manually install Keptn Quality Gates without any installer job. Furthermore, no NGINX will be installed using these instructions.
Following these manual installation instructions is not the recommended way to install Keptn. But in case you cannot use the prepared installer because you e.g. need to exactly control what is installed in your Kubernetes cluster, the instructions can be used.
Please note: These instructions are experimental.
Please note: No upgrade script or instructions are provided for a manual installation of Keptn.
Select the Keptn version 0.6.2:
export KEPTNVERSION=0.6.2
Apply the Keptn namespace:
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/keptn/namespace.yaml
Apply NATS resources:
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/nats/nats-operator-prereqs.yaml
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/nats/nats-operator-deploy.yaml
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/nats/nats-cluster.yaml
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/keptn/rbac.yaml
Install the Keptn Datastore:
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/logging/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/logging/mongodb/pvc.yaml
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/logging/mongodb/deployment.yaml
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/logging/mongodb/svc.yaml
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/logging/mongodb-datastore/k8s/mongodb-datastore.yaml
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/logging/mongodb-datastore/mongodb-datastore-distributor.yaml
Create a Keptn API-token, as explained here.
Install the Keptn Core:
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/keptn/core.yaml
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/keptn/keptn-domain-configmap.yaml
Install Keptn API Gateway NGINX:
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/keptn/api-gateway-nginx.yaml
Install Keptn Quality Gates:
kubectl apply -f https://raw.githubusercontent.com/keptn/keptn/$KEPTNVERSION/installer/manifests/keptn/quality-gates.yaml
By following the DockerHub link, you will find the built image on DockerHub. The referenced Dockerfile shows how the image was built.
Apply NATS resources:
connecteverything/nats-operator:0.6.0
- DockerHubInstall the Keptn Datastore:
centos/mongodb-36-centos7:1
- DockerHubkeptn/mongodb-datastore:0.6.2
- [DockerHub, Dockerfile]keptn/distributor:0.6.2
- [DockerHub, Dockerfile]Install the Keptn Core:
keptn/api:0.6.2
- [DockerHub, Dockerfile]keptn/bridge2:0.6.2
- [DockerHub, Dockerfile]keptn/eventbroker-go:0.6.2
- [DockerHub, Dockerfile]keptn/helm-service:0.6.2
- [DockerHub, Dockerfile]keptn/distributor:0.6.2
- [DockerHub, Dockerfile]keptn/shipyard-service:0.6.2
- [DockerHub, Dockerfile]keptn/configuration-service:0.6.2
- [DockerHub, Dockerfile]Install Keptn API Gateway NGINX:
nginx:1.17.9
- DockerHubInstall Keptn Quality Gates:
keptn/lighthouse-service:0.6.2
- [DockerHub, Dockerfile]keptn/distributor:0.6.2
- [DockerHub, Dockerfile]In order to access the Keptn API, you can either use a LoadBalancer
or a Port-forward
:
Expose the Keptn API by patching the service Query the IP: or the hostname (for EKS)Using a
LoadBalancer
api-gateway-nginx
: kubectl patch svc api-gateway-nginx -n keptn -p '{"spec": {"type": "LoadBalancer"}}'
export KEPTN_ENDPOINT=http://$(kubectl get svc api-gateway-nginx -n keptn -ojsonpath='{.status.loadBalancer.ingress[0].ip}')
export KEPTN_ENDPOINT=http://$(kubectl get svc api-gateway-nginx -n keptn -ojsonpath='{.status.loadBalancer.ingress[0].hostname}')
Make a port-forward with:Using a
Port-forward
kubectl port-forward svc/api-gateway-nginx -n keptn 8080:80
export KEPTN_ENDPOINT=http://localhost:8080
Follow the Keptn CLI install instructions.
Important: The Keptn CLI in version 0.6.2 or above is required.
Authenticate your CLI
./keptn auth --endpoint=$KEPTN_ENDPOINT --api-token=$KEPTN_API_TOKEN --scheme=http
Please note: Always add the flag --scheme=http
to all CLI commands. Otherwise, the CLI uses https
which is not configured in this installation.
Please note: The WebSocket communications cannot be used when the API is exposed via a Port-forward
. Hence, please add --suppress-websocket
to all CLI commands.
Now, you are able to continue with the use case as described here.