Skip to content

Releases: spinnaker/clouddriver

clouddriver v5.67.0

20 Jul 16:40
966cf48
Compare
Choose a tag to compare
fix(elasticsearch): Fix race conditions in elasticsearch tests (#4751)

The elasticsearch tests are failing intermittently because there
are numerous race conditions between when index refreshes cause
a mutating operation to be visible, and when we assert that the
operation is visible.

Currently the test cluster is set up to reindex every 1s, and we
are using sleep statements and retries to ensure we wait that long
before failing a test. In addition to making these tests slow, there
are intermittent failures (particularly under high load) when we
fail before the re-index has occurred.

Let's make this deterministic as follows:
(1) Manually refresh the index before verifying the status of an
operation.
(2) Set the refresh_interval to -1, which means never automatically
refresh. This ensures that tests will always fail if we forget to
invoke the manual refresh to avoid future intermittent tests.

As an added benefit, this speeds up the tests significantly, as
we're no longer unnecessarily waiting. In my very rough testing,
the time to execute tests in this class is reduced from ~35s to
~7s.

clouddriver v5.66.0

17 Jul 17:56
6420927
Compare
Choose a tag to compare
feat(plugins): move DescriptionValidator to clouddriver-api (#4747)

* feat(plugins): move DescriptionValidator to clouddriver-api

This allows plugins to implement DescriptionValidators via clouddriver-api. Unfortunately Spring's Errors class is used in the contract of DescriptionValidator.validate() and we can't put that dependency in clouddriver-api.
This PR creates ValidationErrors which hides Errors from Spring. ValidationErrors is just an interface that defines the reject methods in Errors. DescriptionValidationErrors now implements ValidationErrors as well.
All existing validators had to get their validate method updated to use ValidationErrors instead of Errors. Some tests also needed minor changes. That is the bulk of the changes and they are all derivative changes. The core changes are in DescriptionValidator and DescriptionValidationErrors.

* add Beta annotation to new api classes

clouddriver v5.65.0

16 Jul 21:10
3b85259
Compare
Choose a tag to compare
chore(dependencies): Autobump korkVersion (#4748)

Co-authored-by: root <root@8d7c1f8eef3c>

clouddriver v5.64.0

09 Jul 15:42
48daebd
Compare
Choose a tag to compare
chore(dependencies): Autobump korkVersion (#4731)

Co-authored-by: root <root@80d4eac187ec>

clouddriver v5.63.0

02 Jul 15:25
9151577
Compare
Choose a tag to compare
fix(api): create clouddriver-api and move cloud provider API (#4694)

* fix(api): create clouddriver-api and move cloud provider API

This moves the current cloud provider API to the new clouddriver-api module. Not everything that is API was moved, but it is almost everything I used in the Nomad plugin. Most of what was moved has been left as is for now. The things not yet moved or modified were mainly due to the need to limit external dependencies in clouddriver-api. There are specific notes below.

build.gradle doesn't add any of the cross module stuff to clouddriver-api just like clouddriver-bom.
Several modules now depend on clouddriver-api, but some of thier other interproject depedencies can be removed soon (especially for the cloud providers).

Modifications:
* DefaultCacheData was split into DefaultCacheData and DefaultJsonCacheData to separate out the jackson based construction.
* AbstractAccountCredentials was separated from AccountCredentials to remove the getPermissions method (which requires fiat)
* OnDemandMetricsSupportable is a new interface for OnDemandMetricsSupport which requires spectator, but only for implementation.
* SearchableProvider no longer uses groovy.transform.Canonical. It shouldn't matter since it is a Java class.

I've fix a few places in the code that these changes affect. DefaultJsonCacheData is used for object mappers. AccountCredentials implemenations now extend AbstractAccountCredentials. DefaultAllowedAccountsValidator has added conditional logic around getPermissions() calls because that isn't in the AccountCredentials interface.

Todo:
* DescriptionValidator uses org.springframework.validation.Errors from spring-context in the method contract.
* DeployHandler uses DeploymentResult which is groovy and should be refactored separately.
* A few unit tests need to move to clouddriver. I didn't know if we were cool with Groovy unit tests or if I needed to rewrite them. They work where they are.

This was the least invasive commit I could make. The above todos will happen in follow up PRs.

clouddriver v5.62.0

24 Jun 19:33
604d234
Compare
Choose a tag to compare

604d234 chore(dependencies): Autobump fiatVersion (#4708)
9c9f1f8 chore(dependencies): Autobump korkVersion (#4707)
b1c3b92 chore(dependencies): Autobump spinnakerGradleVersion (#4706)
6075580 fix(gce): use the new ScaleInControl autoscaler API (#4705)
58f713b chore(build): gradle 6.5 (#4703)
c9de942 chore(dependencies): Autobump korkVersion (#4702)
ee19a6c chore(dependencies): Autobump korkVersion (#4701)
e25348c fix(provider/appengine): Fix for issue spinnaker/spinnaker#5834 (#4700)
8b0f7aa fix(aws): undo part of the perf improvement in #4692 (#4698)
efe3d31 chore(dependencies): Autobump korkVersion (#4697)
6cb303a perf(aws): Minor improvement to perf of /serverGroups endpoint (#4692)
4a5e13a chore(dependencies): Autobump korkVersion (#4695)
0488c84 feat(core): Support individually versioned operations (#4685)
cb7504a chore(dependencies): Autobump korkVersion (#4691)
08917f9 fix(kubernetes): Fail with a useful message if manifest not found (#4690)
4142af8 chore(dependencies): Autobump korkVersion (#4689)
460489c feat(safety): Move TrafficGuard from Orca to Clouddriver (#4681)
db5e7bc chore(dependencies): Autobump korkVersion (#4688)
ee76a4b chore(dependencies): Autobump korkVersion (#4687)
0dad265 chore(dependencies): Autobump korkVersion (#4686)
ed8643d refactor(kubernetes): Remove unused fields (#4684)
3e24caa fix(lang): convert Groovy to Java for cloud provider classes (#4677)
48f4d34 refactor(core): Fix warning fetching operation version (#4680)
079af00 fix(sql): Store dates as string instead of maps (#4650)
2ffb1fd chore(dependencies): Autobump korkVersion (#4682)
024c30e chore(dependencies): Autobump korkVersion (#4679)
e585daa fix(ecs): set IAMRoleCachingAgent AWS region (#4674)
e9f7c3e fix(provider/cf): fix destroy cf service instance (#4678)
47329fa chore(dependencies): Autobump korkVersion (#4676)
84821d3 chore(dependencies): Autobump fiatVersion (#4675)
14c9515 fix(cache): OnDemandType in no longer an enum (#4673)
05d2b68 fix(amazon): Don't overwrite the LB target group attribute values during upsert operation (#4666)
e1372cc chore(dependencies): Autobump korkVersion (#4671)
ee0ae40 fix(provider/cf): use moniker object for application name (#4670)
b23812f fix(aws/cache): Reverts authoritative cluster cache change (#4669)
b562da8 fix(aws/cache): include informative results in CatsClusterCachingAgent (#4668)
ae32d54 refactor(provider/cf): move cf Job classes to correct modules to avoid siloed code (#4667)
d68a92e chore(aws): Update BlockDeviceConfig for c6g/r6g family
7c8d4b6 style(ecs): Corrects spelling of account (#4659)
7486405 fix(ecs): add null check for target group cache data (#4665)

clouddriver v5.61.0

09 Jun 18:27
6eacb02
Compare
Choose a tag to compare
Revert "fix(awx/titus): Server group names should be lower case (#466…

clouddriver v5.60.0

04 Jun 18:28
e7cf305
Compare
Choose a tag to compare
feat(aws): Only collect names of security groups in AWS deploy descri…

clouddriver v5.59.0

22 Apr 20:05
cf3e31c
Compare
Choose a tag to compare

cf3e31c refactor(google): Convert GoogleCommonSafeRetry to java (#4538)

clouddriver v5.58.0

22 Apr 01:24
4ddcc33
Compare
Choose a tag to compare
fix(aws): Resolve BasicAmazonDeployDescription NPE when returning nam…