These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)
| Commit: | df570bb | |
|---|---|---|
| Author: | Aurelio Buarque | |
| Committer: | buarki | |
feat(controlplaneclient): let chained children inherit the parent's actor for sticky families (#8119) * feat(controlplaneclient): let chained children inherit the parent's actor for sticky families Today every chained execution is stamped as RunningContextType_EXECUTION, which the server maps to actor.type = testworkflow. That is the right default for regular composites but it does not survive a filter by the Quality Loop actor: the QL parent carries actor.type = gitintegration and the children it schedules end up as testworkflow, so filtering the Executions page by the parent's actor returns an empty list. This introduces a small sticky-actor family: when the parent's actor belongs to it (only QUALITYLOOP for now), the child inherits the parent's actor type instead of falling back to the EXECUTION default. Parent-chain walkers keep working because we extend the QUALITYLOOP mapper branch to populate actor.executionId / actor.executionPath from ParentExecutionIds the same way the EXECUTION branch does. Everything outside the sticky set (user-authored composites, cron/testtrigger/CR-scheduled runs) is byte-identical to today: the default injection path still stamps EXECUTION and the mapper still produces testworkflow. Telemetry buckets, Mixpanel dimensions, and downstream webhooks for non-QL flows are unaffected. * chore: reword sticky-actor comments to reference gitintegration instead of Quality Loop * refactor: move child-context decision onto the actor type via ChildRunningContextType method Reads better at the call site: instead of an external helper that returns (value, ok) and an if-branch to conditionally overwrite the default, the actor type answers directly what its chained children should carry. Injection funnel collapses to: Type: c.opts.ParentActorType.ChildRunningContextType() The default (RunningContextType_EXECUTION, mapped server-side to actor.type = testworkflow / the "Workflow" chip on the Executions page) lives inside the method along with the special cases, so extending it means editing one file next to the type itself. Tests moved from the controlplane client into the same package as the method for the same reason. * chore: drop verbose doc block on ChildRunningContextType * feat(runner): propagate parent RunningContext to child pods via GetExecutionWorkflow The runner builds ExecutionConfig for a scheduled pod from the ExecutionStart proto, which does not carry RunningContext. That leaves cfg.Execution.RunningContext nil in the toolkit; parentActorTypeFromRunningContext returns empty; the sticky family cannot see it's chained under a gitintegration parent and children fall back to actor.type=testworkflow. The runner already makes a follow-up GetExecutionWorkflow call for every ExecutionStart to fetch the enriched workflow. That response is documented as the vehicle for "any additional information that may be related" - the perfect place to attach the parent's actor identity without touching the ExecutionStart proto (which is used by many non-sticky paths). Adds a minimal ExecutionRunningContext projection (actor type + actor name) to GetExecutionWorkflowResponse, populates it server-side from the stored TWE, and reconstructs a TestWorkflowRunningContext on the runner side that parentActorTypeFromRunningContext can read unchanged. When the field is nil (older control planes, non-actor executions), behaviour matches today.
| Commit: | 29ea89d | |
|---|---|---|
| Author: | Aurelio Buarque | |
| Committer: | buarki | |
feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows (#8108) * feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows Adds a new value to the RunningContextType proto enum and to the TestWorkflowRunningContextActorType OpenAPI enum, plus the round-trip mapper cases between them. Downstream consumers (telemetry bucketer, CDEvents mapper) route the new actor into git-integration/event buckets. Kicks off the change needed on the cloud-api side to introduce a provider-agnostic "Git Integration" actor for Quality Loop executions (GitHub today, GitLab and Bitbucket without another proto bump). * fix: allow gitintegration actor in CRD schema and CLI validation * refactor: rename GITINTEGRATION actor to QUALITYLOOP for internal naming * refactor: keep proto RunningContextType_QUALITYLOOP but expose gitintegration to users Proto stays QUALITYLOOP internally per Ole's suggestion. OpenAPI actor type, CRD kubebuilder enum, CLI flag, and telemetry bucket surface as gitintegration so every customer-facing surface (REST API, kubectl testkube, helm charts, generated CRDs) speaks the provider-agnostic name. The mapper cross-translates between the two. * refactor: alias QUALITYLOOP for internal Go references, wire stays gitintegration Adds regen-safe alias files so Go code can reference testkube.QUALITYLOOP_TestWorkflowRunningContextActorType while the underlying wire value stays "gitintegration" for CLI, REST, CRDs, and helm charts. Consumers refactored to use the internal name; customer surfaces unchanged. * chore: fix goimports alignment
| Commit: | fd92a0e | |
|---|---|---|
| Author: | Vladislav Sukhin | |
Merge branch 'main' into vsukhin/feature/suite-step-exchange Conflict: pkg/cloud/service.pb.go. Both sides had regenerated it - main added scheduler_policy to ExecutionTarget, this branch added the artifact-read RPCs - and the conflicts fell inside the serialized rawDesc byte array, where merging by hand would leave a corrupt descriptor. proto/service.proto merged cleanly with both sides' additions, so the generated file was regenerated from it with the pinned toolchain (buf v1.68.1, proto/buf.gen.old.yaml, protoc-gen-go v1.32.0, grpc-go v1.2.0). Regeneration also rewrote pkg/logs/pb/* and pkg/cloud/service_grpc.pb.go identically to what was already committed, which is the check that the toolchain matches; those were restored to avoid line-ending-only noise. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
| Commit: | 4c2c672 | |
|---|---|---|
| Author: | Caio Medeiros Pinto | |
| Committer: | GitHub | |
chore: pre-release 2.12.2 (#8148) * fix: create builtin testworkflow templates via post-install hook job (#7988) * fix: create builtin testworkflow templates via post-install hook job * update docs * update kubectl image * fix docs * fix docs * feat: add support for matchexpressions (#8038) * add support for matchexpressions * print an error * fix a typo * correct ident * feat(TKC-6504): rework init demo for new architecture (#8090) * feat(TKC-6504): rework init demo for new architecture * fix: make init demo re-install idempotent (reuse agent key) * feat(TKC-6504): Add warn message (#8118) * feat(TKC-6504): Add warn message * fix: lint * fix: missing model and test * fix: remediate CVE-2026-56865 (#8121) * fix: remediate CVE-2026-56865 * chore: upgrade helm database dependencies * fix: update chart.lock * chore: go mod tidy * feat: add scheduler policy to targeted execution contracts (#8109) * feat: add targeted execution scheduler policy * fix(deps): update module github.com/gofiber/fiber/v2 to v2.52.15 (#8099) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module github.com/nats-io/nats-server/v2 to v2.14.5 (#8100) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nats docker tag to v2.14.5 (#8101) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update golang docker tag to v1.26.6 (#8103) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix: support multiple kubeconfig files in KUBECONFIG env var (#8102) * fix: support multiple kubeconfig files in KUBECONFIG env var GetK8sClientConfig passed the whole KUBECONFIG value to BuildConfigFromFlags as a single file path, so a colon-separated list (semicolon on Windows) failed with a stat error like 'stat /a/config:/b/config: no such file or directory'. Split the value with filepath.SplitList and load it through clientcmd's loading rules, which merge the files with kubectl's own precedence semantics: the first file's current-context wins, and entries defined in later files remain reachable. Fixes #657 * fix: treat empty KUBECONFIG env var as unset A set-but-empty KUBECONFIG previously fell through to the default loading behavior; splitting the empty string produced no loading rules and errored instead. Skip the env branch when the value is empty so it falls back to ~/.kube/config or in-cluster config as before. * fix: replace App Engine logger with testkube logger in k8sclient (#8106) pkg/k8sclient imported google.golang.org/appengine/v2/log for a single error log in the port-forward helper, pulling the App Engine SDK into the CLI and agent for no benefit and diverging from the zap-based logger used across the codebase. Use pkg/log's DefaultLogger instead. Fixes #8105 * chore(deps): update postgres docker tag to v16.15 (#8104) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * feat(TKC-6504): rework init demo for new architecture (#8090) * feat(TKC-6504): rework init demo for new architecture * fix: make init demo re-install idempotent (reuse agent key) * chore(deps): update dependency microsoft.net.test.sdk to 18.9.0 (#8107) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency turbo to v2.10.10 (#8110) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency xunit.runner.visualstudio to v4 (#8113) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module github.com/minio/minio-go/v7 to v7.3.0 (#8114) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: bump cloud-ui-e2e Playwright image to v1.62.1 (#8115) * fix(deps): update module github.com/adhocore/gronx to v1.20.3 (#8116) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module github.com/stretchr/testify to v1.12.0 (#8117) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * feat: add ability to rerun with latest workflow (#8097) * fix: make install.sh POSIX sh compatible and verify release checksums (#7917) * fix: make install.sh POSIX sh compatible and verify release checksums The documented install command pipes the script to `sh`, which is dash on Debian/Ubuntu, but the script relied on bash-only constructs ([[ ]], =~, set -o pipefail) and failed there. Also removes dead code paths (i386 assets are no longer published, the Windows uname case never matched, beta tag-name grep matched nothing since the v1.17 era), fails clearly when the version cannot be resolved instead of silently substituting "1", verifies the tarball against the release's checksums.txt, and downloads into a mktemp workdir with cleanup instead of the caller's directory. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: address review comments — add -L to API curls, exact-match checksum lookup Adds -L to the GitHub API curl calls for consistency with the tarball and checksums downloads, and replaces the grep regex lookup in checksums.txt with an exact awk field match since the tarball name contains dots that grep treats as wildcards. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> * feat(TKC-6504): Add warn message (#8118) * feat(TKC-6504): Add warn message * fix: lint * feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows (#8108) * feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows Adds a new value to the RunningContextType proto enum and to the TestWorkflowRunningContextActorType OpenAPI enum, plus the round-trip mapper cases between them. Downstream consumers (telemetry bucketer, CDEvents mapper) route the new actor into git-integration/event buckets. Kicks off the change needed on the cloud-api side to introduce a provider-agnostic "Git Integration" actor for Quality Loop executions (GitHub today, GitLab and Bitbucket without another proto bump). * fix: allow gitintegration actor in CRD schema and CLI validation * refactor: rename GITINTEGRATION actor to QUALITYLOOP for internal naming * refactor: keep proto RunningContextType_QUALITYLOOP but expose gitintegration to users Proto stays QUALITYLOOP internally per Ole's suggestion. OpenAPI actor type, CRD kubebuilder enum, CLI flag, and telemetry bucket surface as gitintegration so every customer-facing surface (REST API, kubectl testkube, helm charts, generated CRDs) speaks the provider-agnostic name. The mapper cross-translates between the two. * refactor: alias QUALITYLOOP for internal Go references, wire stays gitintegration Adds regen-safe alias files so Go code can reference testkube.QUALITYLOOP_TestWorkflowRunningContextActorType while the underlying wire value stays "gitintegration" for CLI, REST, CRDs, and helm charts. Consumers refactored to use the internal name; customer surfaces unchanged. * chore: fix goimports alignment * feat(controlplaneclient): let chained children inherit the parent's actor for sticky families (#8119) * feat(controlplaneclient): let chained children inherit the parent's actor for sticky families Today every chained execution is stamped as RunningContextType_EXECUTION, which the server maps to actor.type = testworkflow. That is the right default for regular composites but it does not survive a filter by the Quality Loop actor: the QL parent carries actor.type = gitintegration and the children it schedules end up as testworkflow, so filtering the Executions page by the parent's actor returns an empty list. This introduces a small sticky-actor family: when the parent's actor belongs to it (only QUALITYLOOP for now), the child inherits the parent's actor type instead of falling back to the EXECUTION default. Parent-chain walkers keep working because we extend the QUALITYLOOP mapper branch to populate actor.executionId / actor.executionPath from ParentExecutionIds the same way the EXECUTION branch does. Everything outside the sticky set (user-authored composites, cron/testtrigger/CR-scheduled runs) is byte-identical to today: the default injection path still stamps EXECUTION and the mapper still produces testworkflow. Telemetry buckets, Mixpanel dimensions, and downstream webhooks for non-QL flows are unaffected. * chore: reword sticky-actor comments to reference gitintegration instead of Quality Loop * refactor: move child-context decision onto the actor type via ChildRunningContextType method Reads better at the call site: instead of an external helper that returns (value, ok) and an if-branch to conditionally overwrite the default, the actor type answers directly what its chained children should carry. Injection funnel collapses to: Type: c.opts.ParentActorType.ChildRunningContextType() The default (RunningContextType_EXECUTION, mapped server-side to actor.type = testworkflow / the "Workflow" chip on the Executions page) lives inside the method along with the special cases, so extending it means editing one file next to the type itself. Tests moved from the controlplane client into the same package as the method for the same reason. * chore: drop verbose doc block on ChildRunningContextType * feat(runner): propagate parent RunningContext to child pods via GetExecutionWorkflow The runner builds ExecutionConfig for a scheduled pod from the ExecutionStart proto, which does not carry RunningContext. That leaves cfg.Execution.RunningContext nil in the toolkit; parentActorTypeFromRunningContext returns empty; the sticky family cannot see it's chained under a gitintegration parent and children fall back to actor.type=testworkflow. The runner already makes a follow-up GetExecutionWorkflow call for every ExecutionStart to fetch the enriched workflow. That response is documented as the vehicle for "any additional information that may be related" - the perfect place to attach the parent's actor identity without touching the ExecutionStart proto (which is used by many non-sticky paths). Adds a minimal ExecutionRunningContext projection (actor type + actor name) to GetExecutionWorkflowResponse, populates it server-side from the stored TWE, and reconstructs a TestWorkflowRunningContext on the runner side that parentActorTypeFromRunningContext can read unchanged. When the field is nil (older control planes, non-actor executions), behaviour matches today. * chore(deps): update dependency turbo to v2.10.11 (#8122) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update mongodb docker tag to v8.3.8 (#8123) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update postgresql docker tag to v18.6 (#8124) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update docker.io/kubeshop/testkube-postgres docker tag to v18.6 (#8127) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update docker.io/kubeshop/bitnami-mongodb docker tag to v8.3.8 (#8126) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update natsio/nats-server-config-reloader docker tag to v0.24.0 (#8129) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * feat: extend git content spec with verbosity and retry configuration (#8089) * feat: model update for git content spec * chore: run auto generated for new testworkflows * feat: add verbosity and retry to git content types * chore: run auto generation for CRDs * chore: add git content updates to mappers + MCP schemas * feat: process git verbosity + retry logic * chore: restore extraneous change to test triggers * fix: cap retries and parsing around duration * feat: [TKC-6541] E2E tests workflow - UI build+serve with service, GH-integration-related changes (#8134) * tests - cloud-ui-e2e workflow for ui build using service * E2E tests - workflow updated to support GH integration * E2E tests - distributed reanabled * fix(quality-loop): mask parent workflow name on child running context (#8136) * fix: remediate CVE-2026-56865 (#8121) * fix: remediate CVE-2026-56865 * chore: upgrade helm database dependencies * fix: update chart.lock * chore(deps): update dependency @changesets/cli to v3.0.1 (#8130) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update module github.com/mikefarah/yq/v4 to v4.53.4 (#8131) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix: go mod Signed-off-by: Vladislav Sukhin <vladislav@kubeshop.io> * Revert "fix: go mod" This reverts commit 2a833c16d7c8cced5473d6fc0941d10c14521383. * Revert "chore(deps): update module github.com/mikefarah/yq/v4 to v4.53.4 (#8131)" This reverts commit 5f4adc9072efb6b5426dbd44d8f4790b9aecaad2. * chore(deps): update docker/setup-buildx-action action to v4.3.0 (#8133) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module google.golang.org/grpc to v1.83.1 (#8132) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module github.com/stretchr/testify to v1.12.1 (#8137) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update go toolchain directive to v1.27.0 (#8138) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update natsio/prometheus-nats-exporter docker tag to v0.20.2 (#8140) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency inquirer to v14.1.0 (#8141) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: regenerate * chore: regenerate * chore(deps): update module github.com/mikefarah/yq/v4 to v4.53.4 (#8131) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix: go mod Signed-off-by: Vladislav Sukhin <vladislav@kubeshop.io> * Revert "fix: go mod" This reverts commit 2a833c16d7c8cced5473d6fc0941d10c14521383. * Revert "chore(deps): update module github.com/mikefarah/yq/v4 to v4.53.4 (#8131)" This reverts commit 5f4adc9072efb6b5426dbd44d8f4790b9aecaad2. * chore: fix golang version * fix: remove unrelated generated model changes --------- Signed-off-by: Vladislav Sukhin <vladislav@kubeshop.io> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: gangadhar-res <gangadhar@resolve.ai> Co-authored-by: Valentin-Marko <69463262+Valentin-Marko@users.noreply.github.com> Co-authored-by: Razvan Topliceanu <47887589+topliceanurazvan@users.noreply.github.com> Co-authored-by: Tristan Rasmussen <tristan@testkube.io> Co-authored-by: Ole Lensmar <ole@lensmar.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Aurelio Buarque <aurelio@testkube.io> Co-authored-by: Tomasz Konieczny <tomasz.konieczny@kubeshop.io> Co-authored-by: Vladislav Sukhin <vladislav@kubeshop.io> * chore: go mod tidy --------- Signed-off-by: Vladislav Sukhin <vladislav@kubeshop.io> Co-authored-by: ypoplavs <45286051+ypoplavs@users.noreply.github.com> Co-authored-by: Valentin-Marko <69463262+Valentin-Marko@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: gangadhar-res <gangadhar@resolve.ai> Co-authored-by: Razvan Topliceanu <47887589+topliceanurazvan@users.noreply.github.com> Co-authored-by: Tristan Rasmussen <tristan@testkube.io> Co-authored-by: Ole Lensmar <ole@lensmar.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Aurelio Buarque <aurelio@testkube.io> Co-authored-by: Tomasz Konieczny <tomasz.konieczny@kubeshop.io> Co-authored-by: Vladislav Sukhin <vladislav@kubeshop.io>
| Commit: | 679cd69 | |
|---|---|---|
| Author: | Caio Medeiros Pinto | |
| Committer: | GitHub | |
feat: add scheduler policy to targeted execution contracts (#8109) * feat: add targeted execution scheduler policy * fix(deps): update module github.com/gofiber/fiber/v2 to v2.52.15 (#8099) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module github.com/nats-io/nats-server/v2 to v2.14.5 (#8100) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nats docker tag to v2.14.5 (#8101) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update golang docker tag to v1.26.6 (#8103) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix: support multiple kubeconfig files in KUBECONFIG env var (#8102) * fix: support multiple kubeconfig files in KUBECONFIG env var GetK8sClientConfig passed the whole KUBECONFIG value to BuildConfigFromFlags as a single file path, so a colon-separated list (semicolon on Windows) failed with a stat error like 'stat /a/config:/b/config: no such file or directory'. Split the value with filepath.SplitList and load it through clientcmd's loading rules, which merge the files with kubectl's own precedence semantics: the first file's current-context wins, and entries defined in later files remain reachable. Fixes #657 * fix: treat empty KUBECONFIG env var as unset A set-but-empty KUBECONFIG previously fell through to the default loading behavior; splitting the empty string produced no loading rules and errored instead. Skip the env branch when the value is empty so it falls back to ~/.kube/config or in-cluster config as before. * fix: replace App Engine logger with testkube logger in k8sclient (#8106) pkg/k8sclient imported google.golang.org/appengine/v2/log for a single error log in the port-forward helper, pulling the App Engine SDK into the CLI and agent for no benefit and diverging from the zap-based logger used across the codebase. Use pkg/log's DefaultLogger instead. Fixes #8105 * chore(deps): update postgres docker tag to v16.15 (#8104) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * feat(TKC-6504): rework init demo for new architecture (#8090) * feat(TKC-6504): rework init demo for new architecture * fix: make init demo re-install idempotent (reuse agent key) * chore(deps): update dependency microsoft.net.test.sdk to 18.9.0 (#8107) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency turbo to v2.10.10 (#8110) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency xunit.runner.visualstudio to v4 (#8113) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module github.com/minio/minio-go/v7 to v7.3.0 (#8114) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: bump cloud-ui-e2e Playwright image to v1.62.1 (#8115) * fix(deps): update module github.com/adhocore/gronx to v1.20.3 (#8116) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module github.com/stretchr/testify to v1.12.0 (#8117) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * feat: add ability to rerun with latest workflow (#8097) * fix: make install.sh POSIX sh compatible and verify release checksums (#7917) * fix: make install.sh POSIX sh compatible and verify release checksums The documented install command pipes the script to `sh`, which is dash on Debian/Ubuntu, but the script relied on bash-only constructs ([[ ]], =~, set -o pipefail) and failed there. Also removes dead code paths (i386 assets are no longer published, the Windows uname case never matched, beta tag-name grep matched nothing since the v1.17 era), fails clearly when the version cannot be resolved instead of silently substituting "1", verifies the tarball against the release's checksums.txt, and downloads into a mktemp workdir with cleanup instead of the caller's directory. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: address review comments — add -L to API curls, exact-match checksum lookup Adds -L to the GitHub API curl calls for consistency with the tarball and checksums downloads, and replaces the grep regex lookup in checksums.txt with an exact awk field match since the tarball name contains dots that grep treats as wildcards. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> * feat(TKC-6504): Add warn message (#8118) * feat(TKC-6504): Add warn message * fix: lint * feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows (#8108) * feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows Adds a new value to the RunningContextType proto enum and to the TestWorkflowRunningContextActorType OpenAPI enum, plus the round-trip mapper cases between them. Downstream consumers (telemetry bucketer, CDEvents mapper) route the new actor into git-integration/event buckets. Kicks off the change needed on the cloud-api side to introduce a provider-agnostic "Git Integration" actor for Quality Loop executions (GitHub today, GitLab and Bitbucket without another proto bump). * fix: allow gitintegration actor in CRD schema and CLI validation * refactor: rename GITINTEGRATION actor to QUALITYLOOP for internal naming * refactor: keep proto RunningContextType_QUALITYLOOP but expose gitintegration to users Proto stays QUALITYLOOP internally per Ole's suggestion. OpenAPI actor type, CRD kubebuilder enum, CLI flag, and telemetry bucket surface as gitintegration so every customer-facing surface (REST API, kubectl testkube, helm charts, generated CRDs) speaks the provider-agnostic name. The mapper cross-translates between the two. * refactor: alias QUALITYLOOP for internal Go references, wire stays gitintegration Adds regen-safe alias files so Go code can reference testkube.QUALITYLOOP_TestWorkflowRunningContextActorType while the underlying wire value stays "gitintegration" for CLI, REST, CRDs, and helm charts. Consumers refactored to use the internal name; customer surfaces unchanged. * chore: fix goimports alignment * feat(controlplaneclient): let chained children inherit the parent's actor for sticky families (#8119) * feat(controlplaneclient): let chained children inherit the parent's actor for sticky families Today every chained execution is stamped as RunningContextType_EXECUTION, which the server maps to actor.type = testworkflow. That is the right default for regular composites but it does not survive a filter by the Quality Loop actor: the QL parent carries actor.type = gitintegration and the children it schedules end up as testworkflow, so filtering the Executions page by the parent's actor returns an empty list. This introduces a small sticky-actor family: when the parent's actor belongs to it (only QUALITYLOOP for now), the child inherits the parent's actor type instead of falling back to the EXECUTION default. Parent-chain walkers keep working because we extend the QUALITYLOOP mapper branch to populate actor.executionId / actor.executionPath from ParentExecutionIds the same way the EXECUTION branch does. Everything outside the sticky set (user-authored composites, cron/testtrigger/CR-scheduled runs) is byte-identical to today: the default injection path still stamps EXECUTION and the mapper still produces testworkflow. Telemetry buckets, Mixpanel dimensions, and downstream webhooks for non-QL flows are unaffected. * chore: reword sticky-actor comments to reference gitintegration instead of Quality Loop * refactor: move child-context decision onto the actor type via ChildRunningContextType method Reads better at the call site: instead of an external helper that returns (value, ok) and an if-branch to conditionally overwrite the default, the actor type answers directly what its chained children should carry. Injection funnel collapses to: Type: c.opts.ParentActorType.ChildRunningContextType() The default (RunningContextType_EXECUTION, mapped server-side to actor.type = testworkflow / the "Workflow" chip on the Executions page) lives inside the method along with the special cases, so extending it means editing one file next to the type itself. Tests moved from the controlplane client into the same package as the method for the same reason. * chore: drop verbose doc block on ChildRunningContextType * feat(runner): propagate parent RunningContext to child pods via GetExecutionWorkflow The runner builds ExecutionConfig for a scheduled pod from the ExecutionStart proto, which does not carry RunningContext. That leaves cfg.Execution.RunningContext nil in the toolkit; parentActorTypeFromRunningContext returns empty; the sticky family cannot see it's chained under a gitintegration parent and children fall back to actor.type=testworkflow. The runner already makes a follow-up GetExecutionWorkflow call for every ExecutionStart to fetch the enriched workflow. That response is documented as the vehicle for "any additional information that may be related" - the perfect place to attach the parent's actor identity without touching the ExecutionStart proto (which is used by many non-sticky paths). Adds a minimal ExecutionRunningContext projection (actor type + actor name) to GetExecutionWorkflowResponse, populates it server-side from the stored TWE, and reconstructs a TestWorkflowRunningContext on the runner side that parentActorTypeFromRunningContext can read unchanged. When the field is nil (older control planes, non-actor executions), behaviour matches today. * chore(deps): update dependency turbo to v2.10.11 (#8122) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update mongodb docker tag to v8.3.8 (#8123) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update postgresql docker tag to v18.6 (#8124) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update docker.io/kubeshop/testkube-postgres docker tag to v18.6 (#8127) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update docker.io/kubeshop/bitnami-mongodb docker tag to v8.3.8 (#8126) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update natsio/nats-server-config-reloader docker tag to v0.24.0 (#8129) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * feat: extend git content spec with verbosity and retry configuration (#8089) * feat: model update for git content spec * chore: run auto generated for new testworkflows * feat: add verbosity and retry to git content types * chore: run auto generation for CRDs * chore: add git content updates to mappers + MCP schemas * feat: process git verbosity + retry logic * chore: restore extraneous change to test triggers * fix: cap retries and parsing around duration * feat: [TKC-6541] E2E tests workflow - UI build+serve with service, GH-integration-related changes (#8134) * tests - cloud-ui-e2e workflow for ui build using service * E2E tests - workflow updated to support GH integration * E2E tests - distributed reanabled * fix(quality-loop): mask parent workflow name on child running context (#8136) * fix: remediate CVE-2026-56865 (#8121) * fix: remediate CVE-2026-56865 * chore: upgrade helm database dependencies * fix: update chart.lock * chore(deps): update dependency @changesets/cli to v3.0.1 (#8130) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update module github.com/mikefarah/yq/v4 to v4.53.4 (#8131) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix: go mod Signed-off-by: Vladislav Sukhin <vladislav@kubeshop.io> * Revert "fix: go mod" This reverts commit 2a833c16d7c8cced5473d6fc0941d10c14521383. * Revert "chore(deps): update module github.com/mikefarah/yq/v4 to v4.53.4 (#8131)" This reverts commit 5f4adc9072efb6b5426dbd44d8f4790b9aecaad2. * chore(deps): update docker/setup-buildx-action action to v4.3.0 (#8133) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module google.golang.org/grpc to v1.83.1 (#8132) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update module github.com/stretchr/testify to v1.12.1 (#8137) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update go toolchain directive to v1.27.0 (#8138) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update natsio/prometheus-nats-exporter docker tag to v0.20.2 (#8140) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency inquirer to v14.1.0 (#8141) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: regenerate * chore: regenerate * chore(deps): update module github.com/mikefarah/yq/v4 to v4.53.4 (#8131) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix: go mod Signed-off-by: Vladislav Sukhin <vladislav@kubeshop.io> * Revert "fix: go mod" This reverts commit 2a833c16d7c8cced5473d6fc0941d10c14521383. * Revert "chore(deps): update module github.com/mikefarah/yq/v4 to v4.53.4 (#8131)" This reverts commit 5f4adc9072efb6b5426dbd44d8f4790b9aecaad2. * chore: fix golang version * fix: remove unrelated generated model changes --------- Signed-off-by: Vladislav Sukhin <vladislav@kubeshop.io> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: gangadhar-res <gangadhar@resolve.ai> Co-authored-by: Valentin-Marko <69463262+Valentin-Marko@users.noreply.github.com> Co-authored-by: Razvan Topliceanu <47887589+topliceanurazvan@users.noreply.github.com> Co-authored-by: Tristan Rasmussen <tristan@testkube.io> Co-authored-by: Ole Lensmar <ole@lensmar.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Aurelio Buarque <aurelio@testkube.io> Co-authored-by: Tomasz Konieczny <tomasz.konieczny@kubeshop.io> Co-authored-by: Vladislav Sukhin <vladislav@kubeshop.io>
| Commit: | c487c04 | |
|---|---|---|
| Author: | Vladislav Sukhin | |
Merge branch 'main' into vsukhin/feature/suite-step-exchange Signed-off-by: Vladislav Sukhin <vladislav@kubeshop.io> # Conflicts: # pkg/cloud/service.pb.go
| Commit: | 58eebbc | |
|---|---|---|
| Author: | Aurelio Buarque | |
| Committer: | Caio Medeiros Pinto | |
feat(controlplaneclient): let chained children inherit the parent's actor for sticky families (#8119) * feat(controlplaneclient): let chained children inherit the parent's actor for sticky families Today every chained execution is stamped as RunningContextType_EXECUTION, which the server maps to actor.type = testworkflow. That is the right default for regular composites but it does not survive a filter by the Quality Loop actor: the QL parent carries actor.type = gitintegration and the children it schedules end up as testworkflow, so filtering the Executions page by the parent's actor returns an empty list. This introduces a small sticky-actor family: when the parent's actor belongs to it (only QUALITYLOOP for now), the child inherits the parent's actor type instead of falling back to the EXECUTION default. Parent-chain walkers keep working because we extend the QUALITYLOOP mapper branch to populate actor.executionId / actor.executionPath from ParentExecutionIds the same way the EXECUTION branch does. Everything outside the sticky set (user-authored composites, cron/testtrigger/CR-scheduled runs) is byte-identical to today: the default injection path still stamps EXECUTION and the mapper still produces testworkflow. Telemetry buckets, Mixpanel dimensions, and downstream webhooks for non-QL flows are unaffected. * chore: reword sticky-actor comments to reference gitintegration instead of Quality Loop * refactor: move child-context decision onto the actor type via ChildRunningContextType method Reads better at the call site: instead of an external helper that returns (value, ok) and an if-branch to conditionally overwrite the default, the actor type answers directly what its chained children should carry. Injection funnel collapses to: Type: c.opts.ParentActorType.ChildRunningContextType() The default (RunningContextType_EXECUTION, mapped server-side to actor.type = testworkflow / the "Workflow" chip on the Executions page) lives inside the method along with the special cases, so extending it means editing one file next to the type itself. Tests moved from the controlplane client into the same package as the method for the same reason. * chore: drop verbose doc block on ChildRunningContextType * feat(runner): propagate parent RunningContext to child pods via GetExecutionWorkflow The runner builds ExecutionConfig for a scheduled pod from the ExecutionStart proto, which does not carry RunningContext. That leaves cfg.Execution.RunningContext nil in the toolkit; parentActorTypeFromRunningContext returns empty; the sticky family cannot see it's chained under a gitintegration parent and children fall back to actor.type=testworkflow. The runner already makes a follow-up GetExecutionWorkflow call for every ExecutionStart to fetch the enriched workflow. That response is documented as the vehicle for "any additional information that may be related" - the perfect place to attach the parent's actor identity without touching the ExecutionStart proto (which is used by many non-sticky paths). Adds a minimal ExecutionRunningContext projection (actor type + actor name) to GetExecutionWorkflowResponse, populates it server-side from the stored TWE, and reconstructs a TestWorkflowRunningContext on the runner side that parentActorTypeFromRunningContext can read unchanged. When the field is nil (older control planes, non-actor executions), behaviour matches today.
| Commit: | ec2df28 | |
|---|---|---|
| Author: | Aurelio Buarque | |
| Committer: | Caio Medeiros Pinto | |
feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows (#8108) * feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows Adds a new value to the RunningContextType proto enum and to the TestWorkflowRunningContextActorType OpenAPI enum, plus the round-trip mapper cases between them. Downstream consumers (telemetry bucketer, CDEvents mapper) route the new actor into git-integration/event buckets. Kicks off the change needed on the cloud-api side to introduce a provider-agnostic "Git Integration" actor for Quality Loop executions (GitHub today, GitLab and Bitbucket without another proto bump). * fix: allow gitintegration actor in CRD schema and CLI validation * refactor: rename GITINTEGRATION actor to QUALITYLOOP for internal naming * refactor: keep proto RunningContextType_QUALITYLOOP but expose gitintegration to users Proto stays QUALITYLOOP internally per Ole's suggestion. OpenAPI actor type, CRD kubebuilder enum, CLI flag, and telemetry bucket surface as gitintegration so every customer-facing surface (REST API, kubectl testkube, helm charts, generated CRDs) speaks the provider-agnostic name. The mapper cross-translates between the two. * refactor: alias QUALITYLOOP for internal Go references, wire stays gitintegration Adds regen-safe alias files so Go code can reference testkube.QUALITYLOOP_TestWorkflowRunningContextActorType while the underlying wire value stays "gitintegration" for CLI, REST, CRDs, and helm charts. Consumers refactored to use the internal name; customer surfaces unchanged. * chore: fix goimports alignment
| Commit: | 3b00607 | |
|---|---|---|
| Author: | Aurelio Buarque | |
| Committer: | GitHub | |
feat(controlplaneclient): let chained children inherit the parent's actor for sticky families (#8119) * feat(controlplaneclient): let chained children inherit the parent's actor for sticky families Today every chained execution is stamped as RunningContextType_EXECUTION, which the server maps to actor.type = testworkflow. That is the right default for regular composites but it does not survive a filter by the Quality Loop actor: the QL parent carries actor.type = gitintegration and the children it schedules end up as testworkflow, so filtering the Executions page by the parent's actor returns an empty list. This introduces a small sticky-actor family: when the parent's actor belongs to it (only QUALITYLOOP for now), the child inherits the parent's actor type instead of falling back to the EXECUTION default. Parent-chain walkers keep working because we extend the QUALITYLOOP mapper branch to populate actor.executionId / actor.executionPath from ParentExecutionIds the same way the EXECUTION branch does. Everything outside the sticky set (user-authored composites, cron/testtrigger/CR-scheduled runs) is byte-identical to today: the default injection path still stamps EXECUTION and the mapper still produces testworkflow. Telemetry buckets, Mixpanel dimensions, and downstream webhooks for non-QL flows are unaffected. * chore: reword sticky-actor comments to reference gitintegration instead of Quality Loop * refactor: move child-context decision onto the actor type via ChildRunningContextType method Reads better at the call site: instead of an external helper that returns (value, ok) and an if-branch to conditionally overwrite the default, the actor type answers directly what its chained children should carry. Injection funnel collapses to: Type: c.opts.ParentActorType.ChildRunningContextType() The default (RunningContextType_EXECUTION, mapped server-side to actor.type = testworkflow / the "Workflow" chip on the Executions page) lives inside the method along with the special cases, so extending it means editing one file next to the type itself. Tests moved from the controlplane client into the same package as the method for the same reason. * chore: drop verbose doc block on ChildRunningContextType * feat(runner): propagate parent RunningContext to child pods via GetExecutionWorkflow The runner builds ExecutionConfig for a scheduled pod from the ExecutionStart proto, which does not carry RunningContext. That leaves cfg.Execution.RunningContext nil in the toolkit; parentActorTypeFromRunningContext returns empty; the sticky family cannot see it's chained under a gitintegration parent and children fall back to actor.type=testworkflow. The runner already makes a follow-up GetExecutionWorkflow call for every ExecutionStart to fetch the enriched workflow. That response is documented as the vehicle for "any additional information that may be related" - the perfect place to attach the parent's actor identity without touching the ExecutionStart proto (which is used by many non-sticky paths). Adds a minimal ExecutionRunningContext projection (actor type + actor name) to GetExecutionWorkflowResponse, populates it server-side from the stored TWE, and reconstructs a TestWorkflowRunningContext on the runner side that parentActorTypeFromRunningContext can read unchanged. When the field is nil (older control planes, non-actor executions), behaviour matches today.
| Commit: | 0999968 | |
|---|---|---|
| Author: | Aurelio Buarque | |
| Committer: | GitHub | |
feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows (#8108) * feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows Adds a new value to the RunningContextType proto enum and to the TestWorkflowRunningContextActorType OpenAPI enum, plus the round-trip mapper cases between them. Downstream consumers (telemetry bucketer, CDEvents mapper) route the new actor into git-integration/event buckets. Kicks off the change needed on the cloud-api side to introduce a provider-agnostic "Git Integration" actor for Quality Loop executions (GitHub today, GitLab and Bitbucket without another proto bump). * fix: allow gitintegration actor in CRD schema and CLI validation * refactor: rename GITINTEGRATION actor to QUALITYLOOP for internal naming * refactor: keep proto RunningContextType_QUALITYLOOP but expose gitintegration to users Proto stays QUALITYLOOP internally per Ole's suggestion. OpenAPI actor type, CRD kubebuilder enum, CLI flag, and telemetry bucket surface as gitintegration so every customer-facing surface (REST API, kubectl testkube, helm charts, generated CRDs) speaks the provider-agnostic name. The mapper cross-translates between the two. * refactor: alias QUALITYLOOP for internal Go references, wire stays gitintegration Adds regen-safe alias files so Go code can reference testkube.QUALITYLOOP_TestWorkflowRunningContextActorType while the underlying wire value stays "gitintegration" for CLI, REST, CRDs, and helm charts. Consumers refactored to use the internal name; customer surfaces unchanged. * chore: fix goimports alignment
| Commit: | ca19e44 | |
|---|---|---|
| Author: | buarki | |
feat(runner): propagate parent RunningContext to child pods via GetExecutionWorkflow The runner builds ExecutionConfig for a scheduled pod from the ExecutionStart proto, which does not carry RunningContext. That leaves cfg.Execution.RunningContext nil in the toolkit; parentActorTypeFromRunningContext returns empty; the sticky family cannot see it's chained under a gitintegration parent and children fall back to actor.type=testworkflow. The runner already makes a follow-up GetExecutionWorkflow call for every ExecutionStart to fetch the enriched workflow. That response is documented as the vehicle for "any additional information that may be related" - the perfect place to attach the parent's actor identity without touching the ExecutionStart proto (which is used by many non-sticky paths). Adds a minimal ExecutionRunningContext projection (actor type + actor name) to GetExecutionWorkflowResponse, populates it server-side from the stored TWE, and reconstructs a TestWorkflowRunningContext on the runner side that parentActorTypeFromRunningContext can read unchanged. When the field is nil (older control planes, non-actor executions), behaviour matches today.
| Commit: | 07c820a | |
|---|---|---|
| Author: | buarki | |
refactor: rename GITINTEGRATION actor to QUALITYLOOP for internal naming
| Commit: | eab10df | |
|---|---|---|
| Author: | buarki | |
feat(proto): add GITINTEGRATION actor type for git-provider-triggered flows Adds a new value to the RunningContextType proto enum and to the TestWorkflowRunningContextActorType OpenAPI enum, plus the round-trip mapper cases between them. Downstream consumers (telemetry bucketer, CDEvents mapper) route the new actor into git-integration/event buckets. Kicks off the change needed on the cloud-api side to introduce a provider-agnostic "Git Integration" actor for Quality Loop executions (GitHub today, GitLab and Bitbucket without another proto bump).
| Commit: | 8c19375 | |
|---|---|---|
| Author: | Caio Medeiros Pinto | |
| Committer: | Caio Medeiros Pinto | |
feat: add targeted execution scheduler policy
| Commit: | 11b7054 | |
|---|---|---|
| Author: | Vladislav Sukhin | |
feat: exchange data between test workflows run as a suite Workflows composed into a suite through `execute.workflows` could not pass anything back to the parent: the toolkit polled the child execution and threw away everything but the status. Values and files had to travel through external state. A child now publishes with the same mechanism steps already use - writing to /testkube/outputs - and the parent reads it back with the execution() expression: execute: workflows: - name: producer as: p fetch: - paths: ['results/**'] to: /data/from-producer ... shell: echo '{{ execution("p").outputs.token }}' The same function resolves "parent" from the execution ancestry, so a child can read what scheduled it, and sibling exchange falls out of feeding one child's output into the next child's config. - step outputs are promoted to the execution record, so they cross the pod - pkg/executiondata owns the registry, the expression functions and the artifact transfer, modelled on the existing credential() machine - `as` gives an entry a stable reference; two entries claiming the same one is an error rather than an ambiguous winner - execute specs are finalized when their operation starts, not up-front, so a later entry can read an earlier one - read_artifact() returns small files inline (1 MiB cap); `fetch` writes larger payloads to disk Files need read access to artifact storage, which the control plane did not grant: ListExecutionArtifactsPresigned is new in proto/service.proto and implemented for OSS. The Enterprise control plane needs the same RPC before read_artifact() and fetch work there; values work everywhere today. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
| Commit: | ab67752 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
fix: start cluster-inventory CRD watcher only on listener-capable agents
| Commit: | a382d48 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
feat(triggers): schema-aware match conditions (#7566) * feat(agent): add GET /v1/cluster-resources for UI autodiscovery * feat(proto): AgentInventoryService with PutClusterResources * feat(triggers): schema-aware match conditions WIP * fix(triggers): propagate listenerAgentIds through mappers/scraper, release informers by old GVK on unpin, gzip inventory push, validate change-operators on empty event * feat(triggers): pin listeners via a Target selector (listener.match.id) instead of listenerAgentIds * refactor(triggers): extract ValidateMatchConditions with typed reason codes so cp-api can reuse match validation
| Commit: | 0ed76c5 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | GitHub | |
feat(triggers): schema-aware match conditions (#7566) * feat(agent): add GET /v1/cluster-resources for UI autodiscovery * feat(proto): AgentInventoryService with PutClusterResources * feat(triggers): schema-aware match conditions WIP * fix(triggers): propagate listenerAgentIds through mappers/scraper, release informers by old GVK on unpin, gzip inventory push, validate change-operators on empty event * feat(triggers): pin listeners via a Target selector (listener.match.id) instead of listenerAgentIds * refactor(triggers): extract ValidateMatchConditions with typed reason codes so cp-api can reuse match validation
| Commit: | d18cda3 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
feat(proto): AgentInventoryService with PutClusterResources
| Commit: | c95189e | |
|---|---|---|
| Author: | Caio Medeiros Pinto | |
| Committer: | GitHub | |
fix(grpc): propagate execution tags in execution start updates (#7833) * fix(testworkflows): pass execution tags into expression machine * fix(grpc): propagate execution tags in start updates * chore(lint): apply goimports formatting
| Commit: | 0687d48 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
feat(proto): AgentInventoryService with PutClusterResources
| Commit: | afa2611 | |
|---|---|---|
| Author: | Caio Medeiros Pinto | |
| Committer: | Caio Medeiros Pinto | |
feat(agentserver): send registration metadata on reconnect (TKC-5876) (#7786) * feat(agentserver): send registration metadata on reconnect Carry labels, runner_group and is_global through the existing UpdateAgentCapabilitiesOnStartup RPC so runner-controlled fields stay fresh after the initial Register. Gated by a new opt-in flag so old servers stay untouched. - proto/service.proto: extend UpdateAgentCapabilitiesOnStartupRequest with labels, runner_group, is_global, update_registration_metadata. - cmd/api-server/main.go: extract collectRunnerRegistrationLabels and use it in both the Register and reconnect call sites. Refs: TKC-5876 * fix(agentserver): skip metadata refresh on failed deployment label read Address Greptile P1+P2: - collectRunnerRegistrationLabels and getDeploymentLabels now return an error so a Kubernetes Deployment lookup failure is observable. - In the reconnect path, when the lookup fails we skip the metadata update (UpdateRegistrationMetadata=false) so a transient K8s API or RBAC failure cannot replace the control plane's existing labels with a near-empty self-registration-only set. - Reconnect-path label fetch now uses updateCtx so a stalled K8s GET cannot block startup past the 5s control-plane RPC budget. - Initial Register path falls back to {registration:self} on lookup failure (preserves prior behavior; first registration has no prior labels to clobber). Refs: TKC-5876 * fix(agentserver): decouple labels from runner_policy in startup metadata refresh Split UpdateRegistrationMetadata into independent UpdateLabels and UpdateRunnerPolicy flags so a failed Deployment label lookup no longer suppresses runner_group / is_global propagation. Those values come from runner config and do not depend on the Kubernetes API. Addresses Greptile P1 review on PR #7786.
| Commit: | a203c04 | |
|---|---|---|
| Author: | Caio Medeiros Pinto | |
| Committer: | GitHub | |
feat(agentserver): send registration metadata on reconnect (TKC-5876) (#7786) * feat(agentserver): send registration metadata on reconnect Carry labels, runner_group and is_global through the existing UpdateAgentCapabilitiesOnStartup RPC so runner-controlled fields stay fresh after the initial Register. Gated by a new opt-in flag so old servers stay untouched. - proto/service.proto: extend UpdateAgentCapabilitiesOnStartupRequest with labels, runner_group, is_global, update_registration_metadata. - cmd/api-server/main.go: extract collectRunnerRegistrationLabels and use it in both the Register and reconnect call sites. Refs: TKC-5876 * fix(agentserver): skip metadata refresh on failed deployment label read Address Greptile P1+P2: - collectRunnerRegistrationLabels and getDeploymentLabels now return an error so a Kubernetes Deployment lookup failure is observable. - In the reconnect path, when the lookup fails we skip the metadata update (UpdateRegistrationMetadata=false) so a transient K8s API or RBAC failure cannot replace the control plane's existing labels with a near-empty self-registration-only set. - Reconnect-path label fetch now uses updateCtx so a stalled K8s GET cannot block startup past the 5s control-plane RPC budget. - Initial Register path falls back to {registration:self} on lookup failure (preserves prior behavior; first registration has no prior labels to clobber). Refs: TKC-5876 * fix(agentserver): decouple labels from runner_policy in startup metadata refresh Split UpdateRegistrationMetadata into independent UpdateLabels and UpdateRunnerPolicy flags so a failed Deployment label lookup no longer suppresses runner_group / is_global propagation. Those values come from runner config and do not depend on the Kubernetes API. Addresses Greptile P1 review on PR #7786.
| Commit: | b45ddfc | |
|---|---|---|
| Author: | Mark Gascoyne | |
| Committer: | GitHub | |
feat: [TKC-5638] add RunspaceBridgeService proto definition (#7647) Defines the bidirectional gRPC stream between the runspace bridge (Go, in cloud-api) and the AI service (Node.js), including session negotiation, workspace sync events, and file I/O RPC types.
| Commit: | 8fff975 | |
|---|---|---|
| Author: | Mark Gascoyne | |
feat: [TKC-5719] add FileChanged and Checkpoint to runspace bridge proto Adds FileChanged message (path, change_type enum, content bytes, seq) and Checkpoint marker to BridgeMessage oneof. Regenerated pb.go via make generate-protobuf.
| Commit: | a5a9190 | |
|---|---|---|
| Author: | Mark Gascoyne | |
feat: [TKC-5638] add RunspaceBridgeService proto definition Defines the bidirectional gRPC stream between the runspace bridge (Go, in cloud-api) and the AI service (Node.js), including session negotiation, workspace sync events, and file I/O RPC types.
| Commit: | 4ff5c98 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | GitHub | |
feat: [TKC-5460] WorkflowTrigger CLI, OSS API, agent client (k8s + cloud), and cloud-watch (#7535) Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | f71bfe2 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | GitHub | |
feat: [TKC-5460] WorkflowTrigger CRD types, field matching engine, internal trigger type (#7523) * feat: [TKC-5460] WorkflowTrigger v2 types, field matcher, and executor integration Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com> * feat: [TKC-5405] add dynamic informers + resourceRef for custom resource support (#7528) Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com> --------- Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 9381b39 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
feat: [TKC-5460] cloud-watch + proto + controlplaneclient for WorkflowTrigger Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | d76ee5a | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
feat: [TKC-5460] WorkflowTrigger v2 types, field matcher, and executor integration Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | cfc81ab | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
feat: [TKC-5460] add WorkflowTrigger CRD types, field matching engine, and internal trigger type Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 1f3705a | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
feat: [TKC-5460] add WorkflowTrigger CRD types, field matching engine, and internal trigger type Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 9b7bef2 | |
|---|---|---|
| Author: | Povilas Versockas | |
| Committer: | GitHub | |
fix: [TKC-5412] fix workflow log streaming (#7488) * feat: [TKC-5412] add workflow stream resume protocol * chore: [TKC-5412] regenerate workflow stream protocol types * feat: [TKC-5412] make agent log streams resilient * feat: [TKC-5412] resume workflow logs in the CLI * fix: [TKC-5412] remove unused workflow stream test assignment * fix: [TKC-5412] harden notification stream manager * fix up * fix: [TKC-5412] preserve workflow log replay stream identity
| Commit: | 52efe1c | |
|---|---|---|
| Author: | Mark Gascoyne | |
| Committer: | GitHub | |
feat: [TKC-5159] add targetSelector to ListWebhooksV2 for webhook target filtering (#7462) * feat: [TKC-5159] add targetSelector field to ListWebhooksV2Request proto Add map<string, string> targetSelector (field 7) to ListWebhooksV2Request, allowing callers to opt-in to server-side webhook target filtering by passing their own labels. * feat: [TKC-5159] pass agent labels as targetSelector in ListWebhooksV2 Wire agent labels (including synthetic id/name) through CloudWebhookClient as a TargetSelector so the control plane can filter webhooks by target. Filtering is opt-in: agents that do not send a TargetSelector receive all webhooks (backwards compatible). * fix: [TKC-5159] guard against empty agent ID/name in target selector Only include synthetic "id" and "name" keys when non-empty, so a misconfigured agent omits them from the selector (less restrictive) rather than sending empty strings that match nothing.
| Commit: | 3f76026 | |
|---|---|---|
| Author: | Povilas Versockas | |
| Committer: | Povilas Versockas | |
feat: [TKC-5104] sync startup capabilities with control plane (#7175)
| Commit: | 920a45e | |
|---|---|---|
| Author: | Povilas Versockas | |
| Committer: | GitHub | |
feat: [TKC-5104] sync startup capabilities with control plane (#7175)
| Commit: | ea4a649 | |
|---|---|---|
| Author: | Copilot | |
| Committer: | Vladislav Sukhin | |
feat: Add runnerId field to TestWorkflowServiceNotificationsRequest and TestWorkflowParallelStepNotificationsRequest proto messages (#7088) * Initial plan * feat: Add runnerId field to TestWorkflowServiceNotificationsRequest and TestWorkflowParallelStepNotificationsRequest proto messages Co-authored-by: vsukhin <5984962+vsukhin@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: vsukhin <5984962+vsukhin@users.noreply.github.com>
| Commit: | 1147694 | |
|---|---|---|
| Author: | Copilot | |
| Committer: | GitHub | |
feat: Add runnerId field to TestWorkflowServiceNotificationsRequest and TestWorkflowParallelStepNotificationsRequest proto messages (#7088) * Initial plan * feat: Add runnerId field to TestWorkflowServiceNotificationsRequest and TestWorkflowParallelStepNotificationsRequest proto messages Co-authored-by: vsukhin <5984962+vsukhin@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: vsukhin <5984962+vsukhin@users.noreply.github.com>
| Commit: | 33ec7b3 | |
|---|---|---|
| Author: | Povilas Versockas | |
| Committer: | GitHub | |
feat: [TKC-4630] add support for webhook capability (#6906)
| Commit: | 367d756 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
feat: add super agent rollback (#6908) Allow the ability for agents to rollback to become super agents. This is going to cause any data that was added to the Control Plane to become inaccessible, at least until the agent migrates back, but this is a disaster recovery rollback mode anyway.
| Commit: | 93f77ad | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
feat: super agent migration (#6895) * feat: add super agent migration endpoint and return current super-agent-ness with procontext * feat: handle procontext super agent status response field * feat: create an override option for super agent migration * feat: implement super agent migration on client side * feat: write to kubernetes termination log if unable to migrate * chore: move super agent migration to a separate file
| Commit: | c63fafb | |
|---|---|---|
| Author: | Wito | |
| Committer: | GitHub | |
chore: prepare source of truth migration (#6883) * chore: add source of truth capability * chore: deprecate agent.type * chore: generate protobuf
| Commit: | ff22081 | |
|---|---|---|
| Author: | Caio Medeiros Pinto | |
| Committer: | Caio Medeiros Pinto | |
feat: auto registering agent mode labels (#6841) * feat: add runner mode and labels when auto-registering through grpc method * fix: cloud interface new properties get methods * fix: linting alerts * chore: force global mode for super agent * fix: proto of agent request new fields * chore: add agent labels to agent pod as well * fix: debug agent labels to be configured * chore: remove forced debug mode for runner * fix: remove unneeded imports
| Commit: | bdd456b | |
|---|---|---|
| Author: | ed382 | |
| Committer: | GitHub | |
feat(TKC-4532): return runner name after registration (#6856) For legacy super agents the runner name is overriden to the environment ID.
| Commit: | 9fe76b1 | |
|---|---|---|
| Author: | Caio Medeiros Pinto | |
| Committer: | GitHub | |
feat: auto registering agent mode labels (#6841) * feat: add runner mode and labels when auto-registering through grpc method * fix: cloud interface new properties get methods * fix: linting alerts * chore: force global mode for super agent * fix: proto of agent request new fields * chore: add agent labels to agent pod as well * fix: debug agent labels to be configured * chore: remove forced debug mode for runner * fix: remove unneeded imports
| Commit: | ab28bd5 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
chore: deprecate unused RPCs and remove related code (#6833)
| Commit: | 83ffc1d | |
|---|---|---|
| Author: | ed382 | |
| Committer: | GitHub | |
feat: webhooks to control plane (#6757) * notes * notes * refactor: webhook loader with opts * refactor: webhook listener with opts * fix: check during become queries * notes * fix: handle not set metrics * fix: handle secret client not set * notes * fix: make webhooks repository optional * feat: make webhook template client optional * refactor: mark deprecated * refactor: rename repository for consistency * refactor: reduce the webhook client interface * refactor: unnecessary predicate * notes * notes * notes * chore: remove unused * notes * refactor: emitter reduce exported fields/methods * notes * notes * refactor: matching of events logic moved to listeners * refactor: single subscription per emitter * notes * refactor: make procontext optional * notes * refactor: make event emitter subject root configurable * notes * notes * feat: webhooks capabalities * feat: disable agent-based webhooks when cloud-based enabled * feat: registration updates and super agent registration * fix: pass procontext to deprecated system for auth * fix: resource and resource id in payloads * feat: event emitter leases * fix: switch to go tool * fix: unit tests * chore: fix lint * docs: clean up todos * chore: integration tests * fix: make lease name unique per release * chore: clean up * chore: clean up * chore: clean up * refactor: simplify mutex usage for listeners slice/map * fix: access to listeners and simplify notify call * fix: lease backend test
| Commit: | 2ccb7f0 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
feat: workflow retrieval rpc (#6828) This replaces passing workflows directly in the execution start message and provides a new rpc to retrieve a "resolved" workflow directly.
| Commit: | 0c7c402 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
feat: resolved workflow rpc (#6823) * feat: pass full workflow when starting execution * feat: use shared execution in sync rpc This is a breaking change but this is ok because the sync feature is unreleased currently. * chore: gen proto * fix: sync client use new proto definition * feat: runner client make use of full workflow
| Commit: | fb8c7e2 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
feat: execution start error reporting (#6816) * feat: add rpc for reporting executions startup errors * feat: implement startup error rpc
| Commit: | f25855a | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
feat: add rpc for reporting executions startup errors
| Commit: | 48a930f | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
fix: issues around credential expressions (#6799) Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 7fed18c | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | GitHub | |
fix: issues around credential expressions (#6799) Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 09a2578 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
fix: issues around credential expressions Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 0fe1644 | |
|---|---|---|
| Author: | Kubeshop | |
Merge remote-tracking branch 'origin' into tkc-4250-execute-webhooks-within-control-plane
| Commit: | 095258b | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
fix: issues around credential expressions Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 5417927 | |
|---|---|---|
| Author: | Kubeshop | |
| Committer: | Kubeshop | |
feat: registration updates and super agent registration
| Commit: | 6198d64 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
feat: Add RPC definitions for sync functionality (#6756) Whilst I hate that these RPCs use `bytes` to carry structured data, my attempts to generate or manually copy these data structures into proto definitions were fruitless so until we have some sort of CRD generation that can create protobuf definitions for us this is the best we can hope for. I did try `go-to-protobuf` which is what the Kubernetes project uses, and whilst it was mostly fine it would have required some wider changes to the repository to make it work nicely with the other protobuf changes that we have here, so maybe in the future for a v2 of these RPCs we can implement them, but for now this is the best we can hope for.
| Commit: | e2615c4 | |
|---|---|---|
| Author: | Kubeshop | |
feat: webhooks capabalities
| Commit: | d4c6235 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
feat: Add RPC definitions for sync functionality Whilst I hate that these RPCs use `bytes` to carry structured data, my attempts to generate or manually copy these data structures into proto definitions were fruitless so until we have some sort of CRD generation that can create protobuf definitions for us this is the best we can hope for. I did try `go-to-protobuf` which is what the Kubernetes project uses, and whilst it was mostly fine it would have required some wider changes to the repository to make it work nicely with the other protobuf changes that we have here, so maybe in the future for a v2 of these RPCs we can implement them, but for now this is the best we can hope for.
| Commit: | 9a90aef | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | GitHub | |
add support for silent executions (#6722) Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 2402c6e | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
add support for silent executions Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 684a5cd | |
|---|---|---|
| Author: | ed382 | |
| Committer: | GitHub | |
feat: webhook syncing, also switched to maintained mockgen version (#6731) * fix: selector missing from testtriggers client * feat: webhook clients, crd changes, switch to maintained mockgen * feat: webhooks crd storage * feat: webhook crd sync * fix: convert to dots, don't add nil error field * fix: docs * fix: update gomock imports * fix: use updated operator pkg with mockgen * fix: linting * fix: linting * gofmt all
| Commit: | 831e29e | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
add support for silent executions Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | f1f03b0 | |
|---|---|---|
| Author: | Kubeshop | |
Merge remote-tracking branch 'origin/main' into tkc-4251-store-webhooks-within-control-plane-gitops-agent
| Commit: | a378893 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
feat: new scheduling RPC (#6727) * Create new RPC to update an execution to indicate scheduling status This is a new RPC but mostly copies the InitExecution RPC, albeit with better type safety because I'm not lazy. This is being added to facilitate a simpler implementation of the GetExecutionUpdates client, and to begin the migration of RPCs to the new style. * Deprecate older InitExecution RPC * Skip failing integration test.
| Commit: | fb0353b | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
Allow the runtime for executions...for now (#6723)
| Commit: | 306ea2d | |
|---|---|---|
| Author: | Kubeshop | |
feat: webhook clients, crd changes, switch to maintained mockgen
| Commit: | 2af468a | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
chore: deprecate GetRunnerRequests (#6721) * Deprecate old runner request proto Hopefully this will stop people slapping new functionality into a broken old RPC whilst we migrate to the new one. * Add variable override support to new proto
| Commit: | e2fa872 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | GitHub | |
feat: --variables support in testworkflows (#6700) * cleanup and refactor test worfklows run command in testkube cli Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com> cleanup and refactor test worfklows run command in testkube cli Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com> * add support for --variable flag in test workflows Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com> --------- Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | ff01026 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Dejan Zele Pejchev | |
feat: execution polling (#6617) * Add new protos for polling executions Updates the proto generation configuration to use up to date tool versions allowing use of the latest proto editions features. Generation for older proto definitions is preserved using a separate configuration file and exclusion directives. These can be removed once we have migrated all proto definitions to the new structure and generation. * Add buf github action This could not be added before because we could not use the buf tool to validate the existing protos as they were so out of spec and so at least one valid proto was required for the tool to be used.
| Commit: | 904dfee | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
add support for --variable flag in test workflows Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 9b2add7 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
feat: execution polling (#6617) * Add new protos for polling executions Updates the proto generation configuration to use up to date tool versions allowing use of the latest proto editions features. Generation for older proto definitions is preserved using a separate configuration file and exclusion directives. These can be removed once we have migrated all proto definitions to the new structure and generation. * Add buf github action This could not be added before because we could not use the buf tool to validate the existing protos as they were so out of spec and so at least one valid proto was required for the tool to be used.
| Commit: | e4cf39e | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
add support for --variable flag in test workflows Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | c214713 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Add new protos for polling executions Updates the proto generation configuration to use up to date tool versions allowing use of the latest proto editions features. Generation for older proto definitions is preserved using a separate configuration file and exclusion directives. These can be removed once we have migrated all proto definitions to the new structure and generation.
| Commit: | e277a54 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Add a schedule execution proto
| Commit: | 44c59e4 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Add new protos for polling executions Updates the proto generation configuration to use up to date tool versions allowing use of the latest proto editions features. Generation for older proto definitions is preserved using a separate configuration file and exclusion directives. These can be removed once we have migrated all proto definitions to the new structure and generation.
| Commit: | 1555246 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Add new proto for polling executions Fixes the proto generation to better suit a modern approach to proto definitions.
| Commit: | 4d53edc | |
|---|---|---|
| Author: | Povilas Versockas | |
| Committer: | GitHub | |
feat: [TKC-4119] add capabilities to self registration (#6642)
The documentation is generated from this commit.
| Commit: | 7cfa318 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
chore: add buf for proto generation (#6640) * Install buf as tool for building protos Using a separate go.mod file for buf to avoid polluting the main module and ensuring buf will correctly build. * Consolidate protobuf definitions Now all our proto definitions are in one place and built with a common command and toolchain. * Add protobuf documentation
| Commit: | 569dc79 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Add new proto for polling executions Fixes the proto generation to better suit a modern approach to proto definitions.
| Commit: | 2cfade1 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Consolidate protobuf definitions Now all our proto definitions are in one place and built with a common command and toolchain.
| Commit: | 9640b43 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Consolidate protobuf definitions Now all our proto definitions are in one place and built with a common command Set up an initial buf config to ignore the older protobufs.
| Commit: | b4cd5e1 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Add new proto for polling executions
| Commit: | 2678bf3 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
feat: add new proto for polling executions
| Commit: | 3813f64 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
chore: consolidate protobufs Now all our proto definitions are in one place and built with a common command
| Commit: | c953b90 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
fix: grpc keepalive (#6581) * Create shareable keepalive values to be used with server implementations * Correctly configure grpc client connection See https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md for more information on the badness. * Deprecate use of the PING command This pinging is no longer required with fixed gRPC keep alive behaviour.
| Commit: | d56f36a | |
|---|---|---|
| Author: | Povilas Versockas | |
| Committer: | GitHub | |
feat: [TKC-4019] add control-plane api and trigger client (#6565)
| Commit: | c13cb2e | |
|---|---|---|
| Author: | Povilas Versockas | |
| Committer: | Povilas Versockas | |
feat: [TKC-4019] add control-plane api and trigger client
| Commit: | 3817751 | |
|---|---|---|
| Author: | Povilas Versockas | |
| Committer: | Povilas Versockas | |
feat: [TKC-4019] add control-plane api and trigger client
| Commit: | ae18581 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | GitHub | |
feat: TKC-3683: add support for canceled workflow executions (#6431) * TKC-3683: add support for canceled workflow executions Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com> * fix: missing execution status * fix: missing status variables * fix: add missing helper * fix: old architecture detect cancellation * fix: support legacy executions --------- Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com> Co-authored-by: Kubeshop <174873053+ed382@users.noreply.github.com>
| Commit: | f04ee69 | |
|---|---|---|
| Author: | Kubeshop | |
Merge remote-tracking branch 'origin/main' into feat/cancel-executions
| Commit: | 62cb223 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | GitHub | |
feat: enable runner self-registration (#6410) * Enable runner self registration in certain circumstances This functionality allows for runners to be created and registered with the control plane in a single step by external tools such as via Helm installs. Some quite serious assumptions are made here and I still need to work out where to persist the generated runner key otherwise the agent will attempt to re-register itself on every startup, which may not be ideal. * Attempt to use a Kubernetes secret to persist agent keys This will require permissions to create the secret and an optional envFrom secret to be added to the helm chart. * Add a configuration flag to switch between fixed and floating runners By default we assume that the runner is a Fixed type runner as that is what most customers are using. * Use gRPC to register runners This allows for runner registration without having to use a separate communication mechanism to normal runner activities. * Remove unnecessary environment ID from self registration * Improve self registration validation and error checking * Use a config value for the runner name This allows it to be set to a unique value at deployment time. We do not want to generate a unique value at run time because that would invalidate any uniqueness validation server-side that attempts to defend against runaway registration loops.
| Commit: | 7fb440e | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
TKC-3683: add support for canceled workflow executions Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 5a434d1 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Use gRPC to register runners This allows for runner registration without having to use a separate communication mechanism to normal runner activities.
| Commit: | fb51bf1 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Remove unnecessary environment ID from self registration
| Commit: | dce0ff0 | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
TKC-3683: add support for canceled workflow executions Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 383bf3c | |
|---|---|---|
| Author: | Dejan Zele Pejchev | |
| Committer: | Dejan Zele Pejchev | |
TKC-3683: add support for canceled workflow executions Signed-off-by: Dejan Zele Pejchev <pejcev.dejan@gmail.com>
| Commit: | 071f5c8 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
Remove unnecessary environment ID from self registration
| Commit: | 9d74893 | |
|---|---|---|
| Author: | Alisdair MacLeod | |
| Committer: | Alisdair MacLeod | |
Use gRPC to register runners This allows for runner registration without having to use a separate communication mechanism to normal runner activities.