Releases: tektoncd/results
Tekton Results release v0.11.0 "Tekton Results"
-Docs @ v0.11.0
-Examples @ v0.11.0
Changes
Features
- ✨ Add log stored status explicitly (#760)
- Added log stored stored status explictly in the Log object improves the detection for partial or no storage of logs
- ✨ Enable storing of Run Events as Record (#748)
All Events related to taskrun or PipelineRun are stored when we are done with Runs and in a single List.
This can be controlled by a flag passed to the watcher: "store-event". Setting it to false
disables the storing of Events.
The record Name of EventList is stored as results.tekton.dev/eventlist
in TaskRun and PipelineRun.
Fixes
- 🐛 move log storage off reconciler thread (again) (#759)
Prior attempts to fix the watcher memory leak when log storage is enabled (originally issue #695) placed log storage on the dynamic reconciler to facilitate retry on retryable errors. However, production level testing uncovered underlying golang/http2 performance issues which made this untenable.
This change moves log storage back off the dynamic reconciler thread, but still addresses the memory leak, as well as intermittent 'canceled context' errors during log storage through the results api server.
Two new command line arguments are enabled on the watch to facilitate timeouts on log storage:
- dynamic_reconcile_timeout: How long the Watcher waits for the dynamic reconciler to complete before it aborts
- update_log_timeout: How log the Watcher waits for the UpdateLog operation for storing logs to complete before it aborts.
- 🐛 do not lose flush error on server side update log (#756)
Misc
- 🔨 Use latest Kind k8s version, fixes e2e tests (#766)
Thanks
Thanks to these contributors who contributed to v0.11.0!
- ❤️ @enarha
- ❤️ @gabemontero
- ❤️ @khrm
Extra shout-out for awesome release notes:
- 😍 @enarha
- 😍 @gabemontero
- 😍 @khrm
Tekton Results release v0.10.0 "Tekton Results"
-Docs @ v0.10.0
-Examples @ v0.10.0
Changes
Features
- ✨ alllow for database connection, grpc worker thread pool, and k8s client level tuning of the watcher and api servers (#744)
The number of idle and max database connections, grpc worker pool goroutines, k8s client qps and burst, in the api server can be now configured using environment variables.
The k8s client qps and burst settings can be set via command line arguments on the watcher
No defaults from prior settings have been changed.
- ✨ Add profiling to API server (#743)
Fixes
- 🐛 add timeout to dynamic Reconcile (#725)
Address deadlocked reconciler threads potentially hung while streaming logs
- 🐛 employ some channel best practices to avoid hanging goroutines (#712)
Fixes around the threading / goroutines employed while storing logs mitigate an observed memory leak
-
🐛 Don't run auth check for every log fragment (#740)
-
💀 Update golang.org/x/net to handle CVE GO-2024-2687 (#746)
-
💀 Bump github.com/cloudevents/sdk-go/v2 from 2.12.0 to 2.15.2 (#724) Patches CVE-2024-28110
Misc
- 🔨 Bump google.golang.org/protobuf from 1.31.0 to 1.34.1 (#752)
- 🔨 Update database drivers (#742)
- 🔨 Bump github.com/docker/docker from 24.0.7+incompatible to 24.0.9+incompatible (#736)
Docs
- 📖 fix syntax error with tekton results data model diagram (#708)
docs: Fix mermaid.js diagram for the Results data model
Thanks
Thanks to these contributors who contributed to v0.10.0!
- ❤️ @cmorinupgrade
- ❤️ @dependabot[bot]
- ❤️ @gabemontero
- ❤️ @khrm
- ❤️ @sayan-biswas
- ❤️ @stuartwdouglas
Extra shout-out for awesome release notes:
- 😍 @cmorinupgrade
- 😍 @gabemontero
- 😍 @khrm
Tekton Results release v0.9.2 "Tekton Results"
-Docs @ v0.9.2
-Examples @ v0.9.2
Changes
Fixes
- 🐛 [release-v0.9.x] Support all data types in summary annotations (#723)
This fixes panic when we pass data types other than a string in summary annotations. - 🐛 [release-v0.9.x] Disable Proxy for Rest to GRPC communication (#734)
This adds support for Disconnected and Proxy environments and fixes probe failure in these environments. - 🐛 [release-v0.9.x] fix: prevent panic when a record Summary is not a valid object (#733)
Docs
Thanks
Thanks to these contributors who contributed to v0.9.2!
- ❤️ @khrm
- ❤️ @ramessesii2
Extra shout-out for awesome release notes:
- 😍 @khrm
Tekton Results release v0.9.1 "Tekton Results"
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/results/previous/v0.9.1/release.yaml
Changes
Features
Fixes
- 🐛 [release-v0.9.x] handle all terminal states when processing logs (#701)
Tekton results will now store logs when the supported runs in question are cancelled
Misc
- 🔨 Add support for No DB release (#705)
This add support for release_base.yaml
which doesn't include db.
Thanks
Thanks to these contributors who contributed to v0.9.1!
- ❤️ @gabemontero
- ❤️ @khrm
Extra shout-out for awesome release notes:
- 😍 @gabemontero
- ❤️ @khrm
Tekton Results release v0.9.0 "Tekton Results"
-Docs @ v0.9.0
-Examples @ v0.9.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/results/previous/v0.9.0/release.yaml
Changes
Features
- ✨ Increase maximum receive size by client to 100 MB (#675)
Maximum size of the response that a client can receive is increased to 100 MB
- ✨ Add owner references check optional in watcher (#672)
"check_owner" command line flag allows the Owner References check to be optional while deleting resources.
- ✨ Add support for database SSL verification and encryption (#658)
A new configuration option DB_SSLROOTCERT was added with a default value of empty string. You do not need to set that value, unless you want to enforce TLS connection to your database and use custom CA certificate for it.
- ✨ Implementation of Summary/Aggregation API in Tekton results (#642)
Added a new api endpoint for fetching summary and aggregation for list of records. Now you can directly get aggreagation data for a given list of records without fetching and processing on the client side.
- ✨ Feature: Rest log streaming (#632)
action required: The gRPC and REST response for GetLog API changed. Refer to the REST API Specs doc.
Fixes
- 🐛 Fix deletion when TaskRun is part of PipelineRun (#690)
This change will prevent the controller from directly pruning TaskRuns which are initiated by a PipelineRun. Instead these TaskRuns will be deleted only when the owner PipelineRun is deleted.
- 🐛 Fix SAR groups and Extra (#635)
Fix authorization check to include the Groups and Extras from the token access review.
- 🐛 fix subgrouping not working in CEL filters (#627)
Fix subgroups not working in CEL filtering
- 🐛 Remove Config Values as Env var in API server (#608)
DB_NAME and DB_HOST should be configurable via configmap.
- 🐛 Fix log forwarding for PipelineRun status Completed (#666)
- 🐛 Make sure gRPC connection is closed (#625)
Misc
- 🔨 Drop NET_BIND_SERVICE cap as it isn't necessary (#663)
Drop NET_BIND_SERVICE capability from results deployments.
-
🔨 Use enviornment variables for watcher cli args (#662)
-
🔨 improve watcher logs (#626)
-
🔨 refactor: move tkn-results into the main tree (#592)
action required: tkn-results has been moved into the main tree of tekton results
- 🔨 Drop NET_BIND_SERVICE cap as it isn't necessary (#663)
Drop NET_BIND_SERVICE capability from results deployments.
-
🔨 Use enviornment variables for watcher cli args (#662)
-
🔨 improve watcher logs (#626)
-
🔨 Remove Config Values as Env var in API server (#608)
DB_NAME and DB_HOST should be configurable via configmap.
- 🔨 refactor: move tkn-results into the main tree (#592)
action required: tkn-results has been moved into the main tree of tekton results
- 🔨 Use best practices for namespaces in kustomization (#661)
- 🔨 Fix documentation typo (#653)
- 🔨 Replace the interface{} type with the shorter any (#630)
- 🔨 Bump google.golang.org/api from 0.134.0 to 0.155.0 (#688)
- 🔨 Bump github.com/containerd/containerd from 1.6.18 to 1.6.26 (#683)
- 🔨 Use best practices for namespaces in kustomization (#661)
- 🔨 Bump github.com/docker/docker from 20.10.24+incompatible to 24.0.7+incompatible (#655)
- 🔨 Update PostgreSQL image used in local-db deployment (#654)
- 🔨 Fix documentation typo (#653)
- 🔨 Bump google.golang.org/grpc from 1.57.0 to 1.59.0 (#651)
- 🔨 fix docs for proto library re-generation (#631)
- 🔨 Replace the interface{} type with the shorter any (#630)
- 🔨 Unfreeze the Pipelines version to latest in e2e tests. (#613)
- 🔨 Bump github.com/aws/aws-sdk-go-v2/credentials from 1.13.32 to 1.13.37 (#600)
- 🔨 Bump k8s.io/apiserver from 0.25.12 to 0.25.13 (#597)
- 🔨 Fix release script GCS bucket for the release.yaml (#596)
Docs
- 📖 updated deprecated field in docs (#679)
- 📖 add instructions for handling large log files (#588)
- 📖 update CEL filtering documentation (#566)
- 📖 Add Release Cheatsheet for Results (#441)
Thanks
Thanks to these contributors who contributed to v0.9.0!
- ❤️ @avinal
- ❤️ @dependabot[bot]
- ❤️ @drGrove
- ❤️ @enarha
- ❤️ @freefood89
- ❤️ @khrm
- ❤️ @ramessesii2
- ❤️ @sayan-biswas
- ❤️ @stuartwdouglas
Extra shout-out for awesome release notes:
- 😍 @avinal
- 😍 @drGrove
- 😍 @enarha
- 😍 @khrm
- 😍 @ramessesii2
- 😍 @sayan-biswas
Tekton Results release v0.8.1 "Tekton Results"
-Docs @ v0.8.1
-Examples @ v0.8.1
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/results/previous/v0.8.1/release.yaml
Changes
Security
This addresses CVE-2023-44487 by not allowing more server handlers to be run than the HTTP/2 MAX_CONCURRENT_STREAMS setting.
Thanks
Thanks to these contributors who contributed to v0.8.1!
- ❤️ @khrm
Extra shout-out for awesome release notes:
- 😍 @khrm
Tekton Results release v0.8.0 "Tekton Results"
-Docs @ v0.8.0
-Examples @ v0.8.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/results/previous/v0.8.0/release.yaml
Changes
Features
-
✨ [CLI] Add insecure flag to make insecure GRPC TLS call (#577)
Add--insecure
flag to make insecure GRPC TLS calls. -
✨ [CLI] Support passing of Service Account to tkn-results (#575)
The User can pass the flag --sa for serviceaccount name and --sa-ns for serviceaccount namespace. Latter is optional. If not given, then the namespace from the current context is assumed. -
✨ Add Support for storing logs to Google Cloud Storage (#552)
Add Support for storing logs to Google Cloud Storage. Set LogType to "GCS",
passGOOGLE_APPLICATION_CREDENTIALS
environment variable and attach
the file in the location pointed byGOOGLE_APPLICATION_CREDENTIALS
variable. -
✨ add base-only kustomization for minimal install (#529)
Add base-only config for minimal install are now available -
✨ [CLI] tkn-result would port-forward to service/tekton-results-api-service automatically (#520)
No need to port-forwardservice/tekton-results-api-service
manually. If Results API server address not specified and not disable explicitly, tkn-result will port-forward to service/tekton-results-api-service automatically. -
✨ Add delete count and duration metrics for TaskRun and PipelineRun (#517)
Add delete count and duration metrics for TaskRun and PipelineRun -
✨ Add option to enable prometheus histogram (#511)
ACTION REQUIRED: api: Config optionPROMETHEUS_HISTOGRAM
added to enable histograms (disabled by default). -
✨ [CLI] Add integration support to tkn (#457)
tkn-results: add annotations so the cli can be run as tkn plugin. -
✨ [CLI] Update CLI with Log command (#453)
Add List and Get command for Logs. Also added Get Record command.
Fixes
- 🐛 Add E2E test for GCS log storage (#591)
- 🐛 Fix status 404 for LIST records (#563)
ACTION REQUIRED: List records will return 200 - OK status and empty array in response when the filter criteria doesn't match any records - 🐛 fix NOT operator in CEL filtering (#544)
- 🐛 Remove TLS hostname override (#536)
ACTION REQUIRED: Config option, TLS_HOSTNAME_OVERRIDE is removed as the internal gRPC proxy client doesn't need to reverify the TLS. - 🐛 [CLI] Fix empty value for commandline flag (#583)
- 🐛 [CLI] Fix the broken flags (#568)
- 🐛 Add ClusterRole aggregation for default user-facing roles (#487)
- 🐛 [CLI] Fix the global flag passing from cli arg (#461)
Misc
- 🔨 Bump tkn-results to use latest version of results (#550)
- tkn-results bumped to use v0.7.0 of results
- tkn-results Go version bumped to go1.19
- 🔨 Add option to enable prometheus histogram (#511)
api: Config optionPROMETHEUS_HISTOGRAM
added to enable histograms (disabled by default). - 🔨 add myself as a reviewer (#555)
- 🔨 Skip TLS certificate verification for e2e (#530)
- 🔨 Bump k8s version used by Kind and e2e tests (#454)
- 🔨 Bump k8s.io/client-go from 0.25.12 to 0.25.13 (#594)
- 🔨 Bump k8s.io/api from 0.25.12 to 0.25.13 (#590)
- 🔨 Bump golang.org/x/oauth2 from 0.10.0 to 0.11.0 (#589)
- 🔨 Bump gorm.io/driver/mysql from 1.3.3 to 1.5.1 (#585)
- 🔨 Bump github.com/mattn/go-sqlite3 from 1.14.16 to 1.14.17 (#581)
- 🔨 Bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.38.1 to 1.38.5 (#573)
- 🔨 Bump github.com/google/cel-go from 0.13.0 to 0.17.6 (#572)
- 🔨 Bump go.uber.org/zap from 1.24.0 to 1.25.0 (#571)
- 🔨 Bump gorm.io/gorm from 1.25.0 to 1.25.4 (#570)
- 🔨 Bump github.com/prometheus/client_golang from 1.14.0 to 1.16.0 (#565)
- 🔨 Bump golang.org/x/net from 0.13.0 to 0.14.0 (#564)
- 🔨 Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.16.1 to 2.16.2 (#558)
- 🔨 Bump k8s.io/apiserver from 0.25.4 to 0.25.12 (#557)
- 🔨 Bump github.com/aws/aws-sdk-go-v2/config from 1.18.29 to 1.18.33 (#553)
- 🔨 Bump github.com/jonboulle/clockwork from 0.3.0 to 0.4.0 (#546)
- 🔨 Bump github.com/aws/aws-sdk-go-v2/config from 1.18.17 to 1.18.29 (#540)
- 🔨 Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.15.2 to 2.16.1 (#538)
- 🔨 Bump github.com/spf13/viper from 1.15.0 to 1.16.0 (#534)
- 🔨 Bump google.golang.org/api from 0.108.0 to 0.132.0 (#532)
- 🔨 Bump github.com/docker/docker from 20.10.22+incompatible to 20.10.24+incompatible (#428)
Docs
- 📖 add installing results with external database docs (#541)
Thanks
Thanks to these contributors who contributed to v0.8.0!
- ❤️ @avinal
- ❤️ @dependabot[bot]
- ❤️ @enarha
- ❤️ @khrm
- ❤️ @sayan-biswas
- ❤️ @xinnjie
Extra shout-out for awesome release notes:
- 😍 @avinal
- 😍 @khrm
- 😍 @sayan-biswas
- 😍 @xinnjie
Tekton Results release v0.7.0
-Docs @ v0.7.0
-Examples @ v0.7.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/results/previous/v0.7.0/release.yaml
Changes
Features
-
✨ Add health probes to API server (#485)
Add healthz endpoint to enable liveness, readiness, and startup probes for the api-server deployment. Default configuration uses HTTP, but gRPC can also be used.
Poll up to two minutes when establishing the database connection. -
✨ Implement CEL to SQL interpreter to enhance searches (#404)
Enhance search capabilities by implementing an engine to convert CEL expressions to SQL equivalent filters.
This feature makes list operations more powerful and effective, mostly in larger platforms with millions of Results and Records stored in the API server. Now, list operations leverage the database capabilities for querying Results and Records by translating CEL filters to thee Postgres SQL dialect.
ACTION REQUIRED: The fields created_time and updated_time are no longer valid to order Results and Records through list operations. If you want to sort those objects by timestamps, use the create_time and update_time instead. Those fields mirror the same attributes present in the wire representation of Results and Records.
Fixes
Misc
-
🔨 Add GolangCI via Makefile + Presubmit.sh + golangci lint fixes (#503)
Address potential bugs picked up by the golangci linter. Enable golang lint checks in our CI tests. -
🔨 add suffcient details to unauthorized errors (#489)
Provide more informative error messages when authorization via the impersonation feature fails. -
🔨 Add recovery middleware to gRPC server (#505)
Recovery middleware added to intercept server panics, recover and send Internal Server Error response instead of terminating the server. -
🔨 Bump go version to 1.19 (#448)
Minimum go version requirement updated to go1.19 -
🔨 Bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.29.6 to 1.33.1 (#481)
-
🔨 Bump k8s.io/api from 0.25.9 to 0.25.10 (#480)
-
🔨 Fix Image Repo for Release Pipeline (#479)
-
🔨 Bump github.com/spf13/viper from 1.14.0 to 1.15.0 (#474)
-
🔨 Bump gorm.io/driver/sqlite from 1.4.4 to 1.5.1 (#473)
-
🔨 Bump gorm.io/driver/postgres from 1.4.6 to 1.5.2 (#472)
-
🔨 Bump github.com/docker/distribution from 2.8.1+incompatible to 2.8.2+incompatible (#467)
-
🔨 Bump k8s.io/api from 0.25.8 to 0.25.9 (#462)
-
🔨 Restore cleanup after e2e tests (#456)
-
🔨 Bump google.golang.org/grpc from 1.53.0 to 1.55.0 (#452)
-
🔨 Make e2e tests more configurable (#449)
-
🔨 Install: add option for localhost DNS name (#326)
-
🔨 Bump go.uber.org/automaxprocs from 1.4.0 to 1.5.2 (#478)
-
🔨 Bump github.com/fatih/color from 1.13.0 to 1.15.0 (#477)
Docs
- 📖 Fix watcher log level description in documentation (#491)
- 📖 Add overlay for enabling logs (#447)
The logs feature with PVC storage can be deployed and tested through a new "logs-local-db" kustomization. - 📖 Fix gRPC port in developer docs (#463)
- 📖 Install: add option for localhost DNS name (#326)
Thanks
Thanks to these contributors who contributed to v0.7.0!
- ❤️ @AndrienkoAleksandr
- ❤️ @adambkaplan
- ❤️ @alan-ghelardi
- ❤️ @avinal
- ❤️ @dependabot[bot]
- ❤️ @enarha
- ❤️ @gabemontero
- ❤️ @khrm
- ❤️ @sayan-biswas
- ❤️ @xinnjie
Extra shout-out for awesome release notes:
Tekton Results release v0.6.0 "Tekton Results"
-Docs @ v0.6.0
-Examples @ v0.6.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/results/previous/v0.6.0/release.yaml
Changes
Features
- ✨ Allow users/integrators to pass arbitrary keys/values through Result and RecordSummary annotations (#426)
Allow users/integrators to pass arbitrary keys/values to the Result.Annotations
and Result.Summary.Annotations fields, by adding the newly created annotations
results.tekton.dev/resultAnnotations and
results.tekton.dev/recordSummaryAnnotations to their PipelineRuns and TaskRuns.
Those annotations can be used to store relevant metadata (e.g. repository name,
Git commit SHA, pull request number among others) along with results into the
database, in order to be used later to retrieve those resources via the API.
- ✨ Adding namespace setting (#419)
added namespace property to allow Watcher only watch a specific namespace
- ✨ Feature: Add impersonation to tekton results API (#373)
Kubernetes impersonation headers can be used when authorizing access to Tekton Results APis.
ACTION REQUIRED: The NO_AUTH config parameter was renamed to AUTH_DISABLE
Fixes
- 🐛 Remove reconciler unit test (#424)
Remove reconciler test that failed due to data race conditions. Test logic was previously moved to an e2e test.
- 🐛 Fix: API Server panics when bearer token with invalid JWT format is passed (#421)
Fixes API Server panics when a bearer token with invalid JWT format is passed.
- 🐛 Add logs to watcher ClusterRole resources (#402)
Grant the watcher permission to get, create, and update log records
- 🐛 Fix: Error message for GetResult handler (#346)
Fix GetResult to return the standard "record not found" error if the database query does not find a result.
- 🐛 Wait until all TaskRuns are ready for deletion to delete the PipelineRun (#333)
The PipelineRun controller now waits until all TaskRuns associated to a PipelineRun are done and up to date in the API server to delete the PipelineRun and consequentially, all TaskRuns in cascade. If the configured grace period to delete objects is very short (useful in larger clusters with high churn) and there's a lag in the controller's work queue, this guarantees that dependent objects (such as TaskRuns) won't be deleted while they're in an intermediate state in the Results API server.
Misc
- 🔨 Add unique labels to api and watcher services (#425)
Added unique labels to api and watcher services.
- 🔨 Use same listener for gRPC and REST request (#405)
ACTION REQUIRED: Config parameters GRPC_PORT and REST_PORT are replaced by a single parameter SERVER_PORT, which handles both gRPC and REST requests.
- 🔨 Bump golang.org/x/text from 0.3.7 to 0.3.8 in /tools/tkn-results (#365)
- 🔨 Update kustomization files to latest standard (#440)
- 🔨 Fix version tag for results release (#444)
- 🔨 Add khrm, sayan and enarha to approvers list (#435)
- 🔨 Bump gorm.io/gorm from 1.24.3 to 1.25.0 (#433)
- 🔨 Bump github.com/aws/aws-sdk-go-v2 from 1.17.6 to 1.17.8 (#430)
- 🔨 Add e2e tests using gRPC and REST (#418)
- 🔨 Bump github.com/golang-jwt/jwt/v4 from 4.4.2 to 4.5.0 (#413)
- 🔨 Bump k8s.io/api from 0.25.5 to 0.25.8 (#409)
- 🔨 Bump github.com/golang/protobuf from 1.5.2 to 1.5.3 (#397)
- 🔨 Update install latest release to 0.5.0 (#394)
- 🔨 Bump github.com/aws/aws-sdk-go-v2/credentials from 1.13.6 to 1.13.17 (#393)
- 🔨 Bump github.com/aws/aws-sdk-go-v2/config from 1.18.6 to 1.18.17 (#392)
- 🔨 Add release config to bucket's latest folder (#387)
- 🔨 dependabot: do not update k8s.io/* major/minor updates (#386)
- 🔨 Add Arm64 and Arm arch support (#385)
- 🔨 Remove ppc64le and s390x release unittest (#384)
- 🔨 Update ko in release task to v0.12 (#383)
- 🔨 Bump golang.org/x/crypto from 0.0.0-20210920023735-84f357641f63 to 0.1.0 in /tools/tkn-results (#382)
- 🔨 Create codeql-analysis.yml (#376)
- 🔨 Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.15.0 to 2.15.2 (#374)
- 🔨 Bump golang.org/x/net from 0.6.0 to 0.7.0 (#358)
Docs
- 📖 Fix the command for redeploying all components (#380)
Fix the command for redeploying all the result components from the main.
- 📖 Update install latest release to 0.5.0 (#394)
- 📖 Docs: update developer docs and add openapi spec (#377)
Thanks
Thanks to these contributors who contributed to v0.6.0!
- ❤️ @Roming22
- ❤️ @adambkaplan
- ❤️ @alan-ghelardi
- ❤️ @avinal
- ❤️ @dependabot[bot]
- ❤️ @enarha
- ❤️ @khrm
- ❤️ @manuelwallrapp
- ❤️ @sayan-biswas
Extra shout-out for awesome release notes:
- 😍 @adambkaplan
- 😍 @alan-ghelardi
- 😍 @dependabot[bot]
- 😍 @enarha
- 😍 @khrm
- 😍 @manuelwallrapp
- 😍 @sayan-biswas
v0.5.0
-Docs @ v0.5.0
-Examples @ v0.5.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/results/previous/v0.5.0/release.yaml
Upgrade Notices
This is our first release in over a year. In-place upgrades are not guaranteed to work due to the volume of changes to the watcher and apiserver configurations. Caveat emptor!
Changes
Features
-
✨ Enable REST endpoints if logging is on (#302)
-
✨ [TEP-0117] Tekton Results Logs (#301)
Add support for storing PipelineRun and TaskRun logs in persistent storage backends. Refer to the TEP-0117 for more details. -
✨ Allow users to set a label selector to filter objects to be deleted (#295)
-
✨ Add the NO_AUTH option to the API server (#293)
This feature makes the built-in Kubernetes RBAC authorization check optional. In
larger clusters with high activity users may turn-off the RBAC authorization
check which improves the Results API's performance significantly. -
✨ Add log level value to the api server config. (#285)
Add log level value to the api server config to make it this option visible in the config. -
✨ logs storage service and RPC definitions (#277)
This feature separates the service definition of logs from the results in the Proto file. Also the logs service registration is made optional at the API server and the watcher can negotiate the availability of logs service through a reflection client and enable/disable sending logs. -
✨ Audit Logging (#275)
Generate an access log for audit/compliance purposes.
Record request durations and responses for debugging. -
✨ Hide sensitive information from pod logs. (#268)
Hiding DB/GORM logs. -
✨ Enhance the support for reading Results and Records across multiple collections (#249)
Listing Results and Records without specifying the parent name. Use-
to specify all namespaces. -
✨ Enable high availability through Knative leader election support (#242)
Enable high availability by making Watcher controllers leader aware. This allows the two forms of leader election (standard and statefulset-based) provided by Knative to be easily used in the Watcher.
Add the threadiness flag to the Watcher binary. It allows users to tweak the number of workers allocated to process the controller's worker queue.
Add the tekton-results-watcher Service. This is mostly a convenience to users who want to enable the statefulset-based leader election mechanism.
Add ConfigMaps to customize logging, leader election and observability. The
config-leader-election ConfigMap allows users to tweak the leader election
mechanism. The other two ones make Results more homogeneous with Tekton Pipeline project. -
✨ Allow configuration of API server through config file (#214)
This change allows for both config file options and env var options, where the env var will override the config file option if it is set. -
✨ Add ppc64le support to Tekton results (#211)
-
✨ Added REST proxy over existing RPCs (#200)
These changes will allow UI developers to access results API over REST -
✨ Allow setting SSLMODE for connections to database by env variable (#191)
Allow setting SSLMODE by setting environment variable DB_SSLMODE=verify-full -
✨ Implement Record Summaries. (#164)
Record Summaries allow for clients to associate simplified information
to their Results. The purpose of this is to allow Results to capture
basic high level information such as status and start/end times without
needing to perform an additional API call.
Fixes
-
🐛 Fix log streaming error. (#367)
Fix failing streaming logs, when log api is enabled. -
🐛 Fix go generate: Protobuf generation (#342)
-
🐛 Restore gRPC logging (#328)
The initial implementation was unintentionally removed. Log gRPC authentication enabled/disabled for each call. -
🐛 API fix for REST access (#319)
Logs static path fragment added to differentiate between GetRecords and GetLogs in the generated HTTP mux, keeping the input field name same.
ListLogs request/response changed to print the whole log record (similar to ListRecords) -
🐛 Change the ClusterRoles for Logging (#317)
Added logs as resources in ClusterRole readonly, readwrite and admin. -
🐛 Fix insertion of child resources (#298)
All TaskRuns associated to a PipelineRun will be inserted properly into the Results API server. Before this, insertion was unstable. -
🐛 Fix isDone function, improve visibility as well as traceability and skip deleted keys (#294)
When configured to do so, Results will delete all completed objects regardless their status. -
🐛 Fix resource deletion and refactor watcher (#255)
If the completed_run_grace_period watcher flag is greater than 0, objects will be deleted upon completion once the configured grace period elapses. -
🐛 Fix the API server startup (#244)
Users will be able to install the API server from the code in the main branch. -
🐛 Read the parent name from the results annotation when it's set (#232)
When the result's name is set via the results.tekton.dev/result annotation, the watcher will use the parent defined in the annotation value rather than assuming the object's namespace as the parent. -
🐛 fix proto/v1alpha2 link (#210)
-
🐛 Fix Postgres permission issue (#193)
-
🐛 Full compare of data on a record update (#186)
Fix updatation of Record when Record's generation is equal to changed object's generation. -
🐛 Upgrade postgres to v1.3.4 (#185)
Previous postgres driver was throwing error:
panic: runtime error: invalid memory address or nil pointer dereference
-
🐛 fix(cli): fix flag parsing (#171)
-
🐛 fix(cli): fixes handling of flags (#156)
Misc
-
🔨 Add pull request template (#348)
-
🔨 Make sa token and certificates path configurable. (#283)
-
🔨 Organize Results Kustomization with Components (#341)
-
🔨 Fix the select statement to leverage the existing records_by_name index (#338)
-
🔨 Upgrade Gorm models and make database auto-migration optional (#334)
-
🔨 Remove watcher reconciler unittest (#316)
-
🔨 Bump Gorm and related dependencies (#310)
-
🔨 Enable the e2e (integration) tests (#287)
-
🔨 Fix api config location and e2e tests (#274)
-
🔨 Fix E2E tests deployment (#270)
-
🔨 deployment with restricted pod policy (#266)
-
🔨 Improve coverage of E2E tests (#253)
-
🔨 Vendoring and dependencies bump (#227)
-
🔨 Bump github.com/containerd/containerd from 1.6.14 to 1.6.18 (#357)
-
🔨 Bump golang.org/x/oauth2 from 0.3.0 to 0.5.0 (#350)
-
🔨 Add title to fix display of Results on docs landing page (#349)
-
🔨 Bump google.golang.org/grpc from 1.51.0 to 1.53.0 (#347)
-
🔨 Fixing the install script for mac M1 (#335)
-
🔨 Bump github.com/containerd/containerd from 1.5.13 to 1.5.16 (#327)
-
🔨 Bump google.golang.org/api from 0.103.0 to 0.108.0 (#324)
-
🔨 Add myself to the OWNERS file (#320)
-
🔨 Bump github.com/jonboulle/clockwork from 0.2.3 to 0.3.0 (#306)
-
🔨 Bump github.com/spf13/viper from 1.12.0 to 1.14.0 (#297)
-
🔨 Bump go.uber.org/zap from 1.22.0 to 1.24.0 (#288)
-
🔨 Bump go.uber.org/automaxprocs from 1.4.0 to 1.5.1 (#281)
-
🔨 Bump go.uber.org/zap from 1.22.0 to 1.24.0 (#279)
-
🔨 add s390x arch support (#264)
-
🔨 Bump github.com/prometheus/client_golang from 1.11.1 to 1.14.0 (#262)
-
🔨 fix misspelled word (#245)
-
🔨 Delete release.yaml (#236)
-
🔨 Add adambkaplan and vdemeester as Results owners (#226)
-
🔨 Bump google.golang.org/protobuf from 1.28.0 to 1.28.1 (#218)
-
🔨 Bump go.uber.org/zap from 1.19.1 to 1.22.0 (#215)
-
🔨 Remove wlynch from active reviewers. (#213)
-
🔨 Bump gorm.io/driver/sqlite from 1.1.4 to 1.3.6 (#205)
-
🔨 Bump gorm.io/driver/mysql from 1.0.3 to 1.3.3 (#178)
-
🔨 Bump gorm.io/driver/postgres from 1.1.0 to 1.3.3 (#177)
-
🔨 Bump google.golang.org/api from 0.60.0 to 0.74.0 (#175)
-
🔨 Bump github.com/jonboulle/clockwork from 0.2.2 to 0.2.3 (#174)
-
🔨 Bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#173)
-
🔨 Add dependabot config. (#168)
...