This release focuses on improvements of the Keptn Quality Gates capability that allows the evaluation of Service Level Objectives (SLOs), which are determined by Service Level Indicators (SLI). For these improvements, the Lighthouse service has been introduced, which is a service that is responsible for conducting an evaluation based on data from SLI-providers. The Lighthouse service supersedes Pitometer. Furthermore, the following highlights should be noticed:
-
Due to user demand, Keptn Quality Gates is now available as a standalone feature. That allows enriching existing CD pipelines with quality gates that ensure that services are only promoted if they meet defined SLOs. To integrate Keptn in an existing pipeline, REST endpoints are provided to trigger an evaluation and to pull the evaluation results.d
-
The Keptn Quality Gates capability doesn't require deployment and testing features. We've provided an installation option in the Keptn installer (
keptn install ... --use-case=quality-gates
) that excludes the deployment and testing components, which results in a smaller resource footprint. -
The Keptn's bridge has been enhanced for better visibility into evaluation results. Thus, it is possible to see why an SLO has not been met.
-
Due to the flexible architecture of Keptn, it is possible to exchange an SLI-provider and gather data for the quality gate from another monitoring or testing provider.
Implemented Keptn spec version: 0.1.2
Quality Gates
- REST API support for start-evaluation and evaluation-done #949
- lighthouse-service: Default behaviour if no slo.yml found -> evaluation pass #1081
- bridge: Improve bridge for lighthouse and SLI events #1058
- Lighthouse-service forwards custom data to SLI providers #1147
- Lighthouse-service forwards environment variable keptn_deployment to SLI providers #1161
- Service Level Indicators (SLI) are stored in Keptn's git repository #1192
- Implemented SLI Provider for Dynatrace and Prometheus
- Forward testStrategy and deployment strategy in evaluation-events#1098
- lighthouse-service: Prevent previous failed SLI results to be used for comparison-based evaluation #1263
- lighthouse-service: can deal with an SLO file that has no SLI criteria defined #1213
Platform Support / Installer (Uniform)
- Keptn support for PKS (Pivotal/VMWare) #5
- Keptn support for Rancher #462
- Keptn installation using a NodePort for Istio ingressgateway #462
- Enable Istio injection for namespaces #715
- Keptn API can be reached without Istio #1073
- Nginx support for EKS #1124
- Allow to configure a custom domain when using Nginx #1167
- Slim down image size of Keptn installer image #1034
- Fluent-bit removed from installation#1172
- Keptn Install Quality Gates: Only install relevant services #1130
- Provide Helm helper functions for Keptn's project, stage, and service #1109
- Single Istio gateway accepting HTTPS traffic #1231
- Check if Istio is already installed before installing it #1208
- Servicenow-service and prometheus-service have been removed from Keptn's uniform #1302
- Retrieving hostname/ip of ingress improved #1199
Control-plane enhancements/changes
- helm-service: Allow changing any file in Helm Chart #995
- remediation-service: Remediation action for slowing down requests#1006
- Self-healing use-case with Dynatrace #1185
- Self-healing use-case based on feature toggle remediation with Unleash #1104
- jmeter/wait-service: Send test-finished event with start/end time rather than startedat #1078
- REST API endpoints for: project and service #893
- Allow filtering by project, stage, and service in keptn-datastore #980
- mongodb-datastore: Allow event-retrieval filtering by source #1061
- Adapt DT integration to create rules based on DT_CUSTOM_PROP #1110
- jmeter-service: Sends a test-finished with status
fail
if test execution failed #542
CLI Enhancements
- Only check image availability on Docker if image contains docker.io #991
- Keptn uninstall commands shows that not everything is uninstalled #971
- Support for start-evaluation and get evaluation-done #948
- Quality gates standalone via CLI needs to set test-strategy #1069
- Avoid installing incompatible Keptn version #1162
- Allow start and end datetime (instead of timeframe) for start-evaluation #1131
- Setup Dynatrace monitoring using the Keptn CLI
configure monitoring
command #443 - Configure domain assumes dedicated Keptn gateway #1295
- Fixed issues with git clone and secrets #929
- Fixed version in Swagger for Keptn API #983
- Check valid project and stage names #745
- Fixed error message when Keptn installation #932
- Centralize ResolveXipIoWithContext to go-utils for all API calls #1005
- Fixed issues with Keptn events that are transferred into wrong format when stored by MongoDB #1021
- Fixed issue for paging the resource list #1048
- Fixed issue when creating a project with a git upstream repo with . (dots) #1095
- Reset NodePorts of services in generated Helm chart #1181
- Keptn API: Swagger UI refers to https instead of http #1012
- Allow project, stage, and service names with hyphens #1166
- Check whether Keptn-service name matches Kubernetes-service name #1261
- api.keptn.DOMAIN/v1/events endpoints requires query parameters #1210
- mongodb-datastore: eventContext removed from events that are read from mongodb-datastore #1300
- Travis CI Pipeline runs for all pull requests for external contributors#957
- Changed go-utils from go-dep to go-modules #959
- Provide nightly builds for the CLI and containers #946
- Refactored mongodb-datastore to use go-utils develop version #1011
- Update of Contribution Guide and Getting started #943
- Added Developer Documentation #938
- Unified Dockerfiles and add Skaffold YAMLs for easy in-cluster debugging #1026
- There is no new-artifact cloud event -
keptn send event new-artifact
causes a configuration change event #1218 - Currently, Helm v2 is used, which is now entering maintenance mode as Helm v3 has been released. This means that Helm v2 is going to be unmaintained at the end of 2020 (Source: https://helm.sh/blog/2019-10-22-helm-2150-released/#helm-2-support-plan ).
- Currently, CloudEvents v0.2 is used. We aim to implement v1.0 in the future which will cause changes in our CloudEvents handling. #1178
- Using an Apache Proxy with
ProxyPreserveHost on
in blue-green deployment scenario fails because of Istio Envoy/Proxy - Distributors can not automatically reconnect to NATS cluster #1209
- Dynatrace SLI Service / Metrics API will change at the end of Q1 #1282
- Sending multiple new-artifacts events can cause problems which result in a "no healthy upstream" error #1229, #1219
- Istio can potentially cause the kube-apiserver to experience downtimes (see istio/istio#19481 ) #1298
- The Quality-gates standalone version is currently not supported on OpenShift and PKS #1197