Giter Site home page Giter Site logo

get.keptn.sh's Introduction

keptn

Keptn

Keptn V1 has reached end of life on December 22nd, 2023 and has been replaced.

GitHub release (latest by date) GitHub Downloads CI codecov Go Report Card CII Best Practices

Keptn is an event-based control plane for continuous delivery and automated operations for cloud-native applications. Please find the documentation on our website, and read the motivation about Keptn on our Why Keptn? page.

In addition, you can find the roadmap of the Keptn project here. It provides an overview of user stories that are currently in the focus of development for the next release.

Keptn Today! Keptn Lifecycle Toolkit Tomorrow!

Keptn: Moving towards our 1.0 milestone!

3 years of hard work will soon reach a long awaited milestone: Keptn 1.0 with LTS (Long Time Support) brings you automated release validation based on SLOs that you can easily integrate into your existing DevOps Tools (deployment, test and observability).

If you want to explore Keptn then keep scrolling down to get all information!

Keptn Lifecycle Toolkit: The kuber-native road ahead!

At KubeCon 2022 in Detroit we announced the direction we are heading: Keptn Lifecycle Toolkit! Keptn Lifecycle Toolkit brings application-aware deployment lifecycle management to your k8s cluster:

  • kubernetes-native: no external dependencies, everything in your CRDs and
  • pipeline-less: works with any delivery tool (ArgoCD, Flux, Jenkins, GitHub, GitLab, Harness ...) without having to integrate it with Keptn

To decide whether you want to stick with Keptn 1.0 or focus on Keptn Lifecycle Toolkit do this:

  1. Watch our Keptn Lifecycle Toolkit in a Nutshell video including live demo
  2. Try Keptn Lifecycle Toolkit yourself: GitHub Repo

Quickstart

Keptn runs on Kubernetes. To get started, you can follow our Quickstart guide.

Developing Keptn

The easiest way to develop is to spin up a Kubernetes cluster locally by using K3d (requires docker) via the following commands:

curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | TAG=v5.3.0 bash
k3d cluster create mykeptn -p "8082:80@loadbalancer" --k3s-arg "--no-deploy=traefik@server:*"

Afterwards, install Keptn CLI:

curl -sL https://get.keptn.sh | bash

And install Keptn using Helm:

helm repo add keptn https://charts.keptn.sh && helm repo update
helm install keptn keptn/keptn \
-n keptn --create-namespace \
--wait \
--set=apiGatewayNginx.type=LoadBalancer

In case you want to install helm-service and jmeter-service, execute:

helm install jmeter-service keptn/jmeter-service -n keptn
helm install helm-service keptn/helm-service -n keptn

Please follow the instructions printed by the CLI to connect to your Keptn installation.

Installing Keptn from Master branch

Note: This will install a potentially unstable version of Keptn.

If you want to install the latest master version of Keptn onto your cluster you can do that by using the development helm charts repository located at https://charts-dev.keptn.sh . By default, the global registry used is ´ghcr.io/keptn´, so you will need to override it.

helm repo add keptn-dev https://charts-dev.keptn.sh    # Add the keptn-dev helm repo
helm repo update                                       # Update all repo contents
helm search repo keptn-dev --devel --versions          # List all versions present in the keptn-dev repo

# Select a chart version from the previous command that you want to install

helm install -n keptn-dev keptn keptn-dev/keptn --set=global.keptn.registry=ghcr.io/keptn --create-namespace --version "<the-version-you-selected-previously>"

You can find more information in our docs.

Community

Please find details on regular hosted community events as well as our Slack workspace in the keptn/community repo.

Keptn Versions compatibilities

We manage the Keptn core components in versions. The versions of the Keptn core components and the services are compatible with each other. However, contributed services as well as services that are not considered core components might not follow the same versioning schema.

We are tracking compatibility of those services on our website.

Container Images

Keptn provides container images of all core components. The respective images in their versions are stored on the following container registries:

From version 0.19.0, all released container images are signed using cosign with a keyless signing mechanism. That means that Keptn uses short-lived code signing certificates and keys together with OIDC and a transparency log to sign all its container images. More info on keyless signed container images can be found here.

Helm Chart

Keptn provides Helm charts for easy installation of all control plane components. From version 0.19.0, the charts are signed and can be verified with the public key that can be found in assets/pubring.gpg and attached to every release. More info on signed Helm charts can be found here.

Contributions

You are welcome to contribute using Pull Requests to the respective repositories. Before contributing, please read our Contributing Guidelines and our Code of Conduct. Please also check out our list of good first issues.

License

Keptn is an Open Source Project. Please see LICENSE for more information.

Adopters

For a list of users, please refer to ADOPTERS.md.

Further information

get.keptn.sh's People

Contributors

aabedraba avatar adriangonciarz avatar agrimmer avatar bacherfl avatar bcdady avatar christian-kreuzberger-dtx avatar ermin-muratovic avatar johannes-b avatar kirdock avatar laneli avatar mowies avatar realanna avatar robertjahn avatar thisthat avatar warber avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

get.keptn.sh's Issues

Failed to install using curl get.keptn.sh due to GitHub API Ratelimit

I just tried to install using the suggested method in quickstart (curl get.keptn.sh | bash). It failed due to an API Rate Limit hit on GitHub:

$ curl -sL https://get.keptn.sh | bash
The newest version of Keptn is  and will be used automatically
Determined target architecture x86_64
Downloading keptn  for OS linux with architecture amd64 from GitHub: https://github.com/keptn/keptn/releases/download//_keptn-linux.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404 
An error occured while trying to download keptn from GitHub. Please manually download a release from https://github.com/keptn/keptn/releases.

Within our get.keptn.sh script, we are trying to query the latest as well as all releases of Keptn, e.g.:

curl --silent "https://api.github.com/repos/keptn/keptn/releases"

When executing this command, we get a response with the rate limit showing up:

{"message":"API rate limit exceeded for AB.CD.EF.GH. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}

edit: This also affects our nightly tests using MacOS: https://github.com/keptn/get.keptn.sh/actions/runs/1776225287

Error while installing with versions > `0.9`

When trying to install keptn CLI version 0.10.0-next.1, I get the following error:

curl -sL https://get.keptn.sh | KEPTN_VERSION=0.10.0-next.1 bash
We'll install specified Keptn version 0.10.0-next.1
Determined target architecture x86_64
Downloading keptn 0.10.0-next.1 for OS macOS with architecture amd64 from GitHub: https://github.com/keptn/keptn/releases/download/0.10.0-next.1/0.10.0-next.1_keptn-macOS.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404
An error occured while trying to download keptn from GitHub. Please manually download a release from https://github.com/keptn/keptn/releases.

I did some digging and found the faulty code to be here.
This version check only works with versions <= 0.9

get.keptn.sh not working for m1 mac

jjena@MacBook-Air ~ % curl -sL https://get.keptn.sh | bash
The newest version of Keptn is 1.2.0 and will be used automatically
Determined target architecture arm64
Downloading keptn 1.2.0 for OS darwin with architecture arm64 from GitHub: https://github.com/keptn/keptn/releases/download/1.2.0/keptn-1.2.0-darwin-arm64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 9 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (22) The requested URL returned error: 404
An error occured while trying to download keptn from GitHub. Please manually download a release from https://github.com/keptn/keptn/releases.

Fix typos in CLI download script

There are some typos or unclear instructions in the CLI download script that need to be fixed.

    printf "\n"
    printf "Installation is successfully completed!"
    printf "\n"
    printf "You can check Keptn installation by running:"
    printf "\n"
    printf "\n"
    printf "${TARGET_DIR}keptn --help"
    printf "\n"
    printf "\n"
x    printf "Next step you might be interested in is the installation on your cluster. "
x    printf "You can follow the docmentation under https://keptn.sh/docs/ "
x    printf "or simply start off by installing Keptn Control Plane via:"
    printf "\n"
    printf "\n"
    printf "${TARGET_DIR}keptn install"
    printf "\n"
    printf "\n"
    printf "Also, you can find many helpful tutorials in https://tutorials.keptn.sh/"
    printf "\n"
x    printf "Good luck!"
    printf "\n"

I suggest to clarify like:

Keptn CLI installation completed successfully
...
To install Keptn in your cluser, please follow the documentation https://keptn.sh/docs/ or execute
keptn install
...
Learn more on how to use Keptn in our tutorials https://tutorials.keptn.sh/

Welcome aboard!

awk regex fails: Add support for alpine

The regexes don't work when trying to run get.keptn.sh from within alpine because awk on alpine doesn't use that flavour of regex.

curl --silent "https://api.github.com/repos/keptn/keptn/releases/latest" | grep tag_name | awk 'match($0, /[0-9]+.[0-9]+.[0-9]+[.\-A-Za-z0-9]*/) { print substr( $0, RSTART, RLENGTH )}'

Support Windows (e.g., git-bash, WSL) in get.keptn.sh script

Right now the get.keptn.sh script only supports Linux and MacOS:

get.keptn.sh/src/get.sh

Lines 7 to 16 in ae84dc6

if [[ "$OSTYPE" == "linux-gnu" ]]; then
DISTR="linux"
elif [[ "$UNAME" == "Linux" ]]; then
DISTR="linux"
elif [[ "$OSTYPE" == "darwin"* ]]; then
DISTR="macOS"
else
echo "Unknown OS type $OSTYPE"
exit 1
fi

We should also add the possibility to support windows (e.g., git bash or similar).

Improve get.sh script with similar features like istio quickstart has

Source: https://raw.githubusercontent.com/istio/istio/master/release/downloadIstioCandidate.sh

Examples:

Automatically determine version based on latest gh release

# Determine the latest Istio version by version number ignoring alpha, beta, and rc versions.
if [ "x${ISTIO_VERSION}" = "x" ] ; then
  ISTIO_VERSION="$(curl -sL https://github.com/istio/istio/releases | \
                  grep -o 'releases/[0-9]*.[0-9]*.[0-9]*/' | sort --version-sort | \
                  tail -1 | awk -F'/' '{ print $2}')"
  ISTIO_VERSION="${ISTIO_VERSION##*/}"
fi

if [ "x${ISTIO_VERSION}" = "x" ] ; then
  printf "Unable to get latest Istio version. Set ISTIO_VERSION env var and re-run. For example: export ISTIO_VERSION=1.0.4"
  exit;
fi

Print some helpful information on how to continue

printf ""
printf "\nIstio %s Download Complete!\n" "$ISTIO_VERSION"
printf "\n"
printf "Istio has been successfully downloaded into the %s folder on your system.\n" "$NAME"
printf "\n"
BINDIR="$(cd "$NAME/bin" && pwd)"
printf "Next Steps:\n"
printf "See https://istio.io/latest/docs/setup/install/ to add Istio to your Kubernetes cluster.\n"
printf "\n"
printf "To configure the istioctl client tool for your workstation,\n"
printf "add the %s directory to your environment path variable with:\n" "$BINDIR"
printf "\t export PATH=\"\$PATH:%s\"\n" "$BINDIR"
printf "\n"
printf "Begin the Istio pre-installation check by running:\n"
printf "\t istioctl x precheck \n"
printf "\n"
printf "Need more information? Visit https://istio.io/latest/docs/setup/install/ \n"

get.keptn.sh not working for 0.8 on MacOs

When executing curl -sL https://get.keptn.sh | KEPTN_VERSION=0.8.0-rc1 bash on MacOS it doesn't work as the script tries to pull the CLI with the name "macOS" in it, which doesn't exist. The actual file contains the name "darwin" instead of "macOS".

Error log:

 ~ % curl -sL https://get.keptn.sh | KEPTN_VERSION=0.8.0-rc1 bash

We'll install specified Keptn version 0.8.0-rc1
Determined target architecture x86_64
Downloading keptn 0.8.0-rc1 for OS macOS with architecture amd64 from GitHub: https://github.com/keptn/keptn/releases/download/0.8.0-rc1/keptn-0.8.0-rc1-macOS-amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404
An error occured while trying to download keptn from GitHub. Please manually download a release from https://github.com/keptn/keptn/releases.

Potential fix:

  • Either update the get.keptn.sh file or the script that creates the CLI tarball for macOS.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.