Skip to content

Toolkit for cloud-native application lifecycle management

License

Notifications You must be signed in to change notification settings

rakshitgondwal/lifecycle-toolkit

 
 

Repository files navigation

Keptn

build Codecov goversion version GitHub Discussions Artifacthub Badge OpenSSF Best Practices OpenSSF Scorecard FOSSA Status CLOMonitor

This is the primary repository for the Keptn software and documentation. Keptn provides a “cloud-native” approach for managing the application release lifecycle metrics, observability, health checks, with pre- and post-deployment evaluations and tasks. It is an incubating project, under the umbrella of the Keptn Application Lifecycle working group.

Note Keptn was developed under the code name of "Keptn Lifecycle Toolkit" or "KLT" for short. The source code contains many vestiges of these names.

Goals

Keptn provides Cloud Native teams with the following capabilities:

  • Pre-requisite evaluation before deploying workloads and applications
  • Checking the Application Health in a declarative (cloud-native) way
  • Standardized way to run pre- and post-deployment tasks
  • Provide out-of-the-box Observability
  • Deployment lifecycle management

Operator Maturity Model with third level circled in

Keptn can be seen as a general purpose and declarative Level 3 operator for your Application. For this reason, Keptn is agnostic to deployment tools that are used and works with any GitOps solution.

For more information about the core concepts of Keptn, see our core concepts documentation section.

Status

Status of the different features:

The status follows the Kubernetes API versioning schema.

Community

Find details on regular hosted community events in the keptn/community repo and our Slack channel(s) in the CNCF Slack workspace.

Roadmap

You can find our roadmap here.

Governance

  • Community Membership: Guidelines for community engagement, contribution expectations, and the process for becoming a community member at different levels.

  • Members and Charter: Describes the formation and responsibilities of the Keptn Governance Committee, including its scope, members, and core responsibilities.

Installation

Keptn can be installed on any Kubernetes cluster running Kubernetes >=1.24.

For users running vCluster, please note that you may need to modify your configuration before installing Keptn; see Running Keptn with vCluster for more information.

Use the following command sequence to install the latest release of Keptn:

helm repo add keptn https://charts.lifecycle.keptn.sh
helm repo update
helm upgrade --install keptn keptn/keptn -n keptn-system --create-namespace --wait

Installation with only certain namespaces allowed

Keptn lifecycle orchestration is by default enabled for all namespaces except the following ones:

  • kube-system
  • kube-public
  • kube-node-lease
  • cert-manager
  • keptn-system
  • observability
  • monitoring
  • <Keptn installation namespace>

To restrict Keptn lifecycle orchestration to specific namespaces, you must specify those namespaces during installation via helm values. First you need to create a values.yaml file

lifecycleOperator:
  allowedNamespaces:
  - allowed-ns-1
  - allowed-ns-2

and add the values file to the helm installation command:

helm repo add keptn https://charts.lifecycle.keptn.sh
helm repo update
helm upgrade --install keptn keptn/keptn -n keptn-system --values values.yaml --create-namespace --wait

Note Please be aware that you still need to correctly annotate the namespaces where Keptn lifecycle orchestration is allowed. To annotate them, use:

kubectl annotate ns <your-allowed-namespace> keptn.sh/lifecycle-toolkit='enabled'

Note Please be aware that, if this option is set, adding any additional namespace requires the helm installation to be updated by adding the name of the new namespace to the list.

More information

For more info about Keptn, please see our documentation.

You can also find a number of video presentations and demos about Keptn on the YouTube Keptn channel. Videos that refer to the "Keptn Lifecycle Controller" are relevant for the Keptn project.

Contributing

For more information about contributing to Keptn, please refer to the Contribution guide section of the documentation.

To set up your local Keptn development environment, please follow these steps for new contributors.

License

Please find more information in the LICENSE file.

Thanks to all the people who have contributed 💜

Made with contrib.rocks.

About

Toolkit for cloud-native application lifecycle management

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 97.1%
  • Makefile 2.0%
  • Dockerfile 0.4%
  • Shell 0.2%
  • TypeScript 0.2%
  • Smarty 0.1%