Quick Start

Learn how to get Keptn running in five minutes. We'll run Keptn on a local k3d cluster.

This quickstart is designed for Linux-based systems. Consequently, use Linux, MacOS, or Windows subsystem for Linux (WSL).

Prerequisites

  • Docker with minimum 4vCPUS, 12GB RAM, 20GB disk space left (see FAQ)
  • kubectl version >= 1.19
  • helm version >= 3.3.0
  • git

Install Keptn

  1. Create local k3d cluster. Please make sure you are using the version stated below (v.4.4.4). If you already have k3d installed, you can check by running k3d --version.

    curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | TAG=v4.4.4 bash
    

    Now, let’s start a cluster for Keptn!

    k3d cluster create mykeptn -p "8082:80@loadbalancer" --k3s-server-arg "--kube-proxy-arg=conntrack-max-per-core=0"  --k3s-agent-arg "--kube-proxy-arg=conntrack-max-per-core=0" --agents 1
    
  2. Download and install the Keptn CLI

    curl -sL https://get.keptn.sh | KEPTN_VERSION=0.10.0 bash
    
  3. Install Keptn control-plane and execution-plane for continuous delivery use case or use the helm install version mentioned below.

    keptn install --use-case=continuous-delivery
    

    Keptn comes with different installation options, please have a look at the installation documentation for more details on cluster requirements, resource consumption, supported Kubernetes versions, and more. Please note that although during the installation procedure it might be mentioned that Istio is required, it is not required for this quickstart guide.

    Installation logs

    The installation logs will print the following output:

    Installing Keptn …
    Helm Chart used for Keptn installation: https://storage.googleapis.com/keptn-installer/keptn-0.10.0.tgz
    Start upgrading Helm Chart keptn in namespace keptn
    Finished upgrading Helm Chart keptn in namespace keptn
    Keptn control plane has been successfully set up on your cluster.
    Installing execution plane services for continuous-delivery use case.
    Start upgrading Helm Chart helm-service in namespace keptn
    Finished upgrading Helm Chart helm-service in namespace keptn
    Start upgrading Helm Chart jmeter-service in namespace keptn
    Finished upgrading Helm Chart jmeter-service in namespace keptn
     —————————————————
     * To quickly access Keptn, you can use a port-forward and then authenticate your Keptn CLI:
     - kubectl -n keptn port-forward service/api-gateway-nginx 8080:80
     - keptn auth –endpoint=http://localhost:8080/api –api-token=$(kubectl get secret keptn-api-token -n keptn -ojsonpath={.data.keptn-api-token} | base64 –decode)
     * Alternatively, follow the instructions provided at: https://keptn.sh/docs/0.10.x/operate/install/#authenticate-keptn-cli
     * To expose Keptn on a public endpoint, please continue with the installation guidelines provided at:
     - https://keptn.sh/docs/0.10.x/operate/install#install-keptn
    
    There is no need to follow the instructions from the installation log - the quickstart guide will cover this!

  4. Configure Ingress and authenticate Keptn CLI

    curl -SL https://raw.githubusercontent.com/keptn/examples/master/quickstart/expose-keptn.sh | bash
    
  5. Perform a multi-stage delivery with SLO-based quality gates in place Please note this will create a local repository examples/ in your current directory. Make sure to run it from a directory you are fine having the examples stored in.

    curl -SL https://raw.githubusercontent.com/keptn/examples/master/quickstart/multistage-delivery.sh | bash
    

    What you’ll see

    In Keptn you’ll see one successful quality gate evaluation and one failed evaluation, that means a slow build will never reach production!

  6. Run automated operations with auto-remediation in action

    curl -SL https://raw.githubusercontent.com/keptn/examples/master/quickstart/automated-operations.sh | bash
    

    What you’ll see

    In Keptn you’ll see an executed remediation sequence in response to a problem event that has been sent to Keptn!

  7. Explore Keptn! Please have a look at our tutorials and documentation to learn how you can use Keptn.

  8. If you are finished exploring Keptn, you can always stop and start the cluster and delete it eventually.

    k3d cluster stop mykeptn
    k3d cluster start mykeptn
    

    Or delete it if you don’t need it anymore

    k3d cluster delete mykeptn
    

Explore tutorials to learn more about the Keptn use cases

With Keptn installed, have a look at the different tutorials to learn hands-on about the Keptn use cases:

A full tour through Keptn: Continuous Delivery & Automated Operations

Learn how to setup Keptn for a sample cloud native app where Keptn deploys, tests, validates, promotes and auto-remediates
Continuous Delivery with Deployment Validation

Keptn deploys, tests, validates and promotes your artifacts across a multi-stage delivery process
Automated Operations

Keptn automates problem remediation in production through self-healing and runbook automation
Performance as a Self-Service

Keptn deploys, tests and provides automated performance feedback of your artifacts
Performance Testing as a Self-Service

Let Keptn execute performance tests against your deployed software and provide automatic SLI/SLO based feedback
Deployment Validation (aka Quality Gates)

Integrate Keptn into your existing CI/CD by automatically validating your monitored environment based on SLIs/SLOs

Learn how Keptn works and how it can be adapted to your use cases

Review the documentation for a full reference on all Keptn capabilities and components and how they can be combined/extended to your needs:

FAQ

Kubernetes version not supported

In case keptn install prevents you from installing Keptn due to a (currently) unsupported Kubernetes version, you can bypass this check at your own risk by using the Helm installation option of Keptn.

helm install keptn https://github.com/keptn/keptn/releases/download/0.10.0/keptn-0.10.0.tgz -n keptn --create-namespace --set=continuous-delivery.enabled=true --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
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

Now continue with step 4 from the quickstart guide.

Disk pressure on pods in Kubernetes

If the installation of Keptn is timing out, you can check if the root cause are low resources, such as disk space, by executing kubectl describe pod PODID -n keptn.executing

Please ensure that your local k3d environment has enough resources. You can verify this in your Docker resource settings. This quickstart guide has been tested with the following configuration:

Resources docker resources

Docker resources

Please make sure your Docker environment has been granted enough resources to run k3d and Keptn on top of it. This quickstart guide has been tested with the following configuration:

Resources docker resources

How to get more help?

Join our slack channel for any questions that may arise.