Clouddriver 8.0.1
- git/repo: Fixed concurrency issues (#5345) (db215e77)
Note: This release requires Halyard version 1.41.0 or later.
This release includes fixes, features, and performance improvements across a wide feature set in Spinnaker. This section provides a summary of notable improvements followed by the comprehensive changelog.
As a followup to this change in Spinnaker version 1.22, Spinnaker 1.26 removes the kubernetes.jobs.append-suffix
flag. Note that the default value of this flag was false in Spinnaker version >= 1.22. To continue having a random suffix added to the job name, set the metadata.generateName
field instead of metadata.name
, which causes the Kubernetes API to append a random suffix to the name.
In Spinnaker < 1.26 every time a git/repo
artifact was needed during a pipeline execution, clouddriver cloned the repository, returned the files and deleted the clone immediately.
Now in Spinnaker 1.26 we added support for "caching" git repositories, so only the first time the repository is needed it will be cloned, and subsequent times clouddriver will do a git pull
to only download updates. It is expected that this dramatically improves execution times and reliability when working with big repositories.
This is an opt-in feature that is disabled by default, to use it you need to add to clouddriver profile configuration the following options:
artifacts:
gitrepo:
clone-retention-minutes: 0 # (Default: 0). How much time to keep clones. 0: no retention, -1: retain forever
clone-retention-max-bytes: 104857600 # (Default: 100 MB). Maximum amount of disk space to use for clones.
When the maximum amount of space configured for clone retention is reached, clones will be deleted after returning from the download request, just as if retention was disabled.
Clouddriver account sharding is an opt-in feature, disabled by default, and is enabled by setting a new
configuration property caching.sharding-enabled
to true
.
It works for the clouddriver that uses SQL agent scheduler.
The feature works for all cloud providers. Accounts are split among the available pods based on their name.
All the caching agents for the same account are run by the same pod but not all pods cache all accounts.
Spinnaker 1.26 no longer supports Kubernetes deployment targets prior to version 1.16.
Impact
If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:
Additionally, errors like the following appear in the Clouddriver logs:
2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
Workaround
If you are affected by this change, perform the following tasks to update your applications:
FeaturesController
for operations that are not an @AtomicOperation
or @Component
(9904d5ea):clouddriver-cloudfoundry:spotlessApply
(bf1bdceb):clouddriver-cloudfoundry:spotlessApply
(bf1bdceb)mode="CREATABLE"
to the ReactSelectInput (b3f3bfa7)mode="CREATABLE"
to the ReactSelectInput (b3f3bfa7)multi={true}
(b3f3bfa7)flex: 1
to responsive table cell so the cell takes up the available width (f53787e8)TaskMonitorWrapper
. (9f3d454c)import type
to eliminate certain warnings during karma runs (84e4fe6b)core
(a9a36592)ktlint
and spotless
(36f5b7b3)