Release service is a Kubernetes operator to control the life cycle of Konflux-managed releases.
All development tasks use the Makefile:
Run locally (e.g., CRC cluster):
$ make manifests generate # After code changes
$ make run installBuild and push image:
$ make docker-build docker-push
$ TAG=my-tag make docker-build docker-push # Custom tag
$ IMG=quay.io/user/release:my-tag make docker-build docker-push # Custom repoRun tests:
$ make test # Includes coverage reportDisable webhooks (local development):
$ ENABLE_WEBHOOKS=false make run installApart from the metrics provided by controller-runtime by default, this operator exports the following custom metrics:
| Metric name | Type | Description |
|---|---|---|
| release_concurrent_total | Gauge | Total number of concurrent release attempts. |
| release_concurrent_post_actions_executions_total | Gauge | Total number of concurrent release post actions executions attempts |
| release_concurrent_processings_total | Gauge | Total number of concurrent release processing attempts. |
| release_duration_seconds | Histogram | How long in seconds a Release takes to complete. |
| release_post_actions_execution_duration_seconds | Histogram | How long in seconds Release post-actions take to complete. |
| release_processing_duration_seconds | Histogram | How long in seconds a Release processing takes to complete. |
| release_pre_processing_duration_seconds | Histogram | How long in seconds a Release takes to start processing |
| release_validation_duration_seconds | Histogram | How long in seconds a Release takes to validate |
| release_total | Counter | Total number of releases reconciled by the operator. |