Keptn 0.10.0
Keptn 0.10.0 provides a native way for integrating your tooling by just calling their Webhooks. This is a great enabler for various delivery and operational use cases that can be implemented without writing custom code. Just two steps and your tool is integrated: (1) define the sequence task that works as a trigger (2) define the HTTP request endpoint and payload of the Webhook:
Form to create subscription and webhook configuration
Key announcements:
đ Seamless integration of DevOps landscape using Webhooks: This release is a major step towards the seamless integration of DevOps tooling for your continuous delivery or operational use cases. Therefore, Keptn 0.10 ships a webhook-service with Keptn core that allows the call of external tools using HTTP. To customize this HTTP request, the Bridge provides the corresponding interface and the secret management has been extended in this regard.
â Create/Delete a service via Bridge: Next to the Webhook configuration, the Bridge allows creating and deleting a service.
đ Our new integrations page got a facelift a let’s you explore and search available Keptn integrations. All powered by the ArtifactHub.
âšī¸ Keptn provides an internal Git repository for each Keptn project regardless of whether a Git upstream is configured. This internal Git repository will become deprecated in an upcoming Keptn release; more detail will follow. Consequently, it is recommended to set a Git upstream to your own, publically accessible Git repository today. Therefore, use the Keptn CLI or Bridge . If there are specific requirements to connect to an own repository, please reach out on Slack: keptn.slack.com
Keptn Enhancement Proposals
This release implements the KEPs: KEP 61 and parts of KEP 48 , KEP 53 , and KEP 54
Keptn Specification
Implemented Keptn spec version: 0.2.3
New Features
configuration-service :
Deprecated : GET default resources endpoints: /project/{projectName}/service/{serviceName}/resource
#5443
Make sure upstream changes are pulled when updating upstream creds #5224
Implemented endpoints for deleting service and stage resources #5145
Handle error and use dedicated HTTP error code when failing to update project due to wrong token #5438
Fall back to previous git credentials when updating upstream fails #5171
Fix updating upstream to uninitialized repo #5569
distributor :
Ensure that the subscriptionId is passed to the event #5412
Pass along subscriptionId to service implementation #5374
Exclusive message processing for multiple distributors #5249
Only interpret events with status=errored as error logs #5186
Hardening of ce cache #5736
Fixed: Leaking go routines in forwarder.go #5404
Fixed: Fails when having no initial PubSub topic defined #5230
Fixed: Potential timing issue in distributor unit tests #5538
fixed: Send event once for each matching subscription #5681
helm-service :
Customize Helm Chart image pull registry & pull secrets #4984
Revert upgrade to helm v3.7.0 because of memory issues #5588
Increase resource limits to avoid OOM crashes #5572
Fixed: Use user_managed
instead of user-managed
#3624
jmeter-service :
Prevent failure if deploymentURIs does not end with a ‘/’ #3612
Implement a retry loop for checkEndpointAvailability
#5619
lighthouse-service :
Calcscore missing error msg #5252
Added error logs for failing monitoring configuration #5220
Add message to event in case SLO parsing failed #5135
Fixed: Check for nil
entries in SLO objectives #5522
Fixed: Return the wrong error message if it fails to read slo.yaml #5549
mongodb-datastore :
Added dedicated GET endpoint for readiness probe #5499
Provide option to connect to external MongoDB #5385
Increase memory limits for mongodb-datastore and mongodb #5197
Correct log level for storing root events #5075
Fixed: mongodb-datastore resource requests and limits for skaffold setup #5202
remediation-service :
Adapt to recent changes in go SDK #5464
shipyard-controller :
Allow to abort queued sequences #5472
Reduce log noise for sequence watcher component #5458
Remove log noise in sequence migrator #5096
More robust handling of multiple .started
/.finished
events for the same task at the same time #5440
Adapted sequence state representation when sequence can not be started #5194
Return proper error message in case project is not available #5231
Return error if a sequence for an unavailable stage is triggered #5069
Adapted log output when no queued sequence is found #5167
Adapted HTTP status codes of GET /event endpoint #5134
Avoid endless loop #5124
Clean up list of open .triggered
events when completing a sequence #5601
Correctly handle time format in evaluation manager #5633
Ensure list of open .triggered
events is cleaned up when deleting project #5502
Use timestamp of incoming events to queue sequences #5620
Check for existence of stages in shipyard.yaml when creating a project #5774
Fixed: Dependency incompatibilities #5127
Fixed: Evaluation score should be computed based only on lighthouse events #5640
secret-service :
Creation of RoleBinding based on scope name #5300
Add list of keys within secrets created by the secret-service #5139
Fixed: Correct HTTP status code for invalid key or name #5479
webhook-service :
Introduced webhook-service in Keptn core #4938
Additional curl command validation to increase security #5500
Allow to disable sending the finished event in the webhook-service #5418
Filter Webhooks based on received subscription ID #5392
Allow to control if webhook-service is installed #5574
Add required scope to secret created for webhook integration test #5594
Allow to control if the webhook-service is installed #5556
Enhancements:
Initial integration tests #5360
Make session cookie timeout configurable and set default value to 60 minutes #5455
Align the way how sequence states are displayed #5376
Evaluation board only updates if there are new evaluations #5396
Create secret with scope selection #5388
Set latest sequence depending on the latest event #5148
Include time zone for trigger evaluation
command #5398
Handle incorrect remediation sequences #5383
Remove HeatMap selection if deployment-sequence does not have an evaluation #4636
Show a gray thick border when a running sequence is selected #5141
Configure webhook-service in Bridge #4750
Load sequence with more than 100 events correctly #5308
Show proper error messages if not OAuth is configured and prevent login loop #5086
Grouping sequence after pause #5275
Show list of files and link to git repo per stage for a service #5193
Set empty array when open remediations are not a sequence #5217
Delete a service #4380
Create a service #4500
Show loading bar only on initial data fetch #4910 #5586
Show loading indicator in environment screen until data is fetched #5417
Show payload of last event in subscription configuration #5585
Make all project tiles same height #5577
Tooltips for heatmap #4523
Dynamically set SLI button positions #5416
Support also clone urls for creating the git repo link #5391
Update webhook with right subscription property, fix stuck subscription update #5582
Heatmap did not correctly change on stage change #5578
Allow multiple webhooks with same subscription configuration #5267
Add secrets to webhook configuration #4751
Validate secret name length #5478
Add ability to configure feature flags #5211
Refactoring:
Removed deprecated links #4612
Code style fixes #4648
Migration to ESLint #4648
IDE ESLint setup #4648
Adapt retry-mechanism #4867
Add cypress setup #5190
Fixes:
‘Show SLO’ button disappeared after loading evaluation results #5393
Project settings page styles#5444
Task retrieval if shipyard does not contain any sequences #5409
Shipyard file selection, if the same file was chosen again #5380
Redirect to login page if OAuth is configured #5370
Fixed missing update on sequence screen #5085
Fixed error if sequence was not found #5172
Project delete dialog was not closed #5091
Polling of a project did not stop #5094
Faded-out integrations were not excluded from unread-error-event check #5118
Redirect to service or sequence did not work on dashboard #5126
Project delete dialog was not closed #5091
Faded-out integrations where not excluded from unread-error-event check #5118
Fixed SLI compared value #5460
Fixed missing view updates when sending an approval #5505
Service incorrectly shows that there are open remediations #5688
Catch error only in interceptor and show toast #5213
Temporarily revert customization of repository string in chart #5414
Add option for Ingress to control-plane Helm Chart Keptn installer #5066
Use correct images in airgapped installation #5532
Bump nginx image version to 1.21.3-alpine #5564
Fix bug where OpenShift route service go-utils were not upgraded during auto upgrade
Added zones to times format according to (ISO8601) #4788
Check if kubectl context matches Keptn CLI context before applying upgrade #5250
Skip version check on install #5046
Remove the upgrade available message while upgrading Keptn #5276
Configure automatic version check based on config #5290
Option to continue install/upgrade if K8s version is higher than the supported one #5698
Try to use X-real-ip and X-forwarded-for headers #5082
Fixed broken go-sum in go-sdk module #5463
Option to disable automatic event response in SDK #5453
Development Process / Testing
Fixed paths in commit messages #5451
Fixed integration tests #5390
Added retry mechanism for creating projects in integration tests #5253
Updated go-dependencies in integration tests #5205
Add disclamer to avoid security vulnerabilities to be reported reported as bugs #5169
Update Maintainers file #5314
Good to know / Known Limitations
Aborting a pending deployment sequence in helm-service leads to failure until the aborted sequence finally finishes #5557
The following characters/strings are forbidden in the WebHook payload: $
, |
, ;
, >
, $(
, &
, &&
, `, /var/run
Upgrade to 0.10.0