Release Notes 0.8.2
Keptn 0.8.2 is a hardening release and incorporates changes that are required to deploy Keptn using Keptn. Besides, the Sequence and Service screens in the Bridge are improved to provide a holistic view of the services on the one hand, and a clear separation of sequentially executed sequences on the other hand.
Key announcements:
🍸 Keptn drinks its own champagne: Each merge on the master (aka. main) branch of the keptn/keptn repository triggers a Keptn to deploy this new version into a development environment. This helps the Keptn project to have the latest and greatest version of Keptn running and to do feature presentations using this deployment.
A GitHub action has been implemented that allows sending a Keptn event to a Keptn installation: gh-action-send-event. Don't wait to integrate it into your CI on GitHub today!
🔨 Hardening of Keptn: Containers of Keptn core services are not running as root users and a security context has been defined. Please note: Defining the security context for NATS is not possible yet, since we are waiting for a new release containing the PR: nats-io/k8s#222.
⭐ Service/Sequence screen enhancements: Instead of listing all sequences that were executed on a service, the Service screen now displays the deployments of a service that are currently running in the different stages. Besides, the Sequence screen improved in displaying sequences that are executed sequentially in the same stage:
Many thanks to the community for the enhancements on this release!
Keptn Specification
Implemented Keptn spec version: 0.2.1
New Features
Platform Support / Installer
- Run Keptn core containers as non-root 3764
- Helm Chart (for control-plane) needs tag properties for deployments in values.yaml 3328
- Split K8s role
keptn-configure-bridge
by secret and pod management 3767 - Service account
keptn-configuration-service
does not need full permissions on secret management 3781 - Dockerfile for Keptn Bridge in package.json usage needs improvement 3641
- Improve handling of X-Forwarded-Proto header for Bridge 3672
Keptn Core
-
helm-service:
-
jmeter-service:
- Need better JMeter result other than just fail 3559
-
lighthouse-service:
- Fixed: Properly set result, status, and message 3412
-
shipyard-controller:
- Fixed: Only last
.finished
event for a task determines further sequence execution 3493
- Fixed: Only last
Bridge
- Text in the notification is hard to read and the link is not working 3634
- Chart tooltip should show all active metrics 2546
- Better sequence visualization when having more than one sequence in a stage 3542
- Load details of deployment in service screen 3706
- Derive the list of deployments that are currently running for a service 3629
- Uniform names of mock files 3714
- Add "load older Sequences" button in Sequence screen 2280
- Sequence icon colors represent status 3591
- Show target values for criteria when hovering over values 2757
- Fixed: Bridge showing a NaN as a number 3815
- Fixed: Service shows "Service not deployed yet" even if it is deployed 3848
- Fixed: Chart in Heatmap shows incorrect Y-axis and incorrect tooltip 3645
- Fixed: Daily version check was disabled 3668
- Fixed: Quality gate icon in the environment screen does not turn red 3592
- Fixed: Some deep-links are broken 3631
- Fixed: Problem filter in environment screen does not work 3652
Miscellaneous
- Delete helm-service and jmeter-service from continuous-delivery Helm Chart and adapt CLI accordingly 3350
- Decouple unit tests from "get.keptn.sh/version.json" 3476
Development Process / Testing
- GitHub Action to setup a Keptn deployment 3554
- GitHub Action to send CloudEvents to a Keptn installation 2797
- Use github.com/stretchr/testify/require instead of general asserts 3149
Good to know / Known Limitations
- See the know limitations from 0.8.0
Open issues that will be fixed in upcoming releases
- Auto-remediation does not work with remote execution plane 3498
- Bridge shows "started" wording on status.changed 3583
- Inconsistent usage of user-managed and user_managed causing issues 3624
- Keptn API:
configure monitoring
not functioning according to spec 3638 - Keptn CLI: Disable Kube context check 3666
- Homebrew installed CLI fails to install with 'Malformed constraint: ""' 3805
Upgrade to 0.8.2
- The upgrade from 0.8.1 to 0.8.2 is supported by the
keptn upgrade
command. Find the documentation here: Upgrade from Keptn 0.8.x to 0.8.2
CI Information
- BUILD 0.8.2 ON release-0.8.2
- DATETIME: 202104230633
- GIT_SHA: 533bed7
- ACTION RUN: https://github.com/keptn/keptn/actions/runs/776909167
Docker Images
- Pushed keptn/api:0.8.2.202104230633 and keptn/api:0.8.2 (Source: api/)
- Pushed keptn/bridge2:0.8.2.202104230633 and keptn/bridge2:0.8.2 (Source: bridge/)
- Pushed keptn/distributor:0.8.2.202104230633 and keptn/distributor:0.8.2 (Source: distributor/)
- Pushed keptn/jmeter-service:0.8.2.202104230633 and keptn/jmeter-service:0.8.2 (Source: jmeter-service/)
- Pushed keptn/helm-service:0.8.2.202104230633 and keptn/helm-service:0.8.2 (Source: helm-service/)
- Pushed keptn/approval-service:0.8.2.202104230633 and keptn/approval-service:0.8.2 (Source: approval-service/)
- Pushed keptn/openshift-route-service:0.8.2.202104230633 and keptn/openshift-route-service:0.8.2 (Source: platform-support/openshift-route-service/)
- Pushed keptn/shipyard-controller:0.8.2.202104230633 and keptn/shipyard-controller:0.8.2 (Source: shipyard-controller/)
- Pushed keptn/secret-service:0.8.2.202104230633 and keptn/secret-service:0.8.2 (Source: secret-service/)
- Pushed keptn/configuration-service:0.8.2.202104230633 and keptn/configuration-service:0.8.2 (Source: configuration-service/)
- Pushed keptn/remediation-service:0.8.2.202104230633 and keptn/remediation-service:0.8.2 (Source: remediation-service/)
- Pushed keptn/lighthouse-service:0.8.2.202104230633 and keptn/lighthouse-service:0.8.2 (Source: lighthouse-service/)
- Pushed keptn/mongodb-datastore:0.8.2.202104230633 and keptn/mongodb-datastore:0.8.2 (Source: mongodb-datastore/)
- Pushed keptn/statistics-service:0.8.2.202104230633 and keptn/statistics-service:0.8.2 (Source: statistics-service/)
Integration Tests
Integration Tests have finished.
Target Platform | Keptn Install | Keptn Auth | Linking Stages | Quality Gates Standalone | Quality Gates Backwards Compat. | Self Healing | Delivery Assistant | Continuous Delivery | Continuous Delivery (Remote Exec) |
---|---|---|---|---|---|---|---|---|---|
kubernetes/GKE 1.17 | success | success | success | success | success | success | success | skipped | success |
kubernetes/GKE 1.18 | success | success | success | success | success | success | success | success | skipped |
kubernetes/k3s-on-GHA v1.16.15+k3s1 | success | success | success | success | success | success | skipped | skipped | skipped |
kubernetes/k3s-on-GHA v1.20.4+k3s1 | success | success | success | success | success | success | skipped | skipped | skipped |
openshift/minishift-on-GHA 3.11 | success | success | success | skipped | skipped | success | skipped | skipped | skipped |
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.2 |
api-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
approval-service | approval-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/approval-service:0.8.2 |
approval-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
bridge | bridge | 64Mi | 50m | 128Mi | 500m | docker.io/keptn/bridge2:0.8.2 |
configuration-service | configuration-service | 64Mi | 50m | 128Mi | 500m | docker.io/keptn/configuration-service:0.8.2 |
helm-service | helm-service | - | - | - | - | docker.io/keptn/helm-service:0.8.2 |
helm-service | distributor | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/distributor:0.8.2 |
jmeter-service | jmeter-service | 768Mi | 1 | - | - | docker.io/keptn/jmeter-service:0.8.2 |
jmeter-service | distributor | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/distributor:0.8.2 |
lighthouse-service | lighthouse-service | 128Mi | 50m | 1Gi | 500m | docker.io/keptn/lighthouse-service:0.8.2 |
lighthouse-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
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.2 |
mongodb-datastore | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
remediation-service | remediation-service | 64Mi | 50m | 1Gi | 500m | docker.io/keptn/remediation-service:0.8.2 |
remediation-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
secret-service | secret-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/secret-service:0.8.2 |
shipyard-controller | shipyard-controller | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/shipyard-controller:0.8.2 |
shipyard-controller | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
statistics-service | statistics-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/statistics-service:0.8.2 |
statistics-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
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 713m (18%) 2250m (57%)
memory 680Mi (5%) 2232Mi (18%)
--
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 1079m (27%) 2201m (56%)
memory 2795Mi (22%) 2471Mi (19%)
--
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 1988m (50%) 5850m (149%)
memory 1624Mi (13%) 3076Mi (24%)
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.2 |
api-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
approval-service | approval-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/approval-service:0.8.2 |
approval-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
bridge | bridge | 64Mi | 50m | 128Mi | 500m | docker.io/keptn/bridge2:0.8.2 |
configuration-service | configuration-service | 64Mi | 50m | 128Mi | 500m | docker.io/keptn/configuration-service:0.8.2 |
lighthouse-service | lighthouse-service | 128Mi | 50m | 1Gi | 500m | docker.io/keptn/lighthouse-service:0.8.2 |
lighthouse-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
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.2 |
mongodb-datastore | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
remediation-service | remediation-service | 64Mi | 50m | 1Gi | 500m | docker.io/keptn/remediation-service:0.8.2 |
remediation-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
secret-service | secret-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/secret-service:0.8.2 |
shipyard-controller | shipyard-controller | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/shipyard-controller:0.8.2 |
shipyard-controller | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
statistics-service | statistics-service | 32Mi | 50m | 128Mi | 500m | docker.io/keptn/statistics-service:0.8.2 |
statistics-service | distributor | 16Mi | 25m | 32Mi | 250m | docker.io/keptn/distributor:0.8.2 |
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 1075m (53%) 7100m (355%)
memory 1396Mi (20%) 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 |