{"push_id":4475890415,"size":95,"distinct_size":95,"ref":"refs/heads/master","head":"91e85ad6d0fdf9082c4b056a2ee66ab69da091ed","before":"654ce75b994f0432d714045e35cf7b7c2baabfb1","commits":[{"sha":"31e2107d888640a295cefea79950506245105db2","author":{"name":"Mark Vulfson","email":"0b430c9beb1044121bd38b6e06cfc091eb071fde@netflix.com"},"message":"chore(mergify): add 'auto merged' label (#4115)\n\nThis allows us to easily find and audit auto merged PRs","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/31e2107d888640a295cefea79950506245105db2"},{"sha":"62478905ca79f4a6cdb8195fdfd34cf24e15e78a","author":{"name":"spinnakerbot","email":"a4a8645f7f0005a16a040883bfb21e51a77178c1@spinnaker.io"},"message":"chore(dependencies): Autobump korkVersion (#4116)","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/62478905ca79f4a6cdb8195fdfd34cf24e15e78a"},{"sha":"55f09613e1828e6e7767cff37fd84a01c3ba3afe","author":{"name":"Cameron Fieber","email":"619415405c5170d98e2c7b708512227d54c200ec@netflix.com"},"message":"chore(dependencies): fiatVersion 1.7.0 (#4117)\n\nfixes a test that was asserting the permission serialization format,\r\nshould probably refactor at some point to not be coupled to the\r\nAuthorizations enum","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/55f09613e1828e6e7767cff37fd84a01c3ba3afe"},{"sha":"ecb95c22969f247100183bfc1f57a0dcd51b5689","author":{"name":"Cameron Fieber","email":"1d572acbfa68c7c6e541c7b840d6b622e5c0dc91@fieber.ca"},"message":"fix(fiat-api): fiatVersion 1.7.1 (#4120)\n\nFixes serialization issue in fiat-api version mismatch with new values in Authorizations enum","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/ecb95c22969f247100183bfc1f57a0dcd51b5689"},{"sha":"4dde76784a308ea211fd89151761972d71814dcb","author":{"name":"Matt Duftler","email":"2c7128a58d2b3309625d2d8c991c9a4b75d35c3d@google.com"},"message":"refactor(google): Update to latest google credentials style. (#4119)","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/4dde76784a308ea211fd89151761972d71814dcb"},{"sha":"dda43ded4cb0fcf7297707bbe2e6cbe79458c01b","author":{"name":"Cameron Fieber","email":"619415405c5170d98e2c7b708512227d54c200ec@netflix.com"},"message":"chore(dependencies): fiatVersion 1.7.2 (#4121)\n\nfiat-api 1.7.2 reverts a breaking change from 1.6.0","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/dda43ded4cb0fcf7297707bbe2e6cbe79458c01b"},{"sha":"fa202f1ddb3e65d7d0839eb58a5c8ac13d7de849","author":{"name":"Michael Plump","email":"25c2b4883978f4264609c4519fcccd0292e25509@google.com"},"message":"chore(dependencies): upgrade kork (#4124)\n\nI don't know why we I was using these deprecated (and now deleted)\r\nclasses in the tests; we don't use them in the actual stateful disk\r\ncode. (The test is just making sure we copy statefulPolicy over, so\r\ndoesn't really care what is in it.)","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/fa202f1ddb3e65d7d0839eb58a5c8ac13d7de849"},{"sha":"1bbbf53dd5822c2a6e8b0818b57520f5d77988b9","author":{"name":"Nicolas Cohen","email":"451ff575d980b9aefe49885ca19b45f0ba28b7ee@users.noreply.github.com"},"message":"fix(cloudconfig): Log errors and continue (#4118)","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/1bbbf53dd5822c2a6e8b0818b57520f5d77988b9"},{"sha":"64197ce0aa5a3b1830a946aa7c5e657e7d241ba4","author":{"name":"Michael Plump","email":"25c2b4883978f4264609c4519fcccd0292e25509@google.com"},"message":"fix(google): don't leave orphaned applications in the cache (#4123)\n\n* refactor(google): convert CacheResultBuilderSpec to Java\r\n\r\n* test(google): add another test for CacheResultBuilderTest\r\n\r\n* refactor(google): keep an empty list around for authoritative types\r\n\r\nIf a AbstractGoogleServerGroupCachingAgent has some applications stored,\r\nbut in the next run it finds no applications, it doesn't put anything\r\nunder the \"applications\" key. DefaultProviderCache then has some weird\r\nbehavior where it removes all relationships associated with that\r\napplication, but leaves the existing application in the cache. That\r\nmeans we'll just repeat that behavior again the next time the caching\r\nagent runs. The application data is just orphaned but triggers\r\nrelationship evictions every single caching cycle.\r\n\r\nAmazon doesn't have this problem because they always stick a\r\nList<CacheData> under the applications key, even if it's empty. This is\r\nenough to tell putCacheResult() to store that empty list, overwriting\r\nwhatever was there before.\r\n\r\nThe orphaned data isn't the cause of spinnaker/spinnaker#4511, but it\r\ndramatically exacerbates that issue. (The real issue is that every\r\nsingle regional/zonal caching agent asserts ownership over the\r\napplication and will happily delete it, which triggers deletions of\r\nrelationships that were put there by other caching agents.)\r\n\r\nI was working on a larger refactor of CATS to make this bug less likely\r\nto happen, but since we're about to cut a release branch, I'd rather\r\njust check in this smaller fix.","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/64197ce0aa5a3b1830a946aa7c5e657e7d241ba4"},{"sha":"2aaab601a1c3e0d1c1029645ddf4c1f88eaac1f6","author":{"name":"Xavi León","email":"00d1330e330dc2280acfbea5f72de92332dbd0f7@gmail.com"},"message":"feat(cfn): delete CFN changeset if empty upon request (#4101)\n\n* feat(cfn): delete CFN changeset if empty upon request\n\nThis patch introduces the DeleteCloudFormationChangeSet async operation,\nso Orca can request to delete a CFN change set under some conditions\n(e.g. when it's empty, or after the change set has been executed). This\nwill allow full control of the change set life cycle by Spinnaker.\n\n* Add some information about the error\n\n* Update clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/deploy/ops/DeleteCloudFormationChangeSetAtomicOperation.java\n\nCo-Authored-By: Mark Vulfson <markvu@live.com>\n\n* Missing parenthesis\n\n* Rethrow exception so it can be properly handled by orca","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/2aaab601a1c3e0d1c1029645ddf4c1f88eaac1f6"},{"sha":"58d3b685207a5d1ae13dc970ab62a96c3e45624c","author":{"name":"spinnakerbot","email":"a4a8645f7f0005a16a040883bfb21e51a77178c1@spinnaker.io"},"message":"chore(dependencies): Autobump korkVersion (#4125)","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/58d3b685207a5d1ae13dc970ab62a96c3e45624c"},{"sha":"6ab42883680e6e980996f505f196af777e139c27","author":{"name":"Eric Zimanyi","email":"5d05ebf431fd21c231b042c233237a0dc079f070@google.com"},"message":"fix(kubernetes): Fix all agents caching cluster-scoped resources (#4128)\n\n* refactor(kubernetes): Minor refactor of core caching agent test\r\n\r\nPull some common logic out of ProcessOnDemandResult so that it can\r\nbe reused when we need to process the results of a loadData request\r\nin an upcoming commit.\r\n\r\n* test(kubernetes): Add tests to loadData in core caching agent\r\n\r\nThere are no tests of loadData() in the KubernetesCoreCachingAgent;\r\nadd a simple test that validates a namespaced and cluster-scoped\r\nkind can be succesfully cached (ie, is returned from loadData and\r\nis persisted to the cache).\r\n\r\n* refactor(kubernetes): Immutable collections and nonnull annotations\r\n\r\nMake a few collections returned by the kubernetes caching agent\r\nimmutable, and add some nonnull annotations that simplify the\r\nwork of calling code.\r\n\r\n* refactor(kubernetes): Split caching of resources by scope\r\n\r\nThis commit splits the work to cache kubernetes objects into two\r\nfunctions: the first caches namespace-scoped objects for all\r\nnamespaces relevant for the caching agent, and the second caches\r\nall cluster-scoped resources.\r\n\r\nThis means that we'll no longer try to read the cluster-scoped\r\nresources once per namespace and will read them once per caching\r\nagent.\r\n\r\n* fix(kubernetes): Fix all agents caching cluster-scoped resources\r\n\r\nCurrently all caching agents are caching cluster-scoped resources;\r\nthis should be delegated to a single agent so that we don't duplicate\r\nwork.\r\n\r\n* fix(kubernetes): Remove duplicate test assertions\r\n\r\nI had intended the second set of assertions to be testing the\r\ncontents of the cache. But it loadData doesn't actually\r\nupdate the cache (it just returns results to an outer function that\r\nstores the result) so we can't test that the cache is updated after\r\ncalling loadData. Just remove the extra assertions.","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/6ab42883680e6e980996f505f196af777e139c27"},{"sha":"eb301a87c941f1811ad3cf6847252c97714406a9","author":{"name":"Maggie Neterval","email":"bf50aeeb2783ffa9bc464158637de240647837ae@google.com"},"message":"feat(kubernetes): permit multiple ReplicaSets to be deployed with a single rollout strategy config (#4126)","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/eb301a87c941f1811ad3cf6847252c97714406a9"},{"sha":"f55f048d525f1c899d3eb1dec071eef21579402f","author":{"name":"spinnakerbot","email":"a4a8645f7f0005a16a040883bfb21e51a77178c1@spinnaker.io"},"message":"chore(dependencies): Autobump fiatVersion (#4131)","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/f55f048d525f1c899d3eb1dec071eef21579402f"},{"sha":"5bb06aacf504182b993bf66adb027cb6cdfcf87f","author":{"name":"Jammy Louie","email":"b27ee7c9335293711c0f905e9ad92f036d2b9554@pivotal.io"},"message":"fix(cf): reduce unnecessary calls to foundation to improve performance. (#4130)","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/5bb06aacf504182b993bf66adb027cb6cdfcf87f"},{"sha":"bc5aeb417c7924d445732a7d6aed08e503a7b112","author":{"name":"Michael Plump","email":"25c2b4883978f4264609c4519fcccd0292e25509@google.com"},"message":"feat(gce): support autoscaler scale-down controls (#4129)\n\n* refactor(gce): don't serialize AutoscalingPolicy\n\nSerializing Google API types doesn't work right with Jackson. These\ntypes are actually all `Map` objects, so Jackson does weird things with\nthem. You can add ``@JsonTypeInfo` and it kinda works, until it doesn't.\n\nIn particular, it's okay to for them to reference another Google\nAPI object, but if _that_ object references a third Google API type\n(e.g. AutoscalingPolicy has a ScaleDownControl field, which has a\nFixedOrPercent field) then exceptions will be thrown when\ndeserializing that third-tier field.\n\nFortunately (and maybe for this exact reason??) we already have a class\nGoogleAutoscalingPolicy which mirrors exactly the fields in\nAutoscalingPolicy, so let's use that one instead.\n\n* refactor(gce): Move the AutoscalingPolicy conversion code into the cache\n\nGCEUtil used to have the function for converting from AutoscalingPolicy\nto GoogleAutoscalingPolicy, but now\nAbstractGoogleServerGroupCachingAgent is the only place that uses it, so\nmove it in there.\n\n* feat(gce): support autoscaler scale-down controls\n\n* fix(gce): copy scale-down policy to the cache and back to deck\n\n* fix(gce): allow removing a scaleDownControl by setting it to {}\n\n* fix(gce): address Eric's PR comments\n\n* test(gce): fix the test to handle a null value properly","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/bc5aeb417c7924d445732a7d6aed08e503a7b112"},{"sha":"36a1efe45b7528a747c3749bff30a028fe44912f","author":{"name":"Eric Zimanyi","email":"5d05ebf431fd21c231b042c233237a0dc079f070@google.com"},"message":"refactor(kubernetes): Delete unused code (#4133)\n\nThis code was part of a temporary implementation of authorization\nchecks that has now been replaced. We can now delete the code.","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/36a1efe45b7528a747c3749bff30a028fe44912f"},{"sha":"94e13e529e13493484a2a7b1cdd813b1feb6a9fa","author":{"name":"Maggie Neterval","email":"bf50aeeb2783ffa9bc464158637de240647837ae@google.com"},"message":"fix(kubernetes): surface dockerRegistries to credentials endpoint (#4134)","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/94e13e529e13493484a2a7b1cdd813b1feb6a9fa"},{"sha":"4a7cfbff43adbb85c244d25211c49c82a16851df","author":{"name":"Chris Smalley","email":"5f3492e15eb35a24f01406f71b7f7a476a206482@netflix.com"},"message":"fix(saga-retry): Opt-in pattern for retrying non-SpinnakerExceptions (#4097)\n\nThe pattern of opting-out of non-SpinnakerExceptions is too broad and results in retries that quickly spiral out of control.  Until we have wide spread adoption of SpinnakerException and can make all of our retryable decisions off that, we will specifically opt-in to retrying exceptions.","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/4a7cfbff43adbb85c244d25211c49c82a16851df"},{"sha":"0b09b4c45a9bf8b513479af82d51ba592896653b","author":{"name":"Eric Zimanyi","email":"5d05ebf431fd21c231b042c233237a0dc079f070@google.com"},"message":"fix(kubernetes): Fix mis-spelled API group (#4135)\n\n* fix(kubernetes): Fix mis-spelled API group\n\nThe networking.k8s.io API group is mis-spelled as network.k8s.io;\nfix this. This bug is preventing security groups from being cached\nby clouddriver.\n\nWe also should accept extensions/v1beta1 as the API group, which can\nstill be returned from clusters running Kubernetes < 1.16.\n\n* fix(kubernetes): Fix test broken by prior commit","distinct":true,"url":"https://api.github.com/repos/duftler/clouddriver/commits/0b09b4c45a9bf8b513479af82d51ba592896653b"}]}
{"actor":{"display_login":"duftler"}}