Release Notes 0.8.4
Gain visibility into integrations connected to Keptn - Keptn 0.8.4 starts to implement the Uniform mockup that has been released/presented with Keptn 0.8.1. This new Bridge screen brings insights into the Keptn-services (aka Integrations) that are connected to a Keptn control-plane, allows troubleshooting by retrieving their errors, and enables creating/deleting secrets for integrations.
Key announcements:
🎉 Troubleshooting support for Integrations: To support troubleshooting integrations without connecting to the environment that runs them, errors are sent to Keptn and displayed in the Uniform screen of a project.
⭐ Creating/Deleting Secrets for Integrations: To not rely on the Keptn CLI to manage secrets for integrations, Bridge allows creating/deleting secrets. This is supported for integrations that are running on a Keptn control-plane since the public Keptn API does yet not allow querying secrets.
🚀 Customization of Bridge: With this release, Keptn Bridge can get a custom look-and-feel by providing a custom logo, title, and/or stylesheet. More details on this feature are available here.
Note: If you are a maintainer of an Integration that is hosted on github.com/keptn-contrib or github.com/keptn-sandbox, you will receive an issue explaining how to upgrade your integration; especially, the distributor. With this upgrade, your integration will then benefit from the new feature and will be displayed in Keptn Bridge.
Keptn Enhancement Proposals
This release implements the KEPs: KEP 45 & KEP 46
Keptn Specification
Implemented Keptn spec version: 0.2.3
New Features
Platform Support / Installer
- Support for Kubernetes 1.21 4400
- Add readinessProbe to Helm Chart of: keptn, jmeter-service, and helm-service 3648
API
- Log ingest endpoint for a Keptn-Service 4032
- List all secrets created by secret-service 4061
- Register/Unregister endpoint for registering a Keptn-service that connects to Keptn control-plane 4041
CLI
keptn upgrade
: Improve help messages 3479- Replace
exechelper.ExecuteCommand
withkeptnutils.ExecuteCommand
4068 - Fixed: Keptn configure bridge output shows error after disabling basic auth 4154
- Fixed: Trying to install a different keptn version on the cluster results in error 3959
- Fixed:
keptn upgrade
getLatestKeptnRelease returns the wrong version 3841 - Fixed:
keptn generate support-archive
not working on windows 4225 - Fixed:
keptn uninstall
does not have any effect on cluster 3958
Keptn Core
-
general:
shkeptnspecversion
missing in many Keptn CloudEvents 3408
-
distributor:
-
helm-service:
- Fixed: Helm-service lost its resource requests/limits 4250
-
lighthouse-service:
- Fixed: "Response time degradation in lighthouse-service" when spamming get-sli-events 4065
-
remediation-service:
- Fixed: Remediation-service lost fallback to
problem type: default
4254
- Fixed: Remediation-service lost fallback to
-
shipyard-controller:
Bridge
-
Enhancements:
- List, create and delete Secrets 4062
- Bridge downloads and uses customized look and feel on startup 4095
- Environment layout improvement for service versions 4006
- Show Uniform screen with data fetched from Uniform Backend 4034
- Improve status information in Service screen for failed deployments 4002
- Show instructions or link for triggering evaluations in stage 4055
- Mark currently selected stage using a color 3948
- Update Service screen on a regular basis 4049
- Display running remediations in the Service screen 3761
-
Fixes:
- Bridge shows
Configure monitoring succeeded
, although dynatrace-service responded with result fail 4073 - Bridge breaks on "sh.keptn.event.evaluation.triggered" root event 4155
- Timelines show the wrong selection color for a running stage 4262
- Bridge runs version check although ENABLE_VERSION_CHECK env is set to "false" 4165
- Incorrect sequence filter if project is changed or the page is reloaded 4151
- Evaluation result can be viewed from Sequence but not from Service screen 4056
- Unexpected behavior of scrollbars in environment screen 4149
- Selection change in heatmap does not always update SLO table - needs second click 4007
- Environment panels are not updated on approval / finish 4048
- Sequence is only updated when detail is opened 4130
- Service tile breaks based on image:tag >
carts:353ff51.1
4130
- Bridge shows
Miscellaneous
- Dependency incompatibility in services using helm library 4063
- Add bridge and bridge server to dependabot 4077
Development Process / Testing
- Integration Test for Uniform and Log Ingest Feature 4103
- For non-release-builds, use timestamps for containers in Helm Charts 4191
- Integration test: create an issue if integration tests on master branch are failing 3772
- Reduce dependabot to only post PRs once a week 4076
- Selenium E2E tests for Bridge 4142
- Introduce uitestid-s in Bridge 4038
Good to know / Known Limitations
- See the know limitations from 0.8.0
Open issues that will be fixed in upcoming releases
- Shipyard-controller and Bridge run into errors when using an
image
object for a configuration change 4348 - Installing/Upgrading Keptn in an air-gapped environment does not work for
configuration-service
andnats
4183 - Selected service is not reset on project change 4166
- Response time degradation in configuration-service when using a Git Upstream (e.g., GitHub) 4066
- Mongodb OOM crash after flooding it with events 3968
- Inconsistent usage of user-managed and user_managed causing issues 3624
Upgrade to 0.8.4
- The upgrade from 0.8.x to 0.8.4 is supported by the
keptn upgrade
command. Find the documentation here: Upgrade from Keptn 0.8.x to 0.8.4
CI Information
- BUILD 0.8.4 ON release-0.8.4
- DATETIME: 202106180804
- GIT_SHA: 03ed28c
- ACTION RUN: https://github.com/keptn/keptn/actions/runs/949243140
Docker Images
- Pushed keptn/api:0.8.4.202106180804 and keptn/api:0.8.4 (Source: api/)
- Pushed keptn/bridge2:0.8.4.202106180804 and keptn/bridge2:0.8.4 (Source: bridge/)
- Pushed keptn/distributor:0.8.4.202106180804 and keptn/distributor:0.8.4 (Source: distributor/)
- Pushed keptn/jmeter-service:0.8.4.202106180804 and keptn/jmeter-service:0.8.4 (Source: jmeter-service/)
- Pushed keptn/helm-service:0.8.4.202106180804 and keptn/helm-service:0.8.4 (Source: helm-service/)
- Pushed keptn/approval-service:0.8.4.202106180804 and keptn/approval-service:0.8.4 (Source: approval-service/)
- Pushed keptn/openshift-route-service:0.8.4.202106180804 and keptn/openshift-route-service:0.8.4 (Source: platform-support/openshift-route-service/)
- Pushed keptn/shipyard-controller:0.8.4.202106180804 and keptn/shipyard-controller:0.8.4 (Source: shipyard-controller/)
- Pushed keptn/secret-service:0.8.4.202106180804 and keptn/secret-service:0.8.4 (Source: secret-service/)
- Pushed keptn/configuration-service:0.8.4.202106180804 and keptn/configuration-service:0.8.4 (Source: configuration-service/)
- Pushed keptn/remediation-service:0.8.4.202106180804 and keptn/remediation-service:0.8.4 (Source: remediation-service/)
- Pushed keptn/lighthouse-service:0.8.4.202106180804 and keptn/lighthouse-service:0.8.4 (Source: lighthouse-service/)
- Pushed keptn/mongodb-datastore:0.8.4.202106180804 and keptn/mongodb-datastore:0.8.4 (Source: mongodb-datastore/)
- Pushed keptn/statistics-service:0.8.4.202106180804 and keptn/statistics-service:0.8.4 (Source: statistics-service/)
Integration Tests
Integration Tests have finished.
Integration Tests have finished.
Target Platform | Keptn Install | Keptn Auth | Linking Stages | Uniform Registration | Log Ingestion | Log Forwarding | Sequence States | Sequence Loop | QG Standalone | QG Backwards Compat. | Self Healing | Del-Assist | User-Man. Depl. | Cont Deliv | Cont Deliv (Remote Exec) | Manage secrets | Bridge E2E |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kubernetes/GKE 1.17 | success | success | success | success | success | success | success | success | success | success | success | success | success | skipped | success | success | success |
kubernetes/GKE 1.19 | success | success | success | success | success | success | success | success | success | success | success | success | success | success | skipped | success | success |
kubernetes/k3s-on-GHA v1.16.15+k3s1 | success | success | success | success | success | success | success | success | failure | success | success | skipped | skipped | skipped | skipped | success | failure |
kubernetes/k3s-on-GHA v1.21.1+k3s1 | success | success | success | success | success | success | success | success | success | success | success | skipped | skipped | skipped | skipped | success | success |
openshift/minishift-on-GHA 3.11 | success | success | success | success | success | success | success | success | skipped | skipped | success | skipped | skipped | skipped | skipped | success | success |
Kubernetes Resource Data
Resource Limits
Resource Limits for kubernetes-GKE
Pod | Container | Memory (requested) | CPU (requested) | Memory (limit) | CPU (limit) | Images |
---|---|---|---|---|---|---|
api-gateway-nginx | api-gateway-nginx | 64Mi | 50m | 128Mi | 250m | docker.io/nginxinc/nginx-unprivileged:1.19.4-alpine |
api-service | api-service | 64Mi | 50m | 256Mi | 500m | docker.io/keptn/api:0.8.4 |
api-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
approval-service | approval-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/approval-service:0.8.4 |
approval-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
bridge | bridge | 64Mi | 50m | 128Mi | 500m | docker.io/keptn/bridge2:0.8.4 |
configuration-service | configuration-service | 64Mi | 50m | 128Mi | 500m | docker.io/keptn/configuration-service:0.8.4 |
helm-service | helm-service | 128Mi | 50m | 512Mi | 1 | docker.io/keptn/helm-service:0.8.4 |
helm-service | distributor | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/distributor:0.8.4 |
jmeter-service | jmeter-service | 768Mi | 1 | - | - | docker.io/keptn/jmeter-service:0.8.4 |
jmeter-service | distributor | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/distributor:0.8.4 |
lighthouse-service | lighthouse-service | 128Mi | 50m | 1Gi | 500m | docker.io/keptn/lighthouse-service:0.8.4 |
lighthouse-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
mongodb | mongodb | 64Mi | 50m | 300Mi | 100m | docker.io/centos/mongodb-36-centos7:1 |
mongodb-datastore | mongodb-datastore | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/mongodb-datastore:0.8.4 |
mongodb-datastore | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
remediation-service | remediation-service | 64Mi | 50m | 1Gi | 500m | docker.io/keptn/remediation-service:0.8.4 |
remediation-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
secret-service | secret-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/secret-service:0.8.4 |
shipyard-controller | shipyard-controller | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/shipyard-controller:0.8.4 |
shipyard-controller | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
statistics-service | statistics-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/statistics-service:0.8.4 |
statistics-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
Summary (whole cluster):
$ kubectl describe node | grep -A5 "Allocated"
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 1543m (39%) 510m (13%)
memory 1190Mi (9%) 908Mi (7%)
--
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 1249m (31%) 3941m (100%)
memory 3053Mi (24%) 3795Mi (30%)
--
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 1038m (26%) 6850m (174%)
memory 984Mi (7%) 3588Mi (29%)
Please note: Depending on the setup, the above includes usage for Istio aswell as the Kubernetes control-plane
Name | Size |
---|---|
configuration-volume | 100Mi |
mongodata | 5Gi |
Resource Limits for openshift-minishift-on-GHA
Pod | Container | Memory (requested) | CPU (requested) | Memory (limit) | CPU (limit) | Images |
---|---|---|---|---|---|---|
api-gateway-nginx | api-gateway-nginx | 64Mi | 50m | 128Mi | 250m | docker.io/nginxinc/nginx-unprivileged:1.19.4-alpine |
api-service | api-service | 64Mi | 50m | 256Mi | 500m | docker.io/keptn/api:0.8.4 |
api-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
approval-service | approval-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/approval-service:0.8.4 |
approval-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
bridge | bridge | 64Mi | 50m | 128Mi | 500m | docker.io/keptn/bridge2:0.8.4 |
configuration-service | configuration-service | 64Mi | 50m | 128Mi | 500m | docker.io/keptn/configuration-service:0.8.4 |
lighthouse-service | lighthouse-service | 128Mi | 50m | 1Gi | 500m | docker.io/keptn/lighthouse-service:0.8.4 |
lighthouse-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
mongodb | mongodb | 64Mi | 50m | 300Mi | 100m | docker.io/centos/mongodb-36-centos7:1 |
mongodb-datastore | mongodb-datastore | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/mongodb-datastore:0.8.4 |
mongodb-datastore | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
remediation-service | remediation-service | 64Mi | 50m | 1Gi | 500m | docker.io/keptn/remediation-service:0.8.4 |
remediation-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
secret-service | secret-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/secret-service:0.8.4 |
shipyard-controller | shipyard-controller | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/shipyard-controller:0.8.4 |
shipyard-controller | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
statistics-service | statistics-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/statistics-service:0.8.4 |
statistics-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.4 |
Summary (whole cluster):
$ kubectl describe node | grep -A5 "Allocated"
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 875m (43%) 7100m (355%)
memory 884Mi (12%) 3852Mi (56%)
Please note: Depending on the setup, the above includes usage for Istio aswell as the Kubernetes control-plane
Name | Size |
---|---|
configuration-volume | 100Mi |
mongodata | 5Gi |