Spinnaker Release 2025.1.0
Changelog
Breaking Changes
https://github.com/spinnaker/spinnaker/pull/7173 removed retrofit1 from Spinnaker. Specifically, spinnaker-dependencies no longer refers to com.squareup.retrofit:retrofit:1.9.0 (and some other related jars as well). Plugins or custom code that depend on this need to add their own dependencies or upgrade to retrofit2.
Helm OCI Registry Chart Support
Docker registry provider now supports adding OCI-based registries hosting Helm repositories. This feature allows users to download and bake Helm charts hosted in OCI-compliant registries (such as Docker Hub).
Related PRs:
- https://github.com/spinnaker/spinnaker/pull/7069
- https://github.com/spinnaker/spinnaker/pull/7089
- https://github.com/spinnaker/spinnaker/pull/7113
To enable the Helm OCI support in a Docker Registry account set a list of OCI repositories in the helmOciRepositories
of the Docker Registry account configuration. The helmOciRepositories
is a list of repository names in the format <registry>/<repository>
. For example:
dockerRegistry:
enabled: true
primaryAccount: dockerhub # Must be one of the configured docker accounts
accounts:
- name: dockerhub
requiredGroupMembership: []
providerVersion: V1
permissions: {}
address: https://index.docker.io # (Required). The registry address you want to pull and deploy images from; e.g. https://index.docker.io
username: <username> # Your docker registry email (often this only needs to be well-formed, rather than be a real address)
password: <password>
cacheIntervalSeconds: 30 # (Default: 30). How many seconds elapse between polling your docker registry.
clientTimeoutMillis: 60000 # (Default: 60000). Timeout time in milliseconds for this repository.
cacheThreads: 1 # (Default: 1). How many threads to cache all provided repos on. Really only useful if you have a ton of repos.
paginateSize: 100 # (Default: 100). Paginate size for the docker repository _catalog endpoint.
sortTagsByDate: false # (Default: false). Sort tags by creation date.
trackDigests: false # (Default: false). Track digest changes. This is not recommended as it consumes a high QPM, and most registries are flaky.
insecureRegistry: false # (Default: false). Treat the docker registry as insecure (don’t validate the ssl cert).
repositories:
- "registry/repository" # (Default: []). An optional list of repositories to cache Docker images from. If not provided, Spinnaker will attempt to read accessible repositories from the registries _catalog endpoint
helmOciRepositories:
- "registry/HelmOciRepository" # (Default: []). An optional list of Helm OCI-Based repositories to cache helm charts from.
For every account with non-empty helmOciRepositories
list, Clouddriver will cache the Helm charts from the specified OCI repositories.
The cached Helm OCI charts are defined as a new Artifact type named helm/image
and can be used to bake Helm OCI-based charts in Spinnaker pipelines.
Defining retention policy for downloaded helm/image charts in Clouddriver
Optionally, users can define a retention policy for Helm OCI charts downloaded in a Clouddriver instance. This functionality
is disabled by default and it is useful for users that want to keep a local copy of a Helm OCI based chart without the need
to download it every time it is used in a pipeline. The retention policy is defined in the clouddriver-local.yml
configuration file:
artifacts:
helm-oci:
clone-retention-minutes: 60
clone-retention-max-bytes: 104857600 # 100MB
clone-retention-minutes:
Default: 0. How much time to keep the downloaded helm/image chart. Values are:- 0: no retention.
- -1: retain forever.
- any whole number of minutes, such as
60
.
clone-retention-max-bytes:
Default: 104857600 (100 MB). Maximum amount of disk space to use for downloaded helm/image charts. When the maximum amount of space is reached, Clouddriver deletes the clones after returning the artifact to the pipeline, just as if retention were disabled.
Defining Triggers for helm/image artifacts in Spinnaker pipelines
To trigger a Spinnaker pipeline on a new version of a Helm OCI-based chart, users will need to enable the Igor poller for the helm/image
artifact type.
This can be done by adding the following configuration to the igor-local.yml
file:
helm-oci-docker-registry:
enabled: true
Additionally, a new trigger type (named helm/oci
) has been implemented to allow pipelines to be triggered by new versions of helm/image
artifacts.
"triggers": [
{
"account": "<accountName>",
"enabled": true,
"organization": "<org>",
"registry": "index.docker.io",
"repository": "org/repositoryName",
"type": "helm/oci"
}
],
Gate
https://github.com/spinnaker/spinnaker/pull/7109 added a gate-header module to gate that provides what’s known as header authentication. It’s meant for scenarios where something external to gate it providing “real” authentication via mTLS or similar, as it’s very permissive. When header.enabled
is true (false by default), gate requires an X-SPINNAKER-USER header on incoming http requests, and uses the value of that header as the username/email. Gate logs in to fiat and queries fiat for allowed accounts. Again, any incoming request can specify an arbitrary value for X-SPINNAKER-USER and gate-header uses it.
https://github.com/spinnaker/spinnaker/pull/7120 added ProvidedIdRequestFilter and these new configuration properties and their defaults:
provided-id-request-filter:
enabled: false
headers:
- X-SPINNAKER-REQUEST-ID
- X-SPINNAKER-EXECUTION-ID
additionalHeaders: [] # empty list
ProvidedIdRequestFilter puts headers from incoming requests into the MDC which improves logging in gate. As well, those values are used in outgoing http requests that gate makes (e.g. to fiat during authentication), as opposed to auto-generated ones when they’re not present. This makes it easier to trace requests through Spinnaker.
Retrofit2 Upgrade
Retrofit1 clients from the following spinnaker services have been upgraded to retrofit2. With this release, retrofit2 upgrade of all spinnaker services is completed.
- Orca: https://github.com/spinnaker/spinnaker/pull/7085
- Kayenta: https://github.com/spinnaker/spinnaker/pull/7093
- Halyard: https://github.com/spinnaker/spinnaker/pull/7098
A new CallAdapter named LegacySignatureCallAdapter has been introduced in Kork to provide support for legacy Retrofit method signatures. This adapter enables the use of Retrofit interfaces that do not return Call<..>, similar to how Retrofit 1 worked. Both Kayenta and Halyard leveraged this feature during their Retrofit 2 upgrades, allowing them to maintain their existing method signatures without wrapping them in Call<..> or using Retrofit2SyncCall.execute()
Orca
https://github.com/spinnaker/spinnaker/pull/7164 adds root id to the pipeline execution context. Code outside of Spinnaker that processes executions may need adjusting to handle the additional field.
https://github.com/spinnaker/spinnaker/pull/7168 adds some new mechanisms to webhook stages:
- If
webhook.requireAccount
is true (it defaults to false), and the account property is not present (i.e. a non-empty string), the stage stage fails. - if
webhook.validateAcount
is true (it defaults to false), and an account property is present, call clouddriver’s GET /credentials/{account}/authorized endpoint to validate that the current user has permission to use the account. - A new WebhookAccountProcessorInterface. If a WebhookAccountProcessor bean is present, it has the opportunity to customize the headers in the outgoing http requests that webhook stages make.
https://github.com/spinnaker/spinnaker/pull/7171 introduces regex support to the webhook allow list. Before this, an allow list entry like:
allowedRequests:
- httpMethods:
- GET
urlPrefix: https://myurl:<port>/some/path
implied a “starts with” matching strategy. Matching strategy still defaults to STARTS_WITH
, but PATTERN_MATCHES
is also a valid value. For example:
allowedRequests:
- httpMethods:
- GET
matchStrategy: STARTS_WITH
urlPrefix: https://myurl:port/some/path
- httpMethods:
- GET
- POST
matchStrategy: PATTERN_MATCHES
urlPattern: https://myhost[0-9]+.mycompany/some/path.*
Note: specify urlPrefix
with STARTS_WITH, and urlPattern
with PATTERN_MATCHES
https://github.com/spinnaker/spinnaker/pull/7172 adds a new safeToRetry
property (default false) to webhook allow list entries. Before this,
CreateWebhookTask
(the “initial” part of a webhook stage) would retry SocketTimeoutException only for GET requests. Now, it also retries other request methods (e.g. PUT, POST, etc.) if safeToRetry
is true in the relevant allow list entry.
https://github.com/spinnaker/spinnaker/pull/7178 adds two new boolean properties that default ot false.
webhook:
eventLoggingEnabled: false
eventLoggingVerbose: false
With webhook.eventLoggingEnabled true, and eventLoggingVerbose false, WebhookLoggingEventListener logs messages like:
2025-07-31 06:45:52.824 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] callStart: Request{method=GET, url=http://localhost:61843/test, headers=[Accept:text/plain, application/json, application/cbor, application/*+json, */*, Content-Length:0]}
2025-07-31 06:45:52.825 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [1 ms] requestHeadersEnd
2025-07-31 06:45:52.871 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [47 ms] responseBodyEnd: byteCount=33
2025-07-31 06:45:52.871 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [47 ms] callEnd
With eventLoggingVerbose also true, WebhookLoggingEventListener logs messages like:
2025-07-31 06:45:52.890 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] callStart: Request{method=GET, url=http://localhost:61843/test, headers=[Accept:text/plain, application/json, application/cbor, application/*+json, */*, Content-Length:0]}
2025-07-31 06:45:52.890 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] proxySelectStart: http://localhost:61843/
2025-07-31 06:45:52.890 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] proxySelectEnd: [DIRECT]
2025-07-31 06:45:52.890 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] dnsStart: localhost
2025-07-31 06:45:52.890 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] dnsEnd: [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1]
2025-07-31 06:45:52.890 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] connectStart: localhost/127.0.0.1:61843 DIRECT
2025-07-31 06:45:52.890 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] connectEnd: http/1.1
2025-07-31 06:45:52.890 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] connectionAcquired: Connection{localhost:61843, proxy=DIRECT hostAddress=localhost/127.0.0.1:61843 cipherSuite=none protocol=http/1.1}
2025-07-31 06:45:52.890 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] requestHeadersStart
2025-07-31 06:45:52.890 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [0 ms] requestHeadersEnd
2025-07-31 06:45:52.891 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [1 ms] responseHeadersStart
2025-07-31 06:45:52.891 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [1 ms] responseHeadersEnd: Response{protocol=http/1.1, code=200, message=OK, url=http://localhost:61843/test}
2025-07-31 06:45:52.892 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [1 ms] responseBodyStart
2025-07-31 06:45:52.892 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [2 ms] responseBodyEnd: byteCount=33
2025-07-31 06:45:52.892 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [2 ms] connectionReleased
2025-07-31 06:45:52.892 INFO 17273 --- [ Test worker] c.n.s.o.w.u.WebhookLoggingEventListener : [] [2 ms] callEnd
https://github.com/spinnaker/spinnaker/pull/7179 teaches Spinnaker to (when enabled), plumb http request headers that arrive at gate all the way through to headers in outgoing http requests that webhook stages make using the following new orca configuration properties and their defaults. Note, ProvidedIdRequestFilter has the same configuration properties in orca as it does in gate.
provided-id-request-filter:
enabled: false
headers:
- X-SPINNAKER-REQUEST-ID
- X-SPINNAKER-EXECUTION-ID
additionalHeaders: [] # empty list
webhook:
includeAdditionalHeaders: false
To get additional headers in outgoing http requests in webhook stages, enable ProvidedIdRequestFilter configure provided-id-request-filter.additionalHeaders
the same in both gate and orca. Set webhook.includeAdditionalHeaders
to true in orca, and then provide the configured additional headers in the http requests to gate that initate a pipeline execution. Those headers make it through gate, to orca, into the pipeline execution context in a new additionalHeaders
property, and then into webhook stages, and their outgoing http requests.
Clouddriver
https://github.com/spinnaker/spinnaker/pull/7185 adds a way to prevent caching agents from starting until clouddriver is healthy, when using ClusteredAgentScheduler.
This can resolve issues at startup where clouddriver is so busy processing accounts that startup/readiness/liveness probes fail. The following configuration properties and their defaults control this behavior:
clustered:
agent:
scheduler:
wait-on-health-check-enabled: false
wait-time-after-successful-health-check-seconds: 75
Note: ClusteredAgentScheduler uses redis as its backing store. The store for data that caching agents collect is independent of this.
https://github.com/spinnaker/spinnaker/pull/7187 adds support for multiple managing accounts. There’s a talk about this ( slides ). There’s a new configuration flag to enable this (defaults to false):
aws:
loadAccounts:
useManagingAccountProfile: true
If enabled, the new managingAccountProfile
property of AWS accounts specifies the profile to use.
AWS doesn’t support assuming a role across partitions. So, before this PR, Spinnaker needed to run in the same partition as the accounts it targets. With this PR, it’s now possible for one Spinnaker instance to target multiple partitions.
Features
- aws: add to a new counter metric named aws.discardedImages (#7192) ( 601c277b )
- change: feat: Add kubernetes functional tests ( 2a94d045 )
- clouddriver/aws: support multiple managing accounts (#7187) ( c81cfb41 )
- clouddriver/cats: delay caching agents until after startup (#7185) ( 094886ac )
- core: add rootId to PipelineExecution (#7164) ( 36ebf880 )
- fiat/google-groups: expand indirect google groups for emails (#1213) ( 25404916 )
- header: don’t create nor use sessions with header auth (#7121) ( 6d1ee269 )
- header: new module for authenticating based on the X-SPINNAKER-USER header (#7109) ( 3b10e2fc )
- helm/image: Adding clouddriver-docker implementation for helm/image caching agents and lookup controller ( 6947824d )
- helm/image: Adding clouddriver-docker implementation for helm/image caching agents and lookup controller ( ca10bac6 )
- helm/image: Adding clouddriver-docker implementation for helm/image caching agents and lookup controller ( f499a9bd )
- helm/image: Adding clouddriver-docker tests for helm/image caching agents and lookup controller ( e1d51861 )
- helm/image: Adding controller test for multiple level repository name ( b7dc9c31 )
- helm/image: Adding kork-docker extracting functionality from clouddriver-docker (#7069) ( 1fdc9bc0 )
- helm/image: Adding note for future refactoring on duplicate account properties ( a1233335 )
- helm/image: Adding rosco and deck support for helm/image artifacts ( 10baee37 )
- helm/image: Adding support for automatic triggers on the new artifact type helm/image ( f0d8662e )
- helm/image: Adding support for automatic triggers on the new artifact type helm/image - deck lint fix ( 0c443431 )
- helm/image: Adding support for automatic triggers on the new artifact type helm/image - migrate groovy ( 9449fbda )
- helm/image: Adding support for helm/image chart artifacts ( f9d312ac )
- helm/image: Automatic triggers for Helm/image artifacts - classes rename and optimisations ( 83589bfb )
- helm/image: Implementing AbstractArtifactCachedFileSystem and tests ( d3d4c7ed )
- kayenta: adding outlierStrategy field in metric config modal ( 0cf3148a )
- kayenta: enable using template for Datadog metric store (#7056) ( 47f85652 )
- kayenta: expose mustHaveData checkbox in canary metric config modal (#7063) ( 243d98d5 )
- orca/webhook: add account property to webhook stages and introduce WebhookAccountProcessor interface (#7168) ( 32649bce )
- orca/webhook: add regex pattern matching to the webhook allow list (#7171) ( 23627333 )
- orca: plumb additional headers from incoming requests into webhook stages (#7179) ( de7a124a )
- plugins: Log output of the version requirements when a mismatch occurs and plugin loading information (#7196) ( 8b5c743e )
- retrofit2: Add CallAdapter for legacy Retrofit signatures (#7088) (#7155) ( eced8bbe )
- retrofit2: Add CallAdapter for legacy Retrofit signatures (#7088) ( 1516f8d0 )
- webhook: add new webhook allow list property safeToRetry (#7172) ( 43e42394 )
- webhook: add webhook.eventLoggingEnabled and webhook.eventLoggingVerbose properties (#7178) ( 6127d7b5 )
Configuration
Fixes
- GHA: update cache GHA used in ci to latest (v4) (#629) ( 63c49b54 )
- build: Enable publishing for Gradle plugins (#7122) (#7128) ( 5e58dc70 )
- build: Enable publishing for Gradle plugins (#7122) ( ec096c9b )
- build: Fix BoM generation against release tags (#7081) (#7083) ( 0a75021d )
- build: Fix BoM generation against release tags (#7081) ( a26582ee )
- build: Fix previous-version changelog arg, filter changelog commits (#7045) (#7046) ( 03a3c471 )
- build: Fix previous-version changelog arg, filter changelog commits (#7045) ( 6aa5729d )
- build: Limit versions.yml to three releases, and collapse patch versions (#7086) (#7087) ( 168f447a )
- build: Limit versions.yml to three releases, and collapse patch versions (#7086) ( b2f481e4 )
- build: Plumb NPM token, skip spotless hooks when rewriting package.json (#7043) (#7044) ( 5b14f932 )
- build: Plumb NPM token, skip spotless hooks when rewriting package.json (#7043) ( f0d8dae2 )
- build: Publish debs on release (#7091) (#7092) ( 75c5e544 )
- build: Publish debs on release (#7091) ( 0d1ba306 )
- build: Update top-level versions.yml metadata if release is newest (#7080) (#7082) ( fe9ebe5e )
- build: Update top-level versions.yml metadata if release is newest (#7080) ( 6c3cd4eb )
- changelog: Use proper seconds date format (#7047) (#7048) ( 29bca907 )
- changelog: Use proper seconds date format (#7047) ( 4dbd2ce2 )
- clouddriver/aws: fix corner cases in AmazonNamedImageLookupController (#7188) ( bd4875f6 )
- clouddriver: replace cast to Moniker in JobUtils.cancelWait ( 1f93847f )
- config: fix the issue of halyard failing to add docker registry account (#7066) (#7068) ( 0d5a0591 )
- config: fix the issue of halyard failing to add docker registry account (#7066) ( 7a2bf022 )
- core/pipeline: prevent duplicate executions in UI when combining filters (#7097) ( 22db793b )
- core: Always use clusters parameter for ECS server group URLs (#10171) ( 3f2418ea )
- docker: fix missing slash issue of docker registry client’s base url (#7110) ( f5c9edb3 )
- docker: fix missing slash issue of docker registry client’s base url (backport #7110) (#7111) ( 9151b959 )
- docker: fix the issue of fetching docker images (#7073) (#7074) ( 4f9ba539 )
- docker: fix the issue of fetching docker images (#7073) ( 93ea3ff5 )
- echo/retrofit2: fix the handling of responses from APIs of GoogleChat and Slack (#7175) ( 450ea3f6 )
- front50/korkversion: remove older duplicate entry of korkVersion (#7124) ( b179f4ec )
- googlechat: fix googlechat encoding issue (#7165) (#7166) ( e0ca3882 )
- googlechat: fix googlechat encoding issue (#7165) ( 313fa6d4 )
- igor-web: fix Jenkins job’s build response handling issue (#7105) (#7107) ( f65eb2c4 )
- igor-web: fix Jenkins job’s build response handling issue (#7105) ( 993b01c9 )
- keel: add executor pool for asynchronous requests (#7190) ( 93b87572 )
- logs: Fix log message formatting - likely gorovy to java miss (#7199) ( 23082706 )
- notifications: Prevent duplicate notifications for Manual Judgment stages (#1506) ( 989e20b5 )
- ops: fix Groovy missing property on retry of failed operation (#7112) ( 250f5955 )
- orca/retrofit2: error @Param must not come after @Query (#7198) ( a3c4ed5f )
- orca/retrofit2: fix path and query params order issue (#7183) ( 3574bbeb )
- orca/retrofit2: fix wildcard in parameter type in echo’s retrofit2 client’s api interface method (#7189) ( e4b1ebc6 )
- orca/retrofit: replace RetrofitError with SpinnakerServerException in orca.yml to add automatic retries to API calls that might fail transiently. (#7180) ( ebb54afb )
- pipelineTemplateList: Only pass scopes if explicitly provided (#7116) ( 7973e0c2 )
- publishing: Write all versions to Maven metadata (#7126) (#7127) ( c1b4d73d )
- publishing: Write all versions to Maven metadata (#7126) ( f12a946a )
- rest: fix the retrofit2 error messages coming in the test logs of RestEventListenerTest (#7055) (#7058) ( 081cd201 )
- rest: fix the retrofit2 error messages coming in the test logs of RestEventListenerTest (#7055) ( ff4c04b5 )
- retrofit1: remove the retrofit1 code (#7173) ( 48a43bd0 )
- retrofit2: fix a broken scenario related to LegacySignatureCallAdapter (#7131) ( bf302616 )
- retrofit2: fix a broken scenario related to LegacySignatureCallAdapter (backport #7131) (#7135) ( 4fb42281 )
- retrofit2: fix query param encoding logic to accommodate repeating query params (#7133) (#7134) ( 7252a084 )
- retrofit2: fix query param encoding logic to accommodate repeating query params (#7133) ( c1139c9d )
- retrofit2: fix the issue of retrofit2 being unable to convert the Event object to RequestBody. (#7060) (#7067) ( 972e36bc )
- retrofit2: fix the issue of retrofit2 being unable to convert the Event object to RequestBody. (#7060) ( 6cbd3662 )
- retrofit2: remove leading slashes from all the retrofit2 api interfaces (#7159) ( b2f2742b )
- retrofit2: remove leading slashes from all the retrofit2 api interfaces (backport #7159) (#7160) ( 450f01e1 )
- retrofit: fix retrofit1 client definition in kork (#7130) ( ae505cdc )
- saml: Cherry pick saml assertion signing fix from gate repo (#7197) ( 50418dbd )
- test: move test file to the right location (#7102) (#7103) ( a991d2d2 )
- test: move test file to the right location (#7102) ( 38adb45a )
- tests: update failing test due to recent changes in ServerGroups (ReplicaSet) ( 5489344e )
- web: add ProvidedIdRequestFilter (#7120) ( 7301a98f )
- web: fix HelmConverterFactory for deserialization error (#7077) (#7079) ( 4cf4d420 )
- web: fix HelmConverterFactory for deserialization error (#7077) ( 0b6dc0d2 )
Other
- build: Migrate from OSSRH to Central Portal (#7114) (#7123) ( 745c1e81 )
- build: Migrate from OSSRH to Central Portal (#7114) ( 9b22488a )
- build: dynamic version indexing in tag name based on type (#7202) (#7203) ( e9d8ebc4 )
- change: Merge pull request #7071 from spinnaker/auto-merge-main ( de917997 )
- change: Merge pull request #7078 from zrashwani/feat/kayenta-outlier-strategy-field ( 8a7f05de )
- change: Merge pull request #7089 from christosarvanitis/feat/helmOciArtifacts ( 9ffb48b9 )
- change: Merge pull request #7113 from christosarvanitis/feat/HelmArtifactsTriggers ( db3c0044 )
- change: Merge pull request #7119 from dbyron-sf/jobutils-cancelwait ( 0860bfa4 )
- change: Merge pull request #7132 from spinnaker/dependabot/github_actions/gatsbyjs/stale-1.1.0 ( a5e2896c )
- change: Merge pull request #7140 from dbyron-sf/run-when-k8s-integration-tests-when-workflow-is-modified ( cca49629 )
- change: Merge pull request #7156 from dbyron-sf/run-clouddriver-integration-tests-when-dependent-libs-change ( ef408f08 )
- change: Merge pull request #7161 from cristhian-castaneda/refactor/reactify-infrastructure-servergroup-details ( 69f494f5 )
- change: Merge pull request #7176 from cristhian-castaneda/test/add_kubernetes_functional_tests ( daf3c051 )
- change: Remove unused CI GHA from monorepo merge ( 658a47c0 )
- clouddriver/aws: specify a region when querying for aws images (#7193) ( 5caf9a3d )
- clouddriver/kubernetes: test against a 1.30.13 k8s cluster (#7139) (#7141) ( abe2528f )
- clouddriver/kubernetes: test against a 1.30.13 k8s cluster (#7139) ( a88b213b )
- clouddriver/kubernetes: upgrade kind to 0.29.0 (#7138) (#7142) ( 8c463a59 )
- clouddriver/kubernetes: upgrade kind to 0.29.0 (#7138) ( 3d468c62 )
- clouddriver: demonstrate that JobUtils.cancelWait fails ( a8046076 )
- clouddriver: give the jvm 8g when compiling (#7195) ( 32494157 )
- core: upgrade to Node.js 20.x (#7177) ( 6521da25 )
- core: upgrade to TypeScript 5.x (#7061) ( dd732fbd )
- dependency: bump tomcat from 9.0.83 to 9.0.107 (#7154) ( a5c65ed5 )
- deps: bump form-data in /.github/actions/spinnaker-release (#7169) ( bff84855 )
- deps: bump gatsbyjs/stale from 0.1.0 to 1.1.0 (#7023) ( 679ca776 )
- deps: bump gatsbyjs/stale from 0.1.0 to 1.1.0 (#7023)” (#7100) ( 504a916b )
- deps: bump gatsbyjs/stale from 0.1.0 to 1.1.0 ( bfe45801 )
- deps: bump golangci/golangci-lint-action from 7 to 8 (#7094) ( 3bcf1dea )
- deps: bump pbkdf2 from 3.1.2 to 3.1.3 in /deck (#7117) ( df936003 )
- deps: bump undici in /.github/actions/spinnaker-release (#7084) ( cd040ee3 )
- deps: bump undici in /.github/actions/update-monorepo (#7075) ( ba273657 )
- front50/retrofit2: upgrade the lone EchoService interface to retrofit2 in front50 (#7151) (#7153) ( fb781906 )
- front50/retrofit2: upgrade the lone EchoService interface to retrofit2 in front50 (#7151) ( 2b513742 )
- gha: run clouddriver integration tests when kork or fiat change ( eedb67e3 )
- gha: run clouddriver integration tests when kork or fiat change (backport #7156) (#7158) ( 14c9e06e )
- gha: run clouddriver integration tests when the github workflow changes ( 5b9daa55 )
- gha: run clouddriver k8s integration tests when the workflow is modified (#7157) ( b5de0d40 )
- gha: run clouddriver k8s integration tests when the workflow is modified ( d0a9f0c7 )
- kubernetes: convert server group details component to react ( 9af7b05e )
- kubernetes: convert server group manager details component to react (#7184) ( 80e8490c )
- mergify: upgrade configuration to current format (#7040) ( db0f37c9 )
- orca: restore changes from https://github.com/spinnaker/orca/pull/4566 (#7167) ( c3b5f6b5 )
- projects: convert projects component to react (#7200) ( ffe16cd3 )
- retrofit2/test: remove unused code (#7129) ( f35e1484 )
- retrofit2: Upgrade retrofit clients to retrofit2 in Kayenta (#7093) ( 932cfbc5 )
- retrofit2: update retrofit1 clients to retrofit2 (#7098) ( dca52e68 )
- retrofit2: upgrade all retrofit clients to retrofit2 in Orca (#7085) ( 525ff2be )
- test/functional: upgrade cypress (#7062) ( bca54be2 )
- test: adjust test code to execute on arm (#7049) ( bb256d4c )