pdk27/amazon-ec2-metadata-mock-1 0
A tool to simulate Amazon EC2 instance metadata
The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code
pdk27/aws-node-termination-handler 0
A Kubernetes DaemonSet to gracefully handle EC2 Spot Instance interruptions.
read and write operations across cloud providers
EllisLab's Open Source PHP Framework
Management UI for Spinnaker
Spinnaker Eventing Service
Amazon EKS Helm chart repository
Spinnaker auth service
Spinnaker Metadata Repository Service
issue commentspinnaker/spinnaker
Proposal: Improve AWS EC2 / Spot Support
Thanks @noahi @christopherthielen and SIG UI for all the comments. Here are meeting notes for the SIG UI discussion - https://docs.google.com/document/d/1wO4wxdZlnI1wXlUV4PF55Q0ZBbjWrt6YXdeh_a7Oqgw/edit#heading=h.f5iaps8k4cbf
comment created time in 6 days
push eventpdk27/rosco
commit sha 20b08d910709d80aa5028291a722b52cc587c1d7
chore(dependencies): Autobump korkVersion (#687) Co-authored-by: root <root@50805f9a9c19>
commit sha 83331fa8646cb33b28eb33ff76d4e522e9624073
chore(dependencies): Autobump korkVersion (#688) Co-authored-by: root <root@f429c082b070>
commit sha e22863cc89575b42b5b42e997b1d5b96db71b719
chore(dependencies): Autobump korkVersion (#689) Co-authored-by: root <root@12e6abdc8861>
commit sha 13487f2aa6852ec040725b4d31c1e7035116d138
chore(dockerfile): various Dockerfile cleanups (#690) * chore(dockerfile): delete the (unused) java8 dockerfiles * chore(dockerfile): replace deprecated MAINTAINER with LABEL * chore(dockerfile): use gid/uid 10111 for the spinnaker user * chore(dockerfile): make docker builds more cacheable
commit sha 93698c9d1e28ba615226574570bd245113196f3b
chore(dependencies): Autobump spinnakerGradleVersion (#691) Co-authored-by: root <root@6a807b439d68>
commit sha 508ec0640b9c367c7c07dbd3100f3b87f0e84c60
chore(build): gradle 6.6 (#692)
commit sha 162173095a2fa8fa521fa379b8d3ad15133b0f11
chore(dependencies): Autobump korkVersion (#693) Co-authored-by: root <root@87c6cb8f1126>
commit sha efab813c29c4190e049975157db881998075ba2a
chore(dependencies): Autobump korkVersion (#694) Co-authored-by: root <root@048626cb7ef2>
commit sha 79d1c25d215245bfb454453a8ef771fdebe2fbc7
chore(dependencies): Autobump korkVersion (#695) Co-authored-by: root <root@7cc2f7e2e8cd>
commit sha f4834d6df10c26782d9347fbda72ab03f7fcceca
chore(dependencies): Autobump korkVersion (#696) Co-authored-by: root <root@4bab6a330c11>
commit sha ffecdc9f3d51e95f7092a1c008526dcc92bf2b07
fix(bake): Fix error when updating artifacts after bake (#697) * test(bake): Add test exercising bake artifact handling There is currently no test that exercises the logic that updates the name and uuid on artifacts produced by a bake. Add a test exercising this logic that currently fails and will be fixed in the next commit. * fix(bake): Fix error when updating artifacts after bake When artifacts were made immutable, this usage was missed as it did not have tests (and was in groovy so compilation didn't catch it). Instead of mutating the artifacts, return copies with the appropriate fields changed.
commit sha f7bcc01768ab8953446a531bf434676390345a5f
chore(dependencies): Autobump korkVersion (#698) Co-authored-by: root <root@534ce9888ac0>
commit sha 21c758ac153e2c6fa88afc743109514fbd84053f
chore(dependencies): Autobump korkVersion (#700) Co-authored-by: root <root@167ad51ad4f2>
commit sha 3c2f6433810bbea26a7a224fa4505487ef9b59c8
chore(build): gradle 6.6.1 (#701)
commit sha 796bca51e251d514d63cfe4ba8811d81b545e358
chore(dependencies): Autobump korkVersion (#702) Co-authored-by: root <root@07aa874cb083>
commit sha cfc08b4bfdf34395f4e8395f108522a015a65870
chore(dependencies): Autobump korkVersion (#703) Co-authored-by: root <root@fa990adebdf5>
commit sha ce5cade75ffb4ab3def873017f684abf794f8091
chore(dependencies): Autobump korkVersion (#704) Co-authored-by: root <root@ec7bd04f30f1>
commit sha 9affb6ed33deaf0cca35de2b1e540c0ab861b7f7
chore(dependencies): Autobump korkVersion (#706) Co-authored-by: root <root@07935c2d2f7e>
push time in 17 days
push eventpdk27/orca
commit sha 837207a24912605eccafcb1cd76092574449150d
fix(metric): Correctly indicate execution type in execution metrics (#3844)
commit sha 3fa29ca79172024c96b316ec2173272788136bdd
fix(preconfigured): Allow PreconfiguredJobStage parameters to map to one-dimensional array property values (#3830) * fix(preconfigured): Update setNestedValue to handle one-dimensional array objects * fix(preconfigured): Handle case where array property is missing from root object * refactor(preconfigured): Use Groovy regex syntax * refactor(preconfigured): Update exception message to be more meaningful Co-authored-by: Mark Vulfson <[email protected]> Co-authored-by: Mark Vulfson <[email protected]>
commit sha 9aa0b3cf91504998a7f201ec1ada9e4e8ef97675
fix(exceptions): Don't let errors in `trackResult` leak out (#3843) It's possible for trackResult metrics call to fail and we don't want that failure to leak out and fail orca tasks Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha c5aa6b572889517dabcae0b016f0fc443ec66b1b
chore(dependencies): Autobump korkVersion (#3847) Co-authored-by: root <root@50805f9a9c19>
commit sha 7cb1e8972a63d21a9d09c874135a913b8fa8f189
chore(dependencies): Autobump korkVersion (#3850) Co-authored-by: root <root@f429c082b070>
commit sha f941c53a32c3ea2a2b70957909eb12f2a38e0256
fix(misc): Wire up metrics interceptor bean explicitly and also move to the new interface impl (#3852)
commit sha 717c56a68c293a06201d4c0edc1fe928c66d861e
chore(dependencies): Autobump korkVersion (#3853) Co-authored-by: root <root@12e6abdc8861>
commit sha 5f4b2edbe72ee5d7003edb71e7477592c1e928b0
fix(exceptions): add exception handler for exceptional situations (#3845) * fix(exceptions): add exceptionhandler for non-excpetional situations When a user submits a bad pipeline e.g. * with jenkins trigger that has an invalid properties file or job that doesn't exist) * with a broken pipeline template we don't want to 500 because: a) the calling service (echo in most cases here) will keep retrying which makes no sense b) it's an erroneous HTTP 500 metric that is noise * fix(exceptions): fix various exception issues 1. Don't log task failures on `UserException` 2. Don't fail retrieving properties file if the build wasn't started * fixup! Merge branch 'master' into mark/exceptionhandlers Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 707d44955028ceb3786d512e912131c4693eb472
fix(misc): adding explicit dependency between the registry,metrics interceptor and web mvc configurer (#3854)
commit sha 63a3322e8186f1e1291b90a28f1d0ade22ac8a67
feat(runjob): add ability to read props file even if job fails (#3855) * feat(runjob): add ability to read props file even if job fails * fixup! feat(runjob): add ability to read props file even if job fails
commit sha 5a6dc3532b46c84416ef9acd67a6d35bc7b414cd
fix(destroy): add disable stage to destroy server group stage (#3848) Let's add it as a beforeStage instead of duplicating the tasks in the disable stage. In particular, the task graph of DestroyServerGroupStage was missing a determineHealthProviderTask and using the now-deprecated WaitForAllInstancesNotUpTask. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha da35b8e5ba958bcf6bb061a18744753ec9d0dba7
feat(pipelines): Pass 'staleCheck' through from savePipeline context to front50 (#3841) * feat(pipelines): Pass 'staleCheck' through from savePipeline context to front50 Related to https://github.com/spinnaker/front50/pull/915 * test: update SavePipelineTaskSpec Co-authored-by: spinnaker <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 9d1ff489fd15101c2ddcffe7f654105863086853
chore(dockerfile): various Dockerfile cleanups (#3860) * chore(dockerfile): delete the (unused) java8 dockerfiles * chore(dockerfile): replace deprecated MAINTAINER with LABEL * chore(dockerfile): use gid/uid 10111 for the spinnaker user * chore(dockerfile): make docker builds more cacheable
commit sha 03bb515553d3de3b0864eba83ee0e4f719f3c445
feat(destroy): Add a flag to be able to skip the disable of destroy stage (#3858) Add an experimental flag `skipDisableBeforeDestroy` to the `DestroyServerGroupStage` so that applications that don't participate in discovery can skip disable step which should speed up their destruction operation. Co-authored-by: Adam Jordens <[email protected]>
commit sha 03cddba0eb100b08a18df39215a0dfaf04b11ac5
fix(sql): Create SqlActiveExecutionsMonitor via autoconfiguration instead of @Component (#3861) When this bean is created via @Component it fails to find the qualifier bean sqlExecutionRepository when qos is disabled. I can not say I really understand why. Now, the qualifier bean sqlExecutionRepository is found regardless of qos enabled/disabled.
commit sha 3224fb04bef4757f99ba6437a204664621989608
chore(orca): Remove unused Redis info file (#3849) Discovered whilst investigating Redis connection instantiation. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha ff78f1caf5034eae4f17b21583006df6d28ee143
chore(dependencies): Autobump spinnakerGradleVersion (#3862) Co-authored-by: root <root@6a807b439d68>
commit sha 05050949193e4121a7f93142d6b2857038a14f1b
chore(warnings): Clean up some compilation warnings (#3856) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 7fe1fe033eb261c71ff726ee3d67f4f296dec991
chore(build): gradle 6.6 (#3865)
commit sha 6048dcfb8f0f99c22e05ced8b5d24411a8ae8e93
chore(dependencies): Autobump korkVersion (#3866) Co-authored-by: root <root@87c6cb8f1126>
push time in 17 days
push eventpdk27/igor
commit sha 5f71fbf48a75ce2b24bbcbb116f250b11536e06e
feat(managed-delivery): Retrieve Managed Delivery manifests from GitHub (#828)
commit sha c21bc384d204d827ae2c3c258ab2c12f1888ebc2
chore(dependencies): Autobump korkVersion (#830) Co-authored-by: root <root@50805f9a9c19>
commit sha bd314624a3a11e6f7542ddd1a187456dc45e2ecd
chore(dependencies): Autobump korkVersion (#831) Co-authored-by: root <root@f429c082b070>
commit sha 3a9c65a32fbbacc2205e2377c4dd993c3ead86ed
chore(dependencies): Autobump korkVersion (#832) Co-authored-by: root <root@12e6abdc8861>
commit sha 24ed5d4705c246d281cf60cc46f72e63afdac3bc
chore(dockerfile): various Dockerfile cleanups (#833) * chore(dockerfile): delete the (unused) java8 dockerfiles * chore(dockerfile): replace deprecated MAINTAINER with LABEL * chore(dockerfile): use gid/uid 10111 for the spinnaker user * chore(dockerfile): make docker builds more cacheable
commit sha 34be8592f5547128afcb9664b823d12aa783cc15
chore(dependencies): Autobump spinnakerGradleVersion (#835) Co-authored-by: root <root@6a807b439d68>
commit sha f5b738fedddce00b6151776c6044f97e235af60d
fix(misc): Update jenkins client providers impls to use ok3 (#834) Co-authored-by: Adam Jordens <[email protected]>
commit sha 92b4fc40847488eaa1cc8636e562dec6ff1279b2
chore(build): gradle 6.6 (#836)
commit sha d2d216a52a0d4272f4c6f9cd21a0f3836c3911ee
chore(dependencies): Autobump korkVersion (#837) Co-authored-by: root <root@87c6cb8f1126>
commit sha 41ef2a3c44b67202b26414fda05a5f32b05a0115
chore(*): Use SprintBootApplication annotation on Main class (#838) This annotation is useful as a way of consistently obtaining the Main class package in our services so we can determine package information, like version, at runtime.
commit sha babd23f0437e5582a1c4120ec2ee7679f5d4b35c
fix(codebuild): set region when creating sts client (#839) There's a race condition where default region could not be found, causing STS client failed to be created. To fix it, we set STS client region to what specified in the codebuild halyard config. Fixed https://github.com/spinnaker/spinnaker/issues/5974 Co-authored-by: Clare Liguori <[email protected]>
commit sha e2ab4ab9ab0568e91c36a0825bd0bfeba9b1082d
chore(dependencies): Autobump korkVersion (#840) Co-authored-by: root <root@048626cb7ef2>
commit sha 56db9262b9037008e02bf43eea10ece7c01ce245
chore(dependencies): Autobump korkVersion (#841) Co-authored-by: root <root@7cc2f7e2e8cd>
commit sha 6ad7cf54dc7b3c1df4d88864608cda3d4479e3e4
chore(dependencies): Autobump korkVersion (#843) Co-authored-by: root <root@4bab6a330c11>
commit sha c7dd78f3ee91de092d558f7825ac81f1b3ffa239
chore(dependencies): Autobump korkVersion (#845) Co-authored-by: root <root@534ce9888ac0>
commit sha d68a1d9f6aafce6e6588426249dfcbf5b9d59a27
feat(ciService): add more fields to generic ci service (#844)
commit sha faa4f39a5cac3fc36c2697db03148620a66e264f
chore(dependencies): Autobump korkVersion (#846) Co-authored-by: root <root@167ad51ad4f2> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha d1c60dfec3fa5cbd7214a2ebd5104980d4e32b74
chore(build): gradle 6.6.1 (#847)
commit sha d75a3f5921d97ee9aabdecc4591950ae7832a154
chore(dependencies): Autobump korkVersion (#848) Co-authored-by: root <root@07aa874cb083>
commit sha 9df99083f4f21a5c70a72a07516110121683a9c7
chore(dependencies): Autobump korkVersion (#849) Co-authored-by: root <root@fa990adebdf5>
push time in 17 days
push eventpdk27/front50
commit sha 6b690b9994956e52cb0ac0bc9f5f7911a8f2ab2f
feat(pipeline): (optionally) validate that a saved pipeline is not stale (#915) * feat(pipeline): (optionally) validate that a saved pipeline is not stale, i.e., optimistic lock * feat(pipeline): only do stale check for updates with a lastModified payload Co-authored-by: spinnaker <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 57c9922924edc4f6a737c92e0d59d23f5e3174d6
refactor(gcs): Rewrite the GcsStorageService (#911) * refactor(gcs): turn the GCS Credentials into a Bean * refactor(gcs): consolidate the dataFilenames into config constants * refactor(gcs): move this config-parsing logic into the config object I doubt we still need this, but I guess it's simple enough to keep just in case 🤷 * refactor(gcs): get rid of the purge old versions logic This hasn't been necessary since we switched to updating the metadata (rather than creating new content) for the last-updated files, back in * refactor(core): Remove StorageService#ensureBucketExists No one ever calls this on the base class, only on specific implementations, so there's no reason for it to be a interface method. * refactor(gcs): Rewrite the GcsStorageService This rewrite uses the google-cloud-storage, which is a higher-level library than the google-api-services-storage we were using previously. I believe the old library is machine-generated from the protos, while the new library is manually written by the GCP team. In addition to being simpler to use, it also comes with some best practices baked in. In particular for us, it includes retry logic. This means we can remove our hand-written retry logic which both had bugs and was the source of a dependency on clouddriver. * chore(gcs): audit/clean up dependencies (and remove clouddriver dep!) * refactor(gcs): call ensureBucketExists in a @PostConstruct I think it makes more sense to do this as an ApplicationListener<ApplicationPreparedEvent>, but it would require some more refactoring that I'm not up for right now. * refactor(gcs): address some of the review comments from @ezimanyi * refactor(gcs): wait .5s to update last-modified before returning * test(gcs): better thread safety for the multi-threaded test Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha b94dfd0c648f35f7f467de0974477f9223c67fa3
chore(dependencies): Autobump korkVersion (#918) Co-authored-by: root <root@50805f9a9c19>
commit sha 24085beaf211917ed9a8242f7d021793b9679034
chore(dependencies): Autobump korkVersion (#919) Co-authored-by: root <root@f429c082b070>
commit sha ac2e2a72cbc0b6e9a525947f6f926b1cff085ebd
chore(dependencies): Autobump korkVersion (#921) Co-authored-by: root <root@12e6abdc8861>
commit sha cca223dbce84277137c476e6754d93d8fb7019b1
fix(exceptions): Use kork's NotFoundException (#922) Follow up from https://github.com/spinnaker/kork/pull/737 where I added a generic 400 response exception handler for UserException. But `front50` needs to return an actual 404 (since callers, e.g. `orca` expect and handle it). Kork already has a generic 404 handler for NotFoundException
commit sha 73993268afab8db10af96fc24e330823a8217835
chore(dockerfile): various Dockerfile cleanups (#925) * chore(dockerfile): delete the (unused) java8 dockerfiles * chore(dockerfile): replace deprecated MAINTAINER with LABEL * chore(dockerfile): use gid/uid 10111 for the spinnaker user * chore(dockerfile): make docker builds more cacheable
commit sha 9655c3caac24be8ea88ab843a10b5ecfef05a1ad
chore(dependencies): Autobump spinnakerGradleVersion (#926) Co-authored-by: root <root@6a807b439d68>
commit sha d07b4cb7aaa2d2b388b3051f0dfdf3a39ef3d592
chore(build): gradle 6.6 (#928)
commit sha e64126ccc0de71bec4acfa659bdd35c727e95030
chore(dependencies): Autobump korkVersion (#929) Co-authored-by: root <root@87c6cb8f1126>
commit sha fc9bbb18222edd43c58ccf6136819138d272941a
chore(dependencies): Autobump korkVersion (#931) Co-authored-by: root <root@048626cb7ef2>
commit sha 622bf18768280efc9498408e71d6262caa33698e
chore(dependencies): Autobump korkVersion (#932) Co-authored-by: root <root@4bab6a330c11>
commit sha 07849972407e2b50ab2d2e2575aa25c7397eefdc
chore(dependencies): Autobump korkVersion (#933) Co-authored-by: root <root@534ce9888ac0>
commit sha 20c631fcc352f0d66fbb7665b9827a61a36035bb
feat(gitRepoArtifact): include migration to move subpath to location field (#930) * feat(gitRepoArtifact): include migration to move subpath in metadata to location field only for git/repo artifacts. * refactor(gitRepoArtifact): clean tests syntax on where statement * refactor(gitRepoArtifact): include small methods to avoid code duplication * refactor(gitRepoArtifact): change Valid date
commit sha 41a52cffba4647051df2be017c2ef7680a76e95e
chore(dependencies): Autobump korkVersion (#935) Co-authored-by: root <root@167ad51ad4f2>
commit sha ba4b061812cc5a464ae00f4e07b9805b4acfde3d
fix(gcs): Fix startup error when bucketLocation is not specified (#934) * test(gcs): Add some implementations to FakeStorageRpc In an upcoming commit, we'll need to also support getting a bucket; to prepare for that let's update the FakeStorageRpc to: * Keep track of what bucket objects are in (rather than now where it assumes they are all in the same bucket) * Handle creating and getting a bucket We'll add an additional Map around the blobs data structure that maps the bucket to a Map of blobs. (This is a bit of a complex data structure that in production code might be better expressed as classes, but for this single fake in a test it's porbably fine.) Creating a bucket initializes its blobs to an empty map; we know if a bucket exists by whether it has an entry in the map. I used the documentation on the interface we're mocking to decide how to handle a missing bucket; in some cases we just return null (when getting an object or a bucket) while in others we propagate the 404. This required one small change to the existing tests, which is that we'll need to create the bucket before we use them in the tests. * test(gcs): Add test to demonstrate NPE on missing bucketLocation This commit adds a broken test to demostrate the NPE that occurs on startup when the bucketLocation is not specified. * fix(gcs): Fix startup error when bucketLocation is not specified There was a regression in 1.22 where omitting bucketLocation from one's GCS config now causes an error on startup. Prior to the rewrite of GcsStorageService, we accepted either null or empty string as the bucket location; now that GcsStorageService is in kotlin and does not use a String? for the field, an error occurs on trying to create the GcsStorageService. The fix is just to default the string to "" in the config properties. * style(gcs): Use Bucket.of intead of builder * test(gcs): Replace nested map with classes To simplify the nested map, define a Buckets class and a BucketContents class, with operation names that make it more clear what is happening. Also, I realized that before my changes we were appending the bucket name to the object name before putting it into the map, but now we don't need to do that anymore because we have a separate map for each bucket, so remove some unecessary calls to fullPath (which is now only used in printing error messages). * style(gcs): Fix typo * style(gcs): Fix constructor There's no need to accept the map in a private constructor then separately define a no-arg constructor that passes an empty map, just make the map a val in the class.
commit sha 1c4fcfa8a4c63c82149b8f0a3e553a8b31cc6d8a
feat(notification): Add Microsoft Teams notification support (#927) Signed-off-by: Jeffrey Coe <[email protected]>
commit sha f9c659a468e88ccd2a6572750730080fb7ee41b6
chore(build): gradle 6.6.1 (#936)
commit sha 43a097dc2f427e9866ccd3078335ec5696bbfd45
chore(dependencies): Autobump korkVersion (#937) Co-authored-by: root <root@07aa874cb083>
commit sha 2bca436581663adac5827fe01ff533b03ed6ccdd
chore(dependencies): Autobump korkVersion (#939) Co-authored-by: root <root@fa990adebdf5>
push time in 17 days
push eventpdk27/echo
commit sha c295a4818b8862f3582ae7262eaafe487132e5fe
chore(dependencies): Autobump korkVersion (#989) Co-authored-by: root <root@50805f9a9c19>
commit sha 6fc884bf8ee193ae67085faf71d7ff12b51a316a
chore(dependencies): Autobump korkVersion (#990) Co-authored-by: root <root@f429c082b070>
commit sha ee48a0d79275c82beb46ef44514673b4d969d64b
chore(dependencies): Autobump korkVersion (#991) Co-authored-by: root <root@12e6abdc8861>
commit sha ac99c3b25cd1f3765c062b910744e31b36bd6390
chore(gcb): unify log message of subscriber (#992) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 5763f3e58661fcddc7d9a1432afac2d581fbae7d
chore(dockerfile): various Dockerfile cleanups (#993) * chore(dockerfile): delete the (unused) java8 dockerfiles * chore(dockerfile): replace deprecated MAINTAINER with LABEL * chore(dockerfile): use gid/uid 10111 for the spinnaker user * chore(dockerfile): make docker builds more cacheable Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 62127327e4fef43a0516e8b9a134314eb18c1d6d
chore(dependencies): Autobump spinnakerGradleVersion (#994) Co-authored-by: root <root@6a807b439d68>
commit sha b51fb4ce6c941d05a97263aef1c3d19affd03a88
chore(build): gradle 6.6 (#996)
commit sha 5071645b407aa95b6ad2800b236afea07c5c1510
fix(misc): Upgraded kotlin version to match kork (#998)
commit sha d53047067bb241939f0920bba83922fb3e10179a
chore(dependencies): Autobump korkVersion (#997) Co-authored-by: root <root@4bab6a330c11> Co-authored-by: Sairam Rekapalli <[email protected]>
commit sha e069b8b72e34c1e52bc5013e998dfea1d69d1212
chore(dependencies): Autobump korkVersion (#999) Co-authored-by: root <root@534ce9888ac0>
commit sha 57b9229cfce334645d9ee9cc9b4ccd20a3e6f867
chore(dependencies): Autobump korkVersion (#1000) Co-authored-by: root <root@167ad51ad4f2>
commit sha 1efb50d54b8b6e7f9dfe6e437ec0dff35fca0623
chore(build): gradle 6.6.1 (#1001)
commit sha ee2227659fc007dc2a597fc220016c38f37d0ffb
chore(dependencies): Autobump korkVersion (#1002) Co-authored-by: root <root@07aa874cb083>
commit sha c26b20e5a099a13405c4dd3b4afbf0c24af9e5b0
chore(dependencies): Autobump korkVersion (#1003) Co-authored-by: root <root@fa990adebdf5>
commit sha 7198ba58a3d63c755996efd571d7924db09a6bcc
chore(dependencies): Autobump korkVersion (#1004) Co-authored-by: root <root@ec7bd04f30f1>
commit sha ed98ef238b40beb527bbedb453953ca294228457
chore(dependencies): Autobump korkVersion (#1005) Co-authored-by: root <root@07935c2d2f7e>
push time in 17 days
push eventpdk27/fiat
commit sha 249c05c9acc91eefa116d1d2dd4cf3be8cd524e2
chore(dependencies): Autobump korkVersion (#742) Co-authored-by: root <root@50805f9a9c19>
commit sha c90eb681980396ffb20f85a284ce84663f139097
chore(dependencies): Autobump korkVersion (#743) Co-authored-by: root <root@f429c082b070>
commit sha 9442ea4a01efaef89a69a3b0e1457f047d7e989b
chore(dependencies): Autobump korkVersion (#744) Co-authored-by: root <root@12e6abdc8861>
commit sha a6eda9c86cbb26366d3fac20c1510955e8c86a90
chore(dockerfile): various Dockerfile cleanups (#745) * chore(dockerfile): delete the (unused) java8 dockerfiles * chore(dockerfile): replace deprecated MAINTAINER with LABEL * chore(dockerfile): use gid/uid 10111 for the spinnaker user * chore(dockerfile): make docker builds more cacheable
commit sha 0057cc6ddc5c1a5c82a25805da041d6ae28e7dcd
chore(dependencies): Autobump spinnakerGradleVersion (#746) Co-authored-by: root <root@6a807b439d68>
commit sha 0e4b470f7eda2c980c7c282989a6683634236377
chore(build): gradle 6.6 (#748)
commit sha d0c756f6d5023c11a99bd2c9b0bbb79a9a63cdb4
chore(dependencies): Autobump korkVersion (#749) Co-authored-by: root <root@87c6cb8f1126>
commit sha 0ac386fe08523ad7898c61599c43ffab8054721a
fix(authorize): fixes for authorize redis and fallback (#750) does less work while holding a redis connection: * ensure when looking up the unrestricted user, that we don't read the same values twice from redis * close the redis connection before deserializing permission objects ensures that if we hit the fallback case for a user that was not resolved we include the unrestricted user's permissions in the resulting UserPermission * fix(roles): do less while holding a redis connection moves deserialization of permission json outside of the connection callback short circuits lookup of roles if the user does not exist (prevents loading all of anonymous for an unknown userid) * fix(redis): don't duplicate resource reads when looking up unrestricted user saves on reading the same maps twice on an explicit call to load the unrestricted user, which happens if we hit a fallback for a user that we currently have not resolved * fix(fallback): ensure fallback permissions include unrestricted user permissions if we hit the fallback case of triggering permission resolution, the permissions for the unrestricted user should be included to allow access to resources that are granted to the anonymous role
commit sha 9f2697137cb834c9f157454465f4ca6348a17a7d
chore(dependencies): Autobump korkVersion (#752) Co-authored-by: root <root@048626cb7ef2>
commit sha fbca7292a1e4d3d31d1321d8eaf6c948e3ebbecc
chore(dependencies): Autobump korkVersion (#753) Co-authored-by: root <root@7cc2f7e2e8cd>
commit sha 969d95f3893c1b4dab1b6dc5b9547c893db61b0c
chore(dependencies): Autobump korkVersion (#754) Co-authored-by: root <root@4bab6a330c11>
commit sha edea93297fc397897cabd9c0a1db42239e34c961
chore(dependencies): Autobump korkVersion (#756) Co-authored-by: root <root@534ce9888ac0>
commit sha 61f1e3640ceb2a995b55e619ec4d82bb021b2e82
feat(perf): cache the unrestricted users permissions (#751) The unrestricted user is loaded from redis each time a lookup for a user happens, and this user may end up with a lot of data associated with it if there are a large number of secured entities set up for anonymous read access. This saves the step of fetching and deserializing that data if there is a copy cached. Adds a new last modified key to track (via redis server time) the last time the unrestricted user was written to redis, and uses that to ensure a reload happens when the permissions are rebuilt.
commit sha b421b06939b2dee9f9d4abad28a11388ebae481d
feat(metrics): instrument PermissionRepository (#758) Adds a Configuration class to create RedisPermissionRepository and uses InstrumentedProxy to add method invocation metrics
commit sha 96d6a17c2a5d5a5aea8c6a5cf19b86a1d1fc9fa7
chore(dependencies): Autobump korkVersion (#757) Co-authored-by: root <root@167ad51ad4f2> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 46a2f4704ad094c8fa5f70284ea925f128650de3
chore(build): gradle 6.6.1 (#759)
commit sha 262c7504873bd1ea0ee8f766d8c03c3f453681e8
chore(dependencies): Autobump korkVersion (#760) Co-authored-by: root <root@07aa874cb083>
commit sha 9c648a2926e26f264809f24baeaf66e3a336dc0f
chore(dependencies): Autobump korkVersion (#761) Co-authored-by: root <root@fa990adebdf5>
commit sha 67419415a0c884723e396cbe7fea6885464a4cce
chore(dependencies): Autobump korkVersion (#762) Co-authored-by: root <root@ec7bd04f30f1>
commit sha 78edd94733c9190add6c4a7d2e69733952c7d6bf
chore(dependencies): Autobump korkVersion (#763) Co-authored-by: root <root@07935c2d2f7e>
push time in 17 days
push eventpdk27/gate
commit sha 86eaa5b7cd97aa0b83bd46912948b8dc2dcabcc2
chore(dependencies): Autobump korkVersion (#1300) Co-authored-by: root <root@50805f9a9c19>
commit sha cc6428df52f7360e444f4410655ff46b38011ac1
chore(dependencies): Autobump korkVersion (#1301) Co-authored-by: root <root@f429c082b070>
commit sha 09576b31010b3bae6efd8187faa2561e5a112f4c
chore(dependencies): Autobump korkVersion (#1302) Co-authored-by: root <root@12e6abdc8861>
commit sha 0b5c9796a9de67966812c8ba3ac3052635401769
fix(artifactReference): add artifactReference field into ConstraintStatus model (#1303)
commit sha 78e4350c0d5934f67a641613ec709dd733d348e2
feat(pipeline): populate 'staleCheck' in orca savePipeline task (#1298) Related to https://github.com/spinnaker/orca/pull/3841 Co-authored-by: spinnaker <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 9fc9087c908fac23277873e19d2d0255e37b25f5
chore(dockerfile): various Dockerfile cleanups (#1304) * chore(dockerfile): delete the (unused) java8 dockerfiles * chore(dockerfile): replace deprecated MAINTAINER with LABEL * chore(dockerfile): use gid/uid 10111 for the spinnaker user * chore(dockerfile): make docker builds more cacheable
commit sha 794159c1d46b7ac7a1bb600be47f40638526ae96
fix(misc): Updates to use retrofit service provider impl. (#1293) * fix(misc): Updates to use retrofit service provider impl fix(misc): test config * fix(misc): Make kork-retrofit as runtime dep only * fix(misc): Make kork-retrofit as runtime dep only * fix(misc): Make kork-retrofit as runtime dep only * fix(misc): move to setter injection * fix(misc): Make kork-retrofit as runtime dep only * fix(misc): trying test autoconfig option to wire up dep * fix(misc): update auto config * fix(misc): add qualifier for bean * fix(misc): update dependencies * fix(misc): explicit depends on * fix(misc): add test logging * fix(misc): test config * fix(misc): test config * fix(misc): test config * fix(misc): test config * fix(misc): test config * fix(misc): test * fix(misc): add flag to dump auto config report * fix(misc): add flag to dump auto config report * fix(misc): fix config * fix(misc): fix config * fix(misc): fix config * fix(misc): test * fix(misc): test * fix(test): test fix * fix(misc): fix config Co-authored-by: Adam Jordens <[email protected]>
commit sha 99146d76b29713ab0c8085d883d79711eab86f58
chore(dependencies): Autobump spinnakerGradleVersion (#1306) Co-authored-by: root <root@6a807b439d68>
commit sha e8e9b8cdc722e45e0f88e4349eafe7d67f72723e
fix(v2PipelineTemplates): set response code to 200 OK because of swagger (#1307) Swagger on 2.14.5 codegen for Go doesn't parse the body for a caller. The workaround for now is to return a 200 so swagger will return the body back to a calling method. This is documented in https://github.com/swagger-api/swagger-codegen/issues/10435
commit sha 537d8c44bc95df11361f51202b2c2430215829d9
chore(build): gradle 6.6 (#1308)
commit sha b3ede47f022b0e410b8c92a20e784e3ec9048c58
fix(getAllPluginInfo): fix return type (#1310) Co-authored-by: chini mukhopadhyay <[email protected]>
commit sha ab06a31f6837f5525282f7198013731f1cd9043b
fix(misc): Upgrade to kotlin 1.4 to match with kork kotlin version (#1312) * fix(misc): Upgrade to kotlin 1.4 to match with kork kotlin version * fix(misc): Remove TomcatConfiguration properties reference
commit sha c5c7f5640cd0874e3bfefa6ee47a2218c60b5e9a
chore(dependencies): Autobump korkVersion (#1309) Co-authored-by: root <root@4bab6a330c11> Co-authored-by: Sairam Rekapalli <[email protected]>
commit sha 986f976ee95939f3cd7076748db02c21b0956958
feat(kayenta): expose pagination param on reports endpoint (#1305)
commit sha 2015636ae0fbc646b409cb5703cad4ed2180e4a4
chore(dependencies): Autobump korkVersion (#1314) Co-authored-by: root <root@534ce9888ac0>
commit sha 948eb1847138700355eaf04a90cd55701ccc323f
chore(dependencies): Autobump korkVersion (#1315) Co-authored-by: root <root@167ad51ad4f2>
commit sha 7959652fac2ec74e6cd725ef7b51d75fb6572150
chore(build): gradle 6.6.1 (#1316)
commit sha 2d7adcc69742c01fb4cac398e36d2cebb39ab6a1
chore(dependencies): Autobump korkVersion (#1317) Co-authored-by: root <root@07aa874cb083>
commit sha c2d54d8311c1d9ec84e79fd365ec9ac9f47ec266
chore(core): improve error response (#1297) * chore(core): improve error response * fix Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 2c8968385d249c10388a7bcd6fdb4e81dd9d5a27
chore(dependencies): Autobump korkVersion (#1318) Co-authored-by: root <root@fa990adebdf5>
push time in 17 days
push eventpdk27/halyard
commit sha 8731a945ecf8d4b44c57033a669c357d514a1df4
feat(config): add upperBound/tooHighMessage for mineCanary feature flag (#1768) This flag gates legacy, pre-Kayenta stages in Deck's canary module that are likely not used by OSS users. To reduce confusion, deprecate this flag.
commit sha 2c90755c7691b98ee7987f1822922498d4f011d2
chore(dependencies): Autobump clouddriverVersion (#1739) Co-authored-by: root <root@0b9afe36d40f> Co-authored-by: Eric Zimanyi <[email protected]>
commit sha 2766ca9e668e35790027d0375d4747119daafcb0
fix(misc): Remove hard dependency on resolvedEnv endpoint and add runtime dep for kork actuator (#1770) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 5dec12f4f1476d3e40134d844330af9e21a59247
chore(dependencies): Autobump korkVersion (#1769) Co-authored-by: root <root@f429c082b070> Co-authored-by: Eric Zimanyi <[email protected]>
commit sha 1844800f6e150e5734f91115aa2412c9733f30fa
chore(dependencies): Autobump korkVersion (#1771) Co-authored-by: root <root@12e6abdc8861>
commit sha 45f522ee6bc8c9ee7c8f3fbe6d8adb53d155012f
chore(dockerfile): various Dockerfile cleanups (#1772) * chore(dockerfile): replace deprecated MAINTAINER with LABEL * chore(dockerfile): use the same `adduser` commands as we do elsewhere * chore(dockerfile): make docker builds more cacheable * chore(dockerfile): make the ubuntu and slim dockerfiles more similar
commit sha cd81fb4c34cf60b2b6f7cf052626f7d868bf34f8
chore(dependencies): Autobump spinnakerGradleVersion (#1773) Co-authored-by: root <root@6a807b439d68>
commit sha cffc793f3d68983023fc138bdda2d10d20e0a255
chore(build): gradle 6.6 (#1774)
commit sha 32ede10efd81f484fb3e94a76123f6e3ca4ab71e
chore(dependencies): Autobump korkVersion (#1775) Co-authored-by: root <root@87c6cb8f1126>
commit sha 8a11d8c8132c8dbdfc8b704b7d5025d44fd1e022
chore(dependencies): Autobump korkVersion (#1776) Co-authored-by: root <root@048626cb7ef2>
commit sha 1488d4b9cf2e3bda1fb8bbd2c42286e8db23acdb
chore(dependencies): Autobump korkVersion (#1777) Co-authored-by: root <root@7cc2f7e2e8cd>
commit sha dfab7cdd572cd22b2a79449f8e66a4401d298760
chore(dependencies): Autobump korkVersion (#1778) Co-authored-by: root <root@4bab6a330c11>
commit sha 1788bcb65d4ecfc8da3320cfe12f47e3630d269f
chore(dependencies): Autobump korkVersion (#1779) Co-authored-by: root <root@534ce9888ac0>
commit sha fa87869d12fbfad8df2e5ee4988adcea65813c6d
chore(dependencies): Autobump korkVersion (#1780) Co-authored-by: root <root@167ad51ad4f2>
commit sha 71f433bbfde30046253239d07ce852797e485912
chore(build): gradle 6.6.1 (#1783)
commit sha da6c5ce2c4248c015edf6cf90ac8aaa9b93f0045
chore(dependencies): Autobump korkVersion (#1784) Co-authored-by: root <root@07aa874cb083>
commit sha 1e51c19f9a024308d88cce02bc52f1c0da608c38
chore(dependencies): Autobump korkVersion (#1785) Co-authored-by: root <root@fa990adebdf5>
commit sha 781797ebcfa4e26f0f855ff1bddd4bfa80e61251
chore(dependencies): Autobump korkVersion (#1786) Co-authored-by: root <root@ec7bd04f30f1>
commit sha 8d9ecadfcc2a7b5cdfe9fc13678c799adedb3263
chore(dependencies): Autobump korkVersion (#1789) Co-authored-by: root <root@07935c2d2f7e>
commit sha 41d4eed599a00265c742b8f865c6be5fbc48428e
feat(plugins): Support top level plugin config (#1788) Co-authored-by: Cameron Motevasselani <[email protected]>
push time in 17 days
push eventpdk27/deck
commit sha e456347ca4ae8aa08165cd469ea73976c23c1638
fix(core/presentation): Do not render the form input even once (render the spel input instead) if spel is present and freeform is enabled (#8474)
commit sha ff4dc09bec11e873f0c9ad21b0341d23437ecc25
chore(core): Remove outdated nav components (#8473) * chore(core): Remove outdated nav components * chore(core): Remove unused refresher css
commit sha c956d541429f107a4d5069a7b63e0b0f26dd3590
fix(core/application): Handle edits to cloud provider in application config links
commit sha e8d1ff843841e325dcccd0faf853a58edea92366
chore(package): publish amazon 0.0.262 core 0.0.499 (#8476)
commit sha 972e85d2af84f2d1dc2a8c98a64e609523ef96e9
config(auth): update default value of authEnabled (#8441) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 3f279bc4a3a88e126098d817aa1e2cc865fb2cf2
feat(gce): Add GCP internal http(s) load balancer. (#8397) * fix(provider/google): add internal http(s) load balancer. (#5042) * fix(provider/gce): Fix Internal HTTP LB implementations. * fix(provider/gce): convert Internal HTTP LB impl to ts * chore(gce): refactor internal http lb Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 5048c833ecd55f447c2202a6183485536ed5a7ed
fix(core/nav): Active nav category for hyperlinks (#8469) * fix(core/nav): Active nav category for hyperlinks * Switch to useSref
commit sha 256904734e3e939e9f8026a781c913252599f790
chore(deps): bump @spinnaker/styleguide from 1.0.20 to 1.0.21 (#8477)
commit sha 138ef6d641bb71c5369460bb3b378a13a7e90939
fix(docker/tag): Make help content explicit for tag field by placing it below the field.
commit sha 7a15f5d795f7ee12d7bef470e37379baa6ce08be
fix(functions): normalizeFunction expects a Promise (#8468) https://github.com/spinnaker/deck/commit/72af6cc495cf9f82634f62631bba1f7b6e148eb7 introduced a bug when refactoring that calling `normalizeFunction` always returned a Promise. When it was removed, some calls to `normalizeFunction` may return plain objects that aren't wrapped in a Promise. Fix: wrap the return value with a `$q` to satisfy `IPromise`
commit sha 3d5d149c3070fc93b7b6a85ab31f1963af535a49
feat(core/managed): new visual iteration for version sidebar, 'decommissioned' cards (#8478) * feat(core/managed): add environment names, new visual treatment to version sidebar * feat(core/managed): add 'archived' status appearance, use in cards Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 83b01d123371c6fb1c62d2c4c306b7883d11d4b0
feat(core/managed): new visual treatment for environment badges (#8479) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 84377118d005024e6c6c0b542940fd958a59a4b6
chore(package): publish core 0.0.500 docker 0.0.58 google 0.0.17 (#8482)
commit sha 621097687e758e38251d5af70e1ef9be23579a57
Replace the word "previous" with "prerequisite" in depends-on constraint text (#8483)
commit sha 63e31d3ce744aa19907243d27a61f58ae4aef5f4
fix(core/managed): supply references when updating constraints (#8485) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha b88e0deffdff6668cb5785037964f82e197dad52
fix(kubernetes): add nullable createdTime to base resource interface (#8486) Each resource template tries to read this field. Requires: https://github.com/spinnaker/clouddriver/pull/4791
commit sha 6a2fe671da0f65dda86a08299bfdd323a3487d00
fix(kubernetes): do not self-close element in angular template (#8487) Closes: https://github.com/spinnaker/spinnaker/issues/5962 Oddly, the `kubernetes-rolling-restart` component was rendering as expected, but each of the remaining elements in the list of actions (Edit and Delete) were not. Self-closing tags are not allowed in Angular templates, so I likely broke this when I added support for rolling restarts. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha c026603a590fee1234a79543fd0c8704373ac330
chore(package): publish core 0.0.501 kubernetes 0.0.46 (#8489)
commit sha 73805f2f25abad4d0371d70d74897c1d4ce1cd2d
fix(core/widgets): Remove CustomDropdown widget
commit sha 2c5a727ece1fe6f07928a5b727aa3900be74666d
fix(google): do not self-close react2Angular-created elements (#8493)
push time in 17 days
push eventpdk27/clouddriver
commit sha 934373ab914b0a44bfa1ad6a6eb0334c9f41f44b
fix(saga): Retry INVALID_ARGUMENT exception when message is Titus assume IAM role error (#4772)
commit sha e1c049ff7e76641ff18c2170740094113170eb7b
refactor(kubernetes): Improve null safety and remove some generics (#4771) * refactor(kubernetes): Move account validation to an instance method The function to validate a managed account is as a default method of an interface; it would be clearer if we just made it an instance method of the account we're trying to validate. * refactor(kubernetes): Validate account earlier and add annotations Currently we validate a managedAccount when creating the KubernetesV2Credentials, but by that time we've already read a number of fields from it. Move this validation earlier, to the beginning of the KubernetesNamedAccountCredentials constructor so that we can throw any errors earlier. This will not create new exceptions for any workflow, as we were always building the KubernetesV2Credentials at the end of this function (and calling validate) anyway, it just moves the exception to happen earlier. Let's also now annotate the two places we read the accountName with NonNull. We'll be extra careful and use Objects.requireNonNull even though we know we've already validated with a better message earlier. (This is so that if that validation ever changes/breaks at least we'll still be guaranteed a non-null value as the annotation states, albeit with a less helpful runtime exception.) * refactor(kubernetes): Remove StubKubernetesCredentials I wrote these to make testing easier, but these implement the generic KubernetesCredentials interface. Now that there's no V1 provider anymore, we have only one implementation of the interface and we should eliminate it for simplicity. Given that the interface doesn't really represent a useful level of abstraction, using it in tests is really not that much better than mocking, so use a mock instead. Ideally we'll break up KubernetesV2Credentials to make testing easier but for now let's remove the level of abstraction that no longer adds value. * refactor(kubernetes): Un-generify KubernetesCachingAgentDispatcher Now that there is no Kubernetes V1 provider, there is only one implementation. * refactor(kubernetes): Remove KubernetesCachingAgent interface Push everything down to KubernetesV2CachingAgent, which is the only implmentation now that the V1 provider is deleted. * refactor(kubernetes): Un-generify KubernetesAtomicOperationDescription Now that the V1 provider is gone, the only implementations are for the V2 provider, so we can remove the redundant type parameter. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha fb00651f65166b5666c117dc37ffb093abd061e0
chore(dependencies): Autobump korkVersion (#4774) Co-authored-by: root <root@50805f9a9c19>
commit sha 2374188cdabfacdcd9d9af59afd9f02b922e5d40
chore(dependencies): Autobump korkVersion (#4775) Co-authored-by: root <root@f429c082b070>
commit sha a34b9510eee3ced83965723838b89c80e6a3af31
feat(gce): Add GCP internal http(s) load balancer. (#4725) * fix(provider/google): add internal http(s) load balancer. (#5042) * fix(provider/gce): Fix Internal HTTP LB implementations to use java. * fix(provider/gce): Fix internal http lb cannot be deployed with other global lbs * fix(provider/gce): Fix referencing not existing property * chore(gce): no use ProviderVersion * chore(gce): null check in common place * chore(gce): set subnet purpose default value n/a * chore(gce): refactor internal http lb Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 1d28568f202d51bf157cfb05da9d4871fcc94bdb
refactor(kubernetes): Further simplifications of cache data logic (#4776) * refactor(kubernetes): Remove needless ObjectMapper The object is already of the correct type. Also inline declaration/ assignment above so it's easier to see this. * refactor(kubernetes): Clean up convertAsArtifact convertAsArtifact is doing a lot of null checks on things that can't be null. If the artifact is present, it's guaranteed to have a non-null type; likewise the getCreationTimestamp never returns null. Remove these checks, inline some variables, and move to an .ifPresent to greatly simplify the function. Finally, we were storing a relationship between the infrastructure item and the artifact; we don't need or use these relationships at all and treat these two areas of the cache separately. It's better for performance on cache writes/reads, as well as simplifies the code, if we remove these relationships. This means we don't need to return the key from convertAsArtifact, or use it to add a relationship in the calling code. * refactor(kubernetes): Pull convertAsArtifact out of convertAsResource Now that convertAsArtifact and convertAsResource are not dependent on each other (because they don't store reource-artifact relationships) it's clearer if we pull convertAsArtifact up a level rather than have it be inside of convertAsResource. Also update catching an Exception to catching a RuntimeException. * refactor(kubernetes): Clean up null checks in RegistryUtils lookupHandler is really a simple function but is 15 lines long to account for unnecessary null checks. None of the callers ever pass a null kind (as they use KubernetesManifest.getKind which never returns a null). Likewise, then KubernetesResourceProperties in practice can never have a null handler; let's just enforce that at creation and add the annotation. Now that we don't need all these null checks, just directly look up the handler where needed instaed of calling lookupHandler. * refactor(kubernetes): Remove RegistryUtils These two functions are just looking properties up on an object; inline them where they are used so we can delete another static utils class. * refactor(kubernetes): Move filtering logic to stream Instead of exiting early from convertAsResource, just move the filtering logic to the stream where it's called as it's clearer there. Also update KubernetesCachingProperties to be immutable and only have the API that we actually use. Finally, remove setting the application we got from the KubernetesCachingProperties as an attribute in the cache. We don't use this in any case, and in cases where we do want the applciation, we should use the one on the moniker that we persist in the cache data. * refactor(kubernetes): Clean up some logging We check a few things on a manifest before caching and log a warning; it's not clear that this is really useful. The check that it's not null is always false; the check for name/namespace I guess could help with debugging, but we're really just checking that Kubernetes is returning a valid manifest, which seems not that useful. At points where we actually use these, I guess we could log/fail if they are missing, but I've never found a use for this log message in all my time debugging Kubernetes bugs. Similarly, logging every non-Spinnaker-owned manifest does not seem useful; there is a flag to decide if you want to cache these or not. If you have the flag on you want these cached, if not, you don't reach this log statement. * refactor(kubernetes): Use Moniker from CacheData instead of re-computing As a first step towards using the data we cache instead of re-computing things, let's use the Moniker that we store on the CacheData. We always store this, but are currently throwing it away and re-computing it. For now I'm just adding Moniker to the constructor, though my eventual plan (once we build everything from the CacheData) will be to pass in a strongly-typed CacheData object rather than greatly increase the number of constructor parameters. * refactor(kubernetes): Use a Kubernetes-specific namer registry We currently use a reasonably complex NamerRegistry to handle two things: (1) Keeping track of any NamingStrategy components on the classpath and returning them by name when we call namerRegistry.getNamingStrategy. (This happens when we construct Kubernetes credentials and have a string representing the naming strategy.) (2) Given an account name, asking for the naming strategy for that account. In both cases, it's overly complicated that we have general logic for all providers and this logic is not type-safe. For example getNamingStrategy returns a raw Namer, so we have to hope that is a Namer<KubernetesManifest>, and hope is not a naming strategy. Likewise, every time we need to look up the namer for an account, we need to query a global registry across all providers (but first tell it that we want a namer for a Kubernetes account, the name of the account, and that we want to name KubernetesManifest.) While this looks somewhat typesafe, it turns out that the only reason we pass KubernetesManifest.class to these calls is so that withResource can cast the result for us (so we don't need to), so we are only getting the illusion of safety. Let's instead: (1) Make a KubernetesNamerRegistry that keeps track of any registered NamingStrategy<KubernetesManifest> and return them by name (while guaranteeing typing). (2) Once we get the namer, just store it on the credentials object like we do for other things, instead of relying on a global registry. I don't like having more and more things on the credentials object, but I still think this is better than global state which is the current state. Also, by having these things all in one place on the object we can start to see patterns and refactor them into better classes. We now no longer use the general NamerRegistry at all in the Kubernetes provider; other providers still use it, though they may also want to just implement their own like this. * refactor(kubernetes): Make KubernetesManifestNamer immutable Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 22feb2a866f96606ebe19be61369bd7a4a155eb6
fix(test): Fix intermittent timeout in PooledRequestQueueTest (#4777) I fixed a deadlock in this test a few weeks ago, but just ran into one other timeout. This commit makes a few minor fixes to reduce the chances of hitting a timeout here. First: (1) Use a fixed thread pool executor so we create all the threads we need up front and reduce the work later. (2) Don't start our timeout clock until the job we're expecting to timeout has been queued. (3) Increase the startup timeout to 50 ms and only time out the test after 10x (instead of 5x); this is just so we're dealing with slightly larger absolute numbers. (Before we were only waiting 100 ms to time out the test, now we're waiting 500ms.) (4) Fail with a specific message if we timeout, rather than assert on the status of the job (which we know won't be in the expected state because we killed it). This just helps debugging as I was confused at first what happened. I think this only happens if you are running the clouddriver tests locally with your editor open while on a video call, but hopefully with these fixes the tests pass even in that case.
commit sha 80d81bee5ccc277d793346d34700ea55df024613
fix(lambda): Fixes create lambda from failing when DLQ is not provided (#4779)
commit sha 7166916a1adca4d3ad81e65a9314fcebab91e997
chore(build): removed UTF8 "smart quotes" (#4780)
commit sha 74c8f639f9899f23e61a6c6dafdafdee5aa5cf4b
fix(test): reverts (#4777) Fix intermittent timeout in PooledRequestQueueTest (#4781) This reverts commit 22feb2a866f96606ebe19be61369bd7a4a155eb6.
commit sha a1e4448da8ac652db73157685ebebbe16e8fae2f
chore(build): bump up gradle memory max to 7gb (#4782)
commit sha e4bb29e19cdb72f10c9b3a5bbea4c878959a8eaf
chore(dependencies): Autobump korkVersion (#4783) Co-authored-by: root <root@12e6abdc8861>
commit sha f5f31de4b214eadb8791508eb31b732ab53b27bb
perf(kubernetes): Always do a live lookup for getManifest (#4778) * refactor(kubernetes): Inline defaultCacheData This is a tiny function used in one place; it's clearer to just have the logic inline rather than pass so many parameters. Also the calling function never accepts nor returns nulls; annotate it as such. * refactor(kubernetes): Clean up null safety in resource relationships implicitRelationships and ownerReferenceRelationships now no longer accept any null parameters, and can remove their null-checking logic. This also finally makes all the parameters to convertAsResource non-null so we can just annotate with as such. * refactor(kubernetes): Clean up type-safety/null-safety in job provider The manifest providers should be ManifestProvider<KubernetesV2Manifest> so that we don't need to cast the result to a KubernetesV2Manifest. Also getKubernetesJob should return an Optional as it sometimes returns null; the calling functions have interface contracts so need to return null but let's annotate them as nullable. * perf(kubernetes): Only load metrics if events are requested For performance reasons we have the includeEvents flag in the getManifest function because in most cases we don't need events. We only need events when loading a manfiest from deck so that we can populate them in the UI. The same is true for metrics. We don't need metrics when checking on the status of a deployed manifest, only when loading the UI tab for the manifest. Rather than add another flag, let's just consider metrics to be events and only load them when we've requested events. * perf(kubernetes): Always do a live lookup for getManifest Many users managing large Kubernetes deployments with Spinnaker use the liveManifestCalls flag because it allows deployments to complete without waiting for a cache refresh cycle. The initial plan to remove this flag (and revert to using the cache always) was discussed at the Kubernetes SIG and users did not want to lose this functionality. In order to simplify the code and reduce the configuration necessary to get a working, scalable deployment, let's make this the default given that it has proven itself with many large users. This commit replaces the two kubernetes manifest providers with a single one; it always does a live lookup for getManifest() and always uses the cache for getClusterAndSortAscending (which was always the case for users of liveManifestCalls because this was never implemented in the live provider). This will not immediately speed up deploys for users using liveManifestCalls because we will still block on force cache refresh. We need to do this because there are bugs downstream (ie, with disabling/deleting older server groups) if the cache is not up to date. The next step will be to fix this cache refresh strategy and remove the force cache refresh stage in all cases. * refactor(kubernetes): Remove fromCacheData We're always passing includeEvents=false now; when we remove all the logic that was gated by this flag, it simplifies down to a single line so let's just inline it. * refactor(kubernetes): Delete metric caching agent Now that we only ever do live lookups of metrics in the rare cases where we need them (when someone has the infrastructure tab open to a pod) we don't need to metrics caching agent; delete it and the code supporting it.
commit sha b53ac1d819eaddbbec6344aa65d2f1e4fca5e525
fix(kubernetes): check existing versions in the account we are deploying to (#4785) This fixes #5964 Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha f56deb5a16f702b94a23ca1d15e42c0d8b3ed1cf
fix(test): Fix intermittent timeout in PooledRequestQueueTest (#4784) This was reverted in 74c8f639f9899f23e61a6c6dafdafdee5aa5cf4b but did not end up being the cause of the issue being investigated; re-applying. I fixed a deadlock in this test a few weeks ago, but just ran into one other timeout. This commit makes a few minor fixes to reduce the chances of hitting a timeout here. First: (1) Use a fixed thread pool executor so we create all the threads we need up front and reduce the work later. (2) Don't start our timeout clock until the job we're expecting to timeout has been queued. (3) Increase the startup timeout to 50 ms and only time out the test after 10x (instead of 5x); this is just so we're dealing with slightly larger absolute numbers. (Before we were only waiting 100 ms to time out the test, now we're waiting 500ms.) (4) Fail with a specific message if we timeout, rather than assert on the status of the job (which we know won't be in the expected state because we killed it). This just helps debugging as I was confused at first what happened. I think this only happens if you are running the clouddriver tests locally with your editor open while on a video call, but hopefully with these fixes the tests pass even in that case. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha a932950fe046d3ca0a80a9899475c2d071d8c00a
fix(saga): Disable retrying INVALID_ARGUMENT on rate exceeded error (#4786)
commit sha 292d43e08c40d72ef41fba67052043bdbc871de3
fix(build): Reduce Xmx and Xms (#4788) Our container builds run on a machine with only 7.2 GB of memory; while we do want to give a lot to the JVM we should leave a bit more for the everything else. I was able to succesfully build the containers with these settings, so let's use them.
commit sha 97d7e519ea4c8cf219027f4161e1e132ab600232
fix(google): Fix assertion error on unknown target proxy (#4789) * fix(google): Fix assertion error on unknown target proxy Our code to parse the target proxy type from a URL is overly strict and throws an IllegalArgumentException if it encounter something it doesn't recognize. While I suppose that it might be helpful for us to know if there are different types of proxies we don't support encountered, this is very disruptive to users who might have these in their deployments as we just fail. In nearly all cases, we are just checking if the result of getTargetProxyType is a particular type. This logic will still work if we just return an UNKNOWN type if we don't recognize the target proxy type, so let's do that instead. * fix(google): Changes to last commit I forgot to push a few changes before opening the pull request.
commit sha 07d719dece9c781db8b70fb9a254028155f0b481
refactor(kubernetes): remove NoopManifestProvider (#4790) * refactor(kubernetes): remove NoopManifestProvider We are never actually wiring a NoopManifestProvider, since the KubernetesV2ManifestProvider is now always wired and ManifestProvider is now kubernetes-specific. * refactor(kubernetes): simplify KubernetesManifestProvider callers Now that there is only one ManifestProvider implementation, remove the interface and have callers wire KubernetesManifestProvider directly. * refactor(kubernetes): rename KubernetesV2ManifestProvider to KubernetesManifestProvider * fix(kubernetes): mark KubernetesManifestProvider.getManifest @Nullable Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 68748e15ec999e76388646952a0c201a85737ce4
fix(kubernetes): replace getCreatedTime in KubernetesResource interface (#4791) We [removed](https://github.com/spinnaker/clouddriver/pull/4769) getCreatedTime from the shared interface extended by Kubernetes resource types and pushed it down to KubernetesServerGroup only, but it turns out that Deck expects all resources to have this field. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
push time in 17 days
push eventpdk27/kayenta
commit sha fd73211e463cf80a02e4edc9ea9c172a1cb0a21f
feat(reports): allow pagination of canary reports endpoint results (#781)
commit sha f6bda1a5c535bbe6542b906c1ce3a83cb8ef4061
chore(dockerfile): deprecated mantainer (#777) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha f50551dce69ec346d5e14897db409fffa19671a0
chore(dockerfile): various Dockerfile cleanups (#782) * chore(dockerfile): delete the (unused) java8 dockerfiles * chore(dockerfile): replace deprecated MAINTAINER with LABEL * chore(dockerfile): use gid/uid 10111 for the spinnaker user * chore(dockerfile): make docker builds more cacheable
commit sha ed5ba538f40a992b903eeb2957d45541b3c2f4d1
chore(dependencies): Autobump spinnakerGradleVersion (#783) Co-authored-by: root <root@6a807b439d68>
commit sha cadcbca9f7c0c92cbbff84b91328c050db3f30db
chore(build): gradle 6.6 (#785)
commit sha 0d1d754acc80622a20c4ae36caaa6d3eaa0e6bbd
chore(upgradeconfigbin): Upgrades configbin v1 to configbin v2. (#784) Upgrade ConfigBin v1 to ConfigBin v2.
commit sha 65e2bb44b890dc280a949bc39a5519a46491bd7b
chore(dependencies): Autobump keikoVersion (#787) Co-authored-by: root <root@e077008c657c>
commit sha 8f20ce033c7fbb9af9532b4cc6d1479d4dd352b4
fix(config): include updatedTimestamp when indexing configs (#788)
commit sha 81882645bd887ead45186cfeb16188128015098e
chore(build): gradle 6.6.1 (#789)
commit sha 7a8630bc230099ddea31bd20cba88a60c580d1de
fix(kubernetes): Adding STS Jar to classpath (#791) With this, anyone that uses a task role inside EKS will be able to access S3 buckets granted to them by their task-role.
push time in 17 days
startedawsdocs/aws-cloudformation-user-guide
started time in 19 days
issue commentspinnaker/spinnaker
Proposal: Improve AWS EC2 / Spot Support
@christopherthielen
From the screenshots, it looks like this UI fully replaces the "simple" instance type picker. Is there a UI toggle that switches back to the existing behavior?
By "simple" instance type picker, are you referring to the current state of Instance Type section where none of the features listed here are supported?
The proposed features require support for launch templates to be enabled and will be accessible by enabling a custom setting (we are still evaluating what this looks like for the customer)
So, customers who want these features will make this change in their setting and only see the Instance Type section with the new features.
A UI toggle to switch between proposed features or no proposed features wouldn't suffice because of the dependency on launch template setting, is my understanding -> this toggle will be in the build settings.
w.r.t the weight ordering in the mockup: just wanted to point out that we currently sort most things in Deck using a drag/drop sorter widget (see the pipelines sort functionality)
Great! We will try to keep it consistent.
comment created time in 19 days
issue commentspinnaker/spinnaker
Proposal: Improve AWS EC2 / Spot Support
@noahi
- Is there a reason the Enable CPU toggle is a check box, and the Show all types toggle is a slider?
These mocks were put together quickly to indicate the high-level direction of the design. We can make these consistent 👍
- given that the type checkbox is on the left column, maybe swap the two toggles above, so the show selected/all toggle is above the checkbox for each type?
It makes sense to move the show selected/all toggle to the left.
- Just how tall is the "Select an instance type..." dropdown? Is it sorted? Do users know what those types mean? (Personal pet peeve: I tried to get AWS to build a better instance picker for years when I worked there. It never happened.)
- with custom types will users know the CPU, mem, storage, etc?
The "Select an instance type..." dropdown is very long today and the length will not be impacted by these features - it might only get longer and more descriptive with some improvements suggested in the design document :)
- Add information like vcpu, memory, usage classes supported, virtualization, storage type to instance type drop-down list when custom type is chosen
- Mark or remove already selected instance types in drop-down for the multiple instance types case.
1# requires integrating with a recently launched EC2 Describe Instance Types API. So, this will a follow-up after the main deliverables in the design.
- does it make sense to bubble selected instance types to the top? that would make prioritization easier, but ruins the sort order. 4a. might make the "show only selected' option redundant though.
Not sure if this would make sense as the order of the selected instance types will be used for order when On Demand allocation strategy prioritized is chosen.
We are considering the instance types table under non-custom type to be sortable (this feature is missing in the mocks). But, this could lead to undesired order of instance types in the AWS request. Will bring this up in review tomorrow and would like to hear more thoughts on this.
comment created time in 19 days
startedkeikoproj/minion-manager
started time in a month
issue commentspinnaker/spinnaker
Proposal: Improve AWS EC2 / Spot Support
Looks good! I think it would be helpful to add a sample of the new API request, especially for API users who are not relying on the UI as much. Maybe just highlighting what the added fields are named and their types and/or any defaults.
Sure, Casey. Looking into it. Will update the proposal soon.
comment created time in a month
startedAutoSpotting/AutoSpotting
started time in a month
issue commentspinnaker/spinnaker
Proposal: Improve AWS EC2 / Spot Support
It looks like the instance weights may have good defaults-- is that going to be something we can count on, that it will default to weighting aligned with vCPU counts?
@avram the current proposal doesn't include weight recommendations as instance weighting can be customized across various parameters. We will look into simple weight recommendations based on vCPU counts for the non-custom type selection categories in Instance Type section of Deck.
Instance weighting recommendations for custom type will probably be trickier and more involved. We have a follow-up item for evaluating the idea of recommendations.
comment created time in a month
issue commentaws/ec2-spot-instances-integrations-roadmap
Improved EC2 Spot Instances best practices support in Spinnaker
@avram Spinnaker currently supports launching an ASG via Spinnaker Server Groups. Support for launch templates is currently being tested and will be launched soon.
We have a proposal out to add support for: https://github.com/spinnaker/spinnaker/issues/5989
- Launch a AWS EC2 Server Group (ASG) with:
- multiple instance types
- Spot allocation strategies and diversification across a number of SpotInstancePools
- distribution of instances across purchase options - Spot and On-Demand
- Display CPU credits for burstable performance instances types
- Choose
unlimitedCPU credits for burstable performance instance types (default in clouddriver will bestandardfor both t2 and t3 families) - Support more instance types in burstable performance families
- add t3 family
- add size options for t2
- AWS EC2 / Spot best practice recommendations via helper texts
Feedback is welcome:)
I see that some of the features you are interested in are included above. We will follow-up on other feature requests like multiple AMI support as we make progress.
comment created time in a month
issue commentspinnaker/spinnaker
https://github.com/spinnaker/spinnaker/issues/5989 - this proposal covers the features asked in this issue, but via ASG (not Spot fleet)
Features covered:
- multiple instance types
- Spot best practices like capacity optimized allocation strategy that can provision spot instances from deepest capacity pools
Feedback on the proposal is welcome.
comment created time in a month
issue openedspinnaker/spinnaker
Proposal: Improve AWS EC2 / Spot Support
This issue proposes a bunch of new features in the AWS EC2 / Spot cloud provider area.
Design document Status: Gathering feedback (Discussed in SIG on 08/19) Design review meeting with SIG: TBD
Issue Summary
Spinnaker currently supports launching an AWS Server Group / Auto Scaling group (ASG) with a single instance type and a Spot max price.
This proposal is about adding the following features:
- Launch a AWS EC2 Server Group (ASG) with:
- multiple instance types
- Spot allocation strategies and diversification across a number of SpotInstancePools
- distribution of instances across purchase options - Spot and On-Demand
- Display CPU credits for burstable performance instances types
- Choose
unlimitedCPU credits for burstable performance instance types (default in clouddriver will bestandardfor both t2 and t3 families) - Support more instance types in burstable performance families
- add t3 family
- add size options for t2
- AWS EC2 / Spot best practice recommendations via helper texts
Prerequisite: Spinnaker must support AWS launch templates - this effort is ongoing.
AWS EC2 Background
AWS EC2 Spot Instances represent unused EC2 capacity in AWS. They are available at up to a 90% discount compared to On-Demand prices. The caveat being that Spot instances can be interrupted and taken away by EC2 with a two minute notification. AWS recommends some best practices to maximize cost savings while minimizing the impact of interruptions.
- diversify instances across capacity pools (instances in a pool have the same instance type, operating system, availability zone and network platform, and are priced the same)
- use Spot allocation strategies like capacity optimized to provision spot instances from the deepest capacity pools, lowering the possibility of interruptions
Feature Area
Deck - ServerGroups, Clouddriver
Proposal
Deck: The new features will be accessible by enabling a custom setting. All new features proposed here require support for launch templates to be enabled.
High-level changes:
- Changes to Instance Type section of the Create Server Group wizard (mocks below)
- Changes to ServerGroup details to accommodate changes from #1
- Validations for new fields
- Spot Instances Price field under Advanced Settings will be moved under Instance Type(as it makes more sense for the user to think about it while in the Instance Type section)
Mocks: <img src="https://user-images.githubusercontent.com/3614196/90691933-cf784380-e239-11ea-8fa3-82450cf4cd6a.png" width="300" height="400" /> <img src="https://user-images.githubusercontent.com/3614196/90692120-29790900-e23a-11ea-8fbd-19544445ce09.png" width="300" height="400" /> <img src="https://user-images.githubusercontent.com/3614196/90692180-4e6d7c00-e23a-11ea-9a3f-0dda5608737b.png" width="300" height="400" /> <img src="https://user-images.githubusercontent.com/3614196/90692187-50373f80-e23a-11ea-8828-3c16961cd6a3.png" width="300" height="400" /><img src="https://user-images.githubusercontent.com/3614196/90692191-53cac680-e23a-11ea-8f04-161337638f97.png" width="300" height="400" />
Clouddriver: Changes to support the UI features. Primarily,
- Add support for the ASG MixedInstancesPolicy feature, conditionally launching an AWS ASG with mixed instances policy when overrides / instances distribution configurations are used.
- Add support for CPU credits while creating launch template
Additional Details
Addition details can be found in the design document.
Feedback Requested
If you are a maintainer and / or use the AWS provider and Spot instances, we'd like to hear feedback on the proposed changes.
created time in a month
Pull request review commentaws/amazon-ec2-instance-selector
repo-full-name: @echo ${REPO_FULL_NAME} compile:- @echo ${MAKEFILE_PATH}
don't we need the print anymore?
comment created time in a month
issue commentaws/aws-node-termination-handler
The fix is merged in, it should be released soon.
comment created time in a month
delete branch pdk27/aws-node-termination-handler
delete branch : helm-ver-bump
delete time in a month
push eventaws/aws-node-termination-handler
commit sha 292e4af3844abae869fb95bcd8f37255dfbf5286
updating default updateStrategy and bumping version for helm chart release (#228)
push time in a month
PR merged aws/aws-node-termination-handler
Issue #, if available: #226
Description of changes: bumping version for helm chart release
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
pr closed time in a month
push eventpdk27/eks-charts
commit sha 5c840f29b38aab5978b84f5b6675687302a48711
helm chart fixes adding missing helm chart props updating chart version for release
push time in a month
push eventpdk27/aws-node-termination-handler
commit sha a97ef790306401951adce722597efb6a08d1830a
updating default updateStrategy and bumping version for helm chart release
push time in a month
PR opened aws/eks-charts
Issue #, if available: N/A
Description of changes:
- helm chart fixes
- adding missing helm chart props
- updating chart version for release
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
pr created time in a month
PR opened aws/aws-node-termination-handler
Issue #, if available: #226
Description of changes: bumping version for helm chart release
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
pr created time in a month
create barnchpdk27/aws-node-termination-handler
created branch time in a month
push eventpdk27/aws-node-termination-handler
commit sha 1943f8bce4f9a1ef73a52c8973712aac1e1c3462
fix missing new line for updateStrategy (#227)
push time in a month
issue commentaws/aws-node-termination-handler
Thanks for reporting the issue. It turns out that the templates were missing the addition of a new line for updateStrategy.
You can make the changes in the PR to unblock yourself until the changes are released.
comment created time in a month
PR opened aws/aws-node-termination-handler
Issue #, if available: https://github.com/aws/aws-node-termination-handler/issues/226
Description of changes: fix missing new line for updateStrategy
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
pr created time in a month
push eventpdk27/aws-node-termination-handler
commit sha 60a88a36fb62488dfc4386f174bc435c411b9758
update kind and helm for e2e tests (#151) * update kind and helm for e2e tests * remove k8s 1.11 since it is deprecated in eks and no longer works with kind
commit sha 0ee506b45729d44848695f6083fbbfd39af8afea
Replace deprecated values (#149) * Remove depricated keys * allow to modify keys * Update daemonset.yaml
commit sha c34c661c79bf4522486ec365f836d6b33bea9944
Add goji license that was missed from json logging change (#154)
commit sha 24e332074d81eb872182bdeb4ff9b29816b2572d
handle http proxy config for webhooks (#150) * handle http proxy config for webhooks * add webhook proxy test
commit sha 281690d7c0027bd07f8f619d9e344e2d8c5711b2
Revert date format in human-readable logs (#155) * Revert date format in logs to preveserve backwards compatibility * Fix msg -> msgf in webhook_test
commit sha 6f7dc0010485122689229324692a5d2a292715d3
Prepare for 1 4 0 release (#153) * add os and arch node selector keys to helm readme * prepare for v1.4.0 release
commit sha 9769814866f09a0462762ec99b76bac9a4b0a505
fix diff out of sync (#156)
commit sha 39297c841e3cf56ddbe8d429e5fb740986ee1674
readme update for installation instructions (#157)
commit sha 2d941c3e255a51f7ffaf86ecf3b88e2591fe6017
set idle conns timeout on webhook http client (#158)
commit sha b6477836cc81f6c2e82ca9840adf170472bbd0fc
fix enabling docker cli experimental features in travis env (#159)
commit sha 0d528d632f8d3e9712da0fe678fc11240acc2fa4
Taint nodes on spot and scheduled events (#162) * Taint nodes on spot and scheduled events Fixes #160. Signed-off-by: Ilya Shaisultanov <[email protected]>
commit sha ae4d988004216f84e9c1de23058e7fb342b0a7de
Update installation cmd in README (#165)
commit sha 30128670bc91a6c7008c309bcf9706c9ee9a2a02
update travis to run license test on tag releases (#166)
commit sha 011a797a264bbae2164ce168dfc467967d1a9233
Prometheus metric endpoint and Opentelemetry stats (#172) * adding/testing prometheus flags for enabling and port. * adding prometheus and OT metrics * adding constant for default prometheus port with doc * adding events metrics, and refactoring * rewording, fixing tests * removing events metrics counter, refactoring nodeName * extends helm chart and doc with prometheus values * ignoring binary, removing unused metric * adding e2e test prometheus enabled, name better args cli * refactoring error event metrics * removing metrics in func not used * fixing env for prometheus port * adding license and improving documentation * adding metrics endpoint consideration in the readme * change type port to int * adding e2e tests for metrics verifying them
commit sha 466060d6348b0977a233a79213a41f76bbf65c15
stabilize e2e tests (#174) * stabilize e2e tests * tidy up the changes
commit sha cc6170de36fd583b24e8ba122c07face3f1b610c
prepare for 1.5.0 release (#175)
commit sha 8febad4fcf28bd9eab55aff92a183802bb4c9e20
update licenses (#176)
commit sha fc625bb7187077c9bb25f615671d2fcf9385629f
travis build improvements (#177) * travis build improvements * remove name from e2e tests so that version is more accessible * remove direct downloads when building images and binaries * only run helm validation on release * update k8s 1.18 kind node image * add makefile help target * remove --force on reinstall of emtp * sort assertion scripts so that order is deterministic between different versions of find
commit sha b21fff3ff5f55c25db53a06eea331c64853ebd5b
fix docker sync readme (#178)
commit sha 4c11208c1379ec4ff8f594b1aeaf9415768e3e43
Update .travis.yml
push time in a month
issue openedaws/amazon-ec2-instance-selector
Support unsetting select filter flags with the usage of Suite Flags
Suite Flags is a good simplification for common / popular use cases. Overriding of values set for filter flags when suite flags are used is allowed, however, there is no way to unset certain filter flags like
ec2-instance-selector --base-instance-type m4.xlarge -o table --unset=memory-max,vcpus-max
created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
TOKEN=`curl -X PUT "localhost:1338/latest/api/token" -H "X-aws-ec2-metadata-toke 0e:49:61:0f:c3:11 ``` -Requesting a token outside the TTL bounds (between 1-2600 seconds) will return **400 - Bad Request:**
oh no! anything like 1.*2 has been replaced :#
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
local-ipv4 mac network/interfaces/macs/0e:49:61:0f:c3:11/device-number network/interfaces/macs/0e:49:61:0f:c3:11/interface-id-network/interfaces/macs/0e:49:61:0f:c3:11/ipv4-associations/192.0.2.54
oops. looks like we found a bug in the automation script!
comment created time in a month
pull request commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
LGTM 👍
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
+// Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.+//+// Licensed under the Apache License, Version 2.0 (the "License"). You may+// not use this file except in compliance with the License. A copy of the+// License is located at+//+// http://aws.amazon.com/apache2.0/+//+// or in the "license" file accompanying this file. This file is distributed+// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either+// express or implied. See the License for the specific language governing+// permissions and limitations under the License.++package handlers++import (+ "log"+ "net/http"+ "sort"+ "strings"++ "github.com/aws/amazon-ec2-metadata-mock/pkg/mock/dynamic"+ "github.com/aws/amazon-ec2-metadata-mock/pkg/mock/static"+ "github.com/aws/amazon-ec2-metadata-mock/pkg/server"+)++const (+ // shortestRouteLength represents smallest metadata path without prefix + "/" ex: "mac/"+ shortestRouteLength = 4+ versionsPath = "/"+ latestPath = "/latest"+)++var (+ routeLookupTable = make(map[string][]string)++ supportedVersions = []string{"latest"}+ supportedCategories = []string{"dynamic", "meta-data"}++ // trimmedRoutes represents the list of routes served by the http server without "latest/meta-data/" prefix+ trimmedRoutes []string+ trimmedRoutesDynamic []string+)++// CatchAllHandler returns subpath listings, if available; 404 status code otherwise+func CatchAllHandler(res http.ResponseWriter, req *http.Request) {+ log.Println("Received request to CatchAllHandler: ", req.URL.Path)+ // CatchAllHandler may be invoked before ListRoutesHandler+ if len(trimmedRoutes) == 0 {+ formatRoutes()+ }++ var routes, results []string++ // Clean request path and determine which route list to search+ trimmedRoute := strings.TrimSuffix(req.URL.Path, "/")+ log.Println("removing suffix slash: ", trimmedRoute)+ if strings.HasPrefix(trimmedRoute, static.ServicePath) {+ trimmedRoute = strings.TrimPrefix(trimmedRoute, static.ServicePath+"/")+ log.Println("static prefix detected..trimming: ", trimmedRoute)+ routes = trimmedRoutes+ } else if strings.HasPrefix(trimmedRoute, dynamic.ServicePath) {+ trimmedRoute = strings.TrimPrefix(trimmedRoute, dynamic.ServicePath+"/")+ log.Println("dynamic prefix detected..trimming: ", trimmedRoute)+ routes = trimmedRoutesDynamic+ } else {+ server.ReturnNotFoundResponse(res)+ return+ }++ if paths, ok := routeLookupTable[trimmedRoute]; ok {+ log.Printf("CatchAllHandler entry %s already in map: %v \n", trimmedRoute, routeLookupTable[trimmedRoute])+ server.FormatAndReturnTextResponse(res, strings.Join(paths, "\n"))+ return+ }++ appendToResults := true
will be great if you can add some comments for this block and the at L#71
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
+// Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.+//+// Licensed under the Apache License, Version 2.0 (the "License"). You may+// not use this file except in compliance with the License. A copy of the+// License is located at+//+// http://aws.amazon.com/apache2.0/+//+// or in the "license" file accompanying this file. This file is distributed+// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either+// express or implied. See the License for the specific language governing+// permissions and limitations under the License.++package handlers++import (+ "log"+ "net/http"+ "sort"+ "strings"++ "github.com/aws/amazon-ec2-metadata-mock/pkg/mock/dynamic"+ "github.com/aws/amazon-ec2-metadata-mock/pkg/mock/static"+ "github.com/aws/amazon-ec2-metadata-mock/pkg/server"+)++const (+ // shortestRouteLength represents smallest metadata path without prefix + "/" ex: "mac/"+ shortestRouteLength = 4+ versionsPath = "/"+ latestPath = "/latest"+)++var (+ routeLookupTable = make(map[string][]string)++ supportedVersions = []string{"latest"}+ supportedCategories = []string{"dynamic", "meta-data"}++ // trimmedRoutes represents the list of routes served by the http server without "latest/meta-data/" prefix+ trimmedRoutes []string+ trimmedRoutesDynamic []string+)++// CatchAllHandler returns subpath listings, if available; 404 status code otherwise+func CatchAllHandler(res http.ResponseWriter, req *http.Request) {+ log.Println("Received request to CatchAllHandler: ", req.URL.Path)+ // CatchAllHandler may be invoked before ListRoutesHandler+ if len(trimmedRoutes) == 0 {+ formatRoutes()+ }++ var routes, results []string++ // Clean request path and determine which route list to search+ trimmedRoute := strings.TrimSuffix(req.URL.Path, "/")
does trailingSlashMiddleware handle this?
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
var ( // ServicePath defines the static service path
static -> dynamic
the var is self-explanatory I think
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
func Handler(res http.ResponseWriter, req *http.Request) { } } -// RegisterHandlers registers handlers for ALL static paths+// RegisterHandlers registers handlers for dynamic paths
nice catch:)
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
func ReturnUnauthorizedResponse(w http.ResponseWriter) { http.Error(w, UnauthorizedResponse, http.StatusUnauthorized) return }++// trailingSlashMiddleware will remove trailing slashes and forward the request to the correct handler+func trailingSlashMiddleware(next http.Handler) http.Handler {
curious about the name next for the handler here. Can you provide some context.
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
+// Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.+//+// Licensed under the Apache License, Version 2.0 (the "License"). You may+// not use this file except in compliance with the License. A copy of the+// License is located at+//+// http://aws.amazon.com/apache2.0/+//+// or in the "license" file accompanying this file. This file is distributed+// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either+// express or implied. See the License for the specific language governing+// permissions and limitations under the License.++package handlers++import (+ "log"+ "net/http"+ "sort"+ "strings"++ "github.com/aws/amazon-ec2-metadata-mock/pkg/mock/dynamic"+ "github.com/aws/amazon-ec2-metadata-mock/pkg/mock/static"+ "github.com/aws/amazon-ec2-metadata-mock/pkg/server"+)++const (+ // shortestRouteLength represents smallest metadata path without prefix + "/" ex: "mac/"+ shortestRouteLength = 4+ versionsPath = "/"+ latestPath = "/latest"+)++var (+ routeLookupTable = make(map[string][]string)
I still think the catch all handler can be simplified and the optimization of storing the subpaths might be an overkill here.
A simple example here - https://play.golang.org/p/PBIg_H8gtuA. We can talk more, I might be missing some context.
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
func getHandlerPairs(cmd *cobra.Command, config cfg.Config) []handlerPair { return handlerPairs }++// registerStatic registers handlers for ALL static paths+func registerStatic(config cfg.Config) {
registerStatic and registerDynamic have specific logic concerning static and dynamic paths. They are probably not a good fit in cmdutil.go.
Curious as to why they were moved.
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
+#! /usr/bin/env bash++set -euo pipefail++SPOT_TEST_PATH="http://$HOSTNAME:$AEMM_PORT/latest/meta-data/spot"+SPOT_TEST_PATH_TRAILING="http://$HOSTNAME:$AEMM_PORT/latest/meta-data/spot/"+SPOT_IA_TEST_PATH_TRAILING="http://$HOSTNAME:$AEMM_PORT/latest/meta-data/spot/instance-action/"+SPOT_TT_TEST_PATH_TRAILING="http://$HOSTNAME:$AEMM_PORT/latest/meta-data/spot/termination-time/"++function test_subpaths() {
may be a good test to add is with a req path - '/latest/meta-data/network/interfaces/macs/<mac>/' to test ipv4-associations/ with trailing slash
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
+// Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.+//+// Licensed under the Apache License, Version 2.0 (the "License"). You may+// not use this file except in compliance with the License. A copy of the+// License is located at+//+// http://aws.amazon.com/apache2.0/+//+// or in the "license" file accompanying this file. This file is distributed+// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either+// express or implied. See the License for the specific language governing+// permissions and limitations under the License.++package handlers++import (+ "log"+ "net/http"+ "sort"+ "strings"++ "github.com/aws/amazon-ec2-metadata-mock/pkg/mock/dynamic"+ "github.com/aws/amazon-ec2-metadata-mock/pkg/mock/static"+ "github.com/aws/amazon-ec2-metadata-mock/pkg/server"+)++const (+ // shortestRouteLength represents smallest metadata path without prefix + "/" ex: "mac/"+ shortestRouteLength = 4+ versionsPath = "/"+ latestPath = "/latest"+)++var (+ routeLookupTable = make(map[string][]string)++ supportedVersions = []string{"latest"}+ supportedCategories = []string{"dynamic", "meta-data"}++ // trimmedRoutes represents the list of routes served by the http server without "latest/meta-data/" prefix+ trimmedRoutes []string+ trimmedRoutesDynamic []string+)++// CatchAllHandler returns subpath listings, if available; 404 status code otherwise+func CatchAllHandler(res http.ResponseWriter, req *http.Request) {+ log.Println("Received request to CatchAllHandler: ", req.URL.Path)+ // CatchAllHandler may be invoked before ListRoutesHandler+ if len(trimmedRoutes) == 0 {+ formatRoutes()+ }++ var routes, results []string++ // Clean request path and determine which route list to search+ trimmedRoute := strings.TrimSuffix(req.URL.Path, "/")+ log.Println("removing suffix slash: ", trimmedRoute)+ if strings.HasPrefix(trimmedRoute, static.ServicePath) {+ trimmedRoute = strings.TrimPrefix(trimmedRoute, static.ServicePath+"/")+ log.Println("static prefix detected..trimming: ", trimmedRoute)+ routes = trimmedRoutes+ } else if strings.HasPrefix(trimmedRoute, dynamic.ServicePath) {+ trimmedRoute = strings.TrimPrefix(trimmedRoute, dynamic.ServicePath+"/")+ log.Println("dynamic prefix detected..trimming: ", trimmedRoute)+ routes = trimmedRoutesDynamic+ } else {+ server.ReturnNotFoundResponse(res)+ return+ }++ if paths, ok := routeLookupTable[trimmedRoute]; ok {+ log.Printf("CatchAllHandler entry %s already in map: %v \n", trimmedRoute, routeLookupTable[trimmedRoute])+ server.FormatAndReturnTextResponse(res, strings.Join(paths, "\n"))+ return+ }++ appendToResults := true+ for _, route := range routes {+ if strings.Contains(route, trimmedRoute) {+ log.Printf("route: %s contains trimmed route: %s \n", route, trimmedRoute)+ // ex: iam/security-credentials --> security-credentials+ route = strings.TrimPrefix(route, trimmedRoute+"/")+ for i, existingRoute := range results {+ // ex: security-credentials/baskinc-role contains security-credentials+ if strings.Contains(route, existingRoute) {+ log.Printf("route: %s contains existingRoute: %s \n", route, existingRoute)+ // display as security-credentials/+ results[i] = existingRoute + "/"+ log.Printf("updated existingRoute: %s \n", existingRoute)+ appendToResults = false+ break+ }+ }+ if appendToResults {+ log.Printf("adding route: %s to results\n", route)+ results = append(results, route)+ }+ appendToResults = true+ }+ }++ if len(results) <= 0 {+ server.ReturnNotFoundResponse(res)+ return+ }++ routeLookupTable[trimmedRoute] = results+ log.Printf("CatchAllHandler: adding %s and its routes: %v to the map\n", trimmedRoute, results)+ server.FormatAndReturnTextResponse(res, strings.Join(results, "\n"))+ return+}++// ListRoutesHandler returns the list of supported paths+func ListRoutesHandler(res http.ResponseWriter, req *http.Request) {+ log.Println("Received request to display paths: ", req.URL.Path)+ // Routes are not available until runtime; only want to do this ONCE+ if len(trimmedRoutes) == 0 {+ formatRoutes()+ }++ // these paths do not use routeLookupTable due to inconsistency of trailing "/" with IMDS+ switch req.URL.Path {+ case static.ServicePath:+ server.FormatAndReturnTextResponse(res, strings.Join(trimmedRoutes, "\n")+"\n")+ case dynamic.ServicePath:+ server.FormatAndReturnTextResponse(res, strings.Join(trimmedRoutesDynamic, "\n")+"\n")+ case latestPath:+ server.FormatAndReturnTextResponse(res, strings.Join(supportedCategories, "\n")+"\n")+ case versionsPath:+ server.FormatAndReturnTextResponse(res, strings.Join(supportedVersions, "\n")+"\n")+ default:+ server.ReturnNotFoundResponse(res)+ }++ return+}++func formatRoutes() {+ var trimmedRoute string+ for _, route := range server.Routes {++ if strings.HasPrefix(route, dynamic.ServicePath) {+ // Omit /latest/dynamic
why not omit latest/dynamic/ and remove L#147?
same comment for the else block
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
func ReturnUnauthorizedResponse(w http.ResponseWriter) { http.Error(w, UnauthorizedResponse, http.StatusUnauthorized) return }++// trailingSlashMiddleware will remove trailing slashes and forward the request to the correct handler+func trailingSlashMiddleware(next http.Handler) http.Handler {+ return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {+ // support "/" as a valid path+ if r.URL.Path != "/" {+ r.URL.Path = strings.TrimSuffix(r.URL.Path, "/")+ }+ log.Println(r.RequestURI)
add text to the log to include some context.
comment created time in a month
Pull request review commentaws/amazon-ec2-metadata-mock
Refactor mux to align with IMDS
func ReturnUnauthorizedResponse(w http.ResponseWriter) { http.Error(w, UnauthorizedResponse, http.StatusUnauthorized) return }++// trailingSlashMiddleware will remove trailing slashes and forward the request to the correct handler+func trailingSlashMiddleware(next http.Handler) http.Handler {+ return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {+ // support "/" as a valid path+ if r.URL.Path != "/" {
if r.URL.Path != "/" && strings.HasSuffix(r.URL.Path, "/") ?
comment created time in a month
push eventpdk27/halyard
commit sha 17ee007b4915fcc673312349692a3656de57bb21
fix(dependencies): update clouddriver (#1766) Also updated some modules to add clouddriver-api dep so that it would still compile.
commit sha 2cbf7f57d738c90669d1fb9e3fc43b72cf2cf26b
fix(kubernetes): fix custom service annotations (#1767)
push time in a month
push eventpdk27/deck
commit sha cf33dcbf3fe11da00a872f0cf7a81f6be2aaca62
fix(functions): available lambda runtimes not up to date (#8472) Co-authored-by: Ubuntu <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
push time in a month
push eventpdk27/orca
commit sha 69b33e1fa964553e4fd599d238073203c7d5de9a
fix(execution promoter): Only enable execution promoter if enabled (#3842) This way, if an orca cluster is not running the queue we don't enable the promoter
commit sha 113ea7c12ebcf50a31968157c3480b5a01d6a0b0
Merge remote-tracking branch 'upstream/master'
push time in a month
push eventpdk27/kayenta
commit sha 44346d1f5228cfb5428d517ea1671dcd23d19e5d
fix(retry): Retry logic wasn't properly checking the response for nulls (#775)
commit sha f2a33022003de65d98e83ce09032d8de12b73a5b
fix(canary): Fix Canary Indefinitely Retrying (#776) If you were to supply a config with no metrics, orca would loop indefinitely as it waited for non existent stages to finish (#776)
commit sha b09adb8feb015160da230ace1555a8d7e132ab8d
chore(dependencies): Autobump orcaVersion (#779) Co-authored-by: root <root@60e37a2f202d>
push time in a month
push eventpdk27/igor
commit sha 8eb26f9061b016f91364289bd6f640f308706e0d
fix(concourse): handle missing branch in git metadata (#826) Sets branch name to the sha1 short-ref if missing from concourse metadata
push time in a month
push eventpdk27/gate
commit sha d953120a320840ceb947e6dfe3795dbdae992a80
chore(spotless): upgrade spinnaker gradle plugin (#1294) This includes updates to google-java-format and ktlint, so requires some formatting changes. These were made with a simple `./gradlew spotlessApply`. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha e369f8706fddddbe524c947529fcde3430a4cb2f
fix(md): update swagger text for remove veto (#1299)
commit sha f7842e41c6fdb6a4a0b3412af264a812bf521ae2
feat(gate): Add support for Redis SSL (#1295) * feat(gate): Add support for Redis SSL Follow Kork's existing pattern and check for presence of rediss in the URI Scheme. Gate doesn't initialise JedisPool() pool with parameters like Kork so follow Gate conventions and use function to enable SSL. * style(gate): fix indentation of redis ssl function Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
push time in a month
push eventpdk27/front50
commit sha 5ed028d628e64f135020f8932fdde0cf8a447fd9
feat(plugins): Add remote extensions field to a plugin info release (#917) * feat(plugins): Add remote extensions field to plugin info * chore(plugins): Addressing comments
commit sha 173b435fc1b7772b84b38e8779267e51052542a2
fix(misc): Recover application permission also when we undo delete op… (#916) * fix(misc): Recover application permission also when we undo delete operation on application * fix(misc): Fix formatting * fix(misc): Update code comment Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
push time in a month
push eventpdk27/fiat
commit sha 9596559252831f1ade0cf48cb34c7ec0810233c8
chore(spotless): upgrade spinnaker gradle plugin (#740) This includes updates to google-java-format and ktlint, so requires some formatting changes. These were made with a simple `./gradlew spotlessApply`.
commit sha e2a09da936b288995f9313e403119e6a8c1b1998
feat(fiat): Add support for Redis SSL (#741) Follow Kork's existing pattern and check for presence of `rediss` in the URI Scheme. Follow Kork's existing usage of JedisPool() and supply optional parameter designating if SSL is enabled or disabled. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
push time in a month
push eventpdk27/echo
commit sha b344d337d71b779b01850e275055e78d88f7d1c6
feat(notifications): add switch for supplying custom notification UI (#985)
commit sha bfaf9910b7cd33599dbfda5bef0fcd5084eff4dc
chore(spotless): upgrade spinnaker gradle plugin (#984) This includes updates to google-java-format and ktlint, so requires some formatting changes. These were made with a simple `./gradlew spotlessApply`.
commit sha ef1d1d1b80ad674ce053770820a214ee95e862d3
fix(trigger): handle quartz errors better (#987) * fix(trigger): handle quartz errors better We want to know when `echo` fails to register a trigger with quartz but only if it's not a user error (e.g. bad cron express, cron expression in the past, etc). Quartz, unfortunately, often throws a non-descript `SchedulerException` which doesn't provide machine identifiable way to decipher if this is a user error or a system error. This change replicates some logic that's in [quartz](https://github.com/quartz-scheduler/quartz/blob/939a9a25fbf3b374608de59e413405aebe10c089/quartz-core/src/main/java/org/quartz/core/QuartzScheduler.java#L882-L896) to decide if the trigger is valid, if not we will log a warning, but won't increment any failure metrics. If the are exceptions/errors outside of the trigger validation path, those will still log errors and increment failure metrics * fixup! fix(trigger): handle quartz errors better * fixup! fixup! fix(trigger): handle quartz errors better
push time in a month
push eventpdk27/deck
commit sha a7c3441586423b56d2565f99af9ede2a714a8b66
fix(core/nav): Apply new class to Page App Owner (#8442)
commit sha a7312539380a95562d28028c4a52768d81892725
chore(package): publish core 0.0.495 kubernetes 0.0.43 (#8443)
commit sha 5a502e7422c4de7331d71360f3cbd296c9d23ae3
fix(core/securityGroup): Clone cached data before mutating it (#8447) Closes #8444
commit sha 37c7ba506dd5230601681329acbaa133fa903964
chore(package): publish core 0.0.496 (#8448)
commit sha aac862ab13bc9485d8197ec90a833a7638760cc8
chore(deps): [security] bump elliptic from 6.4.0 to 6.5.3 (#8445) Bumps [elliptic](https://github.com/indutny/elliptic) from 6.4.0 to 6.5.3. **This update includes a security fix.** - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.4.0...v6.5.3) Signed-off-by: dependabot-preview[bot] <[email protected]> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
commit sha 602122834365212d88ba6db6f07a96d021937a37
style(appengine): Fix typo in Server Group settings (#8449)
commit sha 30a07842244b1871be0ade3c2cfde1e92f92d98f
refactor(kubernetes): clean up infrastructure interfaces (#8450) * refactor(kubernetes): colocate kubernetes infrastructure interfaces The kubernetes infrastructure interfaces currently represent an amalgam of data received from clouddriver from each logical kind request and data from a separate request for the full resource manifest. There is also some overlap among these interfaces. Let's colocate them to improve readability of the upcoming refactor, at the top level because these logical kind interfaces are relevant beyond the details directories. * refactor(core): remove redundant namespace check from cluster.service.ts Clouddriver sets Kubernetes server groups' `region` equal to their `namespace`, so we should not need to check both ([source](https://github.com/spinnaker/clouddriver/blob/master/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/caching/view/model/ManifestBasedModel.java#L46)). * refactor(core): remove displayName from IServerGroupManager Clouddriver only guarantees that server group managers have a name ([source](https://github.com/spinnaker/clouddriver/blob/master/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/model/ServerGroupManager.java#L30)). The only extant implementation of this interface is the Kubernetes-specific server group manager, which does guarantee a displayName, but we should use the name instead in non-Kubernetes-specific code. The result of this from a user perspective will be to include the Kubernetes kind along with the name in these entity tag labels. * refactor(core): remove namespace from IServerGroup Only the Kubernetes provider uses namespaces this way; let's not define this as an optional on the core server group interface. * refactor(kubernetes): move shared infrastructure fields to shared interface Let's move the common Kubernetes infrastructure fields of apiVersion, displayName, namespace, and kind to an interface that each logical kind interface can extend.
commit sha 75f23284bc35d86a14949261aae06dd5e413506b
fix(amazon/rollback): Wait 500 ms before opening a second modal (#8451) When the react-bootstrap based confirmDialog closes, it removes modal-open class from the body tag after a 300ms fade out animation. this causes the ui-bootstrap modal to not be styled properly. Adding this delay allows the animation to complete and the modal-open class removed from the body tag. Then, ui-bootstrap re-adds modal-open when it shows the rollback dialog. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 64cd209f937ab2cd33e4f465f1f53e4c2c5398b2
refactor(instance): Migrate the instance chiclet tooltip from raw bootstrap to Tooltip component (#8437) This commit includes a performance optimization where tooltips are only shown after the chiclet has been hovered. Otherwise, the Tooltip causes massive lag n screens with large number of instances. This happens when scrolling due to virtualized scrolling and the overhad of the mount/unmount cycle. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 1d14327aff787219fc5b5264b01821a2592a7cfa
refactor(kubernetes): do not augment infrastructure data with manifest data (#8452) Depends on: https://github.com/spinnaker/clouddriver/pull/4765 Instead of adding data from each resource manifest to the data received from Clouddriver, just receive all the data from Clouddriver. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha bad8b297e9f01fb820c49de595e5457eb14436ac
fix(core/config): Make app config account dropdowns wider (#8453) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 86308a41fe10ab79d3e83b8e43b4f7405089de74
fix(core/projects): fix layout for projects view (#8456) this fixes a problem viewing a pipeline execution in the context of a project where the details content width was 30,000px wide Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha dcb8ceff74e7013d20a85bd8ac747b453d40bfe5
chore(package): publish amazon 0.0.260 appengine 0.0.14 core 0.0.497 kubernetes 0.0.44 titus 0.0.139 (#8457)
commit sha df435ac3580e734eea740ae6707ac62950fce67e
fix(managed): Add a fixed width for logo in environments header
commit sha 9503258248de77a0b7193b9f7d30e71d48ea8484
refactor(kubernetes): remove some unused code (#8458) * refactor(core): remove unused ManifestService For some reason, we ended up with a KubernetesManifestService and a similar but unused core ManifestService. * refactor(kubernetes): remove unused method from KubernetesManifestService We have now removed all clients of `makeManifestRefresher`, and since we will not be adding additional Angular code, it is unlikely that we would ever need a method that directly mutates some input based on the most recent result of fetching manifests. * refactor(kubernetes): remove unused interface There is a duplicate IManifestSubscription interface in the DeployStatus component and no other uses. * refactor(core): remove unused methods from ManifestWriter Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 92eeb4f3d48166bdf657209b63455e47242cea18
fix(helm): Fix helm artifacts not updating name and vesions (#8455) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 62e6878756def592f1faad0c5db1b6aa62c3e20e
feat(amazon): ASG support for features enabled by launch templates (#8326) * feat(amazon): ASG support for features enabled by launch templates * feat(amazon): Clone server group with launch template * Default spotPrice to undefined * Delete linked package.json * Remove helpfield * Instance market options for spotPricing * feat(amazon): Temporarily add setLaunchTemplate flag for testing * feat(core): Support for security groups with launch template-backed asgs * feat(core): Update command with associateIPv6Address * Protection for no security groups * remove logs * Temporarily add feature settings for testing * Revert temp feature branch settings
commit sha cb71e811c49dc1e92f96045c436b4ce2bb1e167d
chore(deps): bump @spinnaker/kayenta from 0.0.93 to 0.0.96 (#8463) Bumps [@spinnaker/kayenta](https://github.com/spinnaker/deck-kayenta) from 0.0.93 to 0.0.96. - [Release notes](https://github.com/spinnaker/deck-kayenta/releases) - [Commits](https://github.com/spinnaker/deck-kayenta/commits) Signed-off-by: dependabot-preview[bot] <[email protected]> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
commit sha 9c999ce4f6b73088450b9fb60b312e8ad51e1705
fix(kubernetes): Don't overwrite namespace on instance (#8464) * fix(kubernetes): Don't overwrite namespace on instance The namespace is already set on the instance details object; as we're about to remove region from the instance view (in favor of zone, which is the correct field for an instance) leaving this code will cause the namespace to be cleared. * fix(kubernetes): Use account instead of accountName in details view Only security groups set accountName; the convention for all others is to only set account. To prepare for removing accountName from these two objects, read account instead.
commit sha 7d9dcd1ff48d683524e5fdcf8896269bee9c7d08
fix(core/help): fix Manual Judgment help text (#8465)
push time in a month
push eventpdk27/clouddriver
commit sha c05c1839aa0d83b234af12c33e7483f68746e6a0
fix(aws): Skip AMI Sharing and Tag Syncing if Owner is not Managed by… (#4758) * fix(aws): Skip AMI Sharing and Tag Syncing if Owner is not Managed by Spinnaker * refactor(aws): Apply suggestions from code review Co-authored-by: Rob Zienert <[email protected]> Co-authored-by: Rob Zienert <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 43a28f6849c6893111990591e34fc1c9ea338e30
fix(titus): only get the task we need (#4763) When we disable an ASG in titus we need to get all tasks associated with the job. However, it appears that we always retried ALL tasks from ALL jobs. Which is neither great for Titus nor Spinnaker since we a) run out of memory and also timeout like crazy trying to get the world Pretty sure the issue is this erroneous conditional which checks if Titus supports query by job ids
commit sha 3d90bdeae3637e4c6b2e16cf8cd622902ef9e07c
refactor(kubernetes): Clean up KubernetesCacheUtils class (#4764) * refactor(kubernetes): Extract getHandler to a function This is a minor refactor to make the upcoming changes cleaner; just pull out a function. * refactor(kubernetes): Fix type safety and null safety resourceModelFromCacheData is very unsafe; it does an unchecked cast and can also return null. The goal of that function is to allow custom overrides for how to convert cache data into a ServerGroup or a ServerGroupManager. (We have not implemented the ability to customize other types.) The problem is that we are checking if the handler is of the generic ModelHandler instead of the specific type we are interested in. We already have ServerGroupHandler and ServerGroupManagerHandler to handle these two specific cases. Split the generic resourceModelFromCacheData into to specific ones to handle these two cases. By checking if the handler implements the specific case, we can avoid unchecked casts. Finally, rather than return null if the handler doesn't specify an override, just use the default implementation. The goal here is only to allow people to override this if they want; if they don't override, we can just use the default. * refactor(kubernetes): Clean up CustomKubernetesHandlerFactory This class implemented the (raw) ModelHandler, but only ever implemented the default implementations for the kind in question. As we now fall back to the default implementations in cases where there is no override, we don't need to explicitly override them here. * refactor(kubernetes): Remove ModelHandler class Now that we're using the more specific handler classes to detect custom implementations of fromCacheData, we don't need the ModelHandler interface at all anymore; remove it. * refactor(kubernetes): Add relationshipTypes helper function Minor refactor to abstract away translating a Spinnaker kind into its relationship types. * refactor(kubernetes): Add relationshipKeys function Minor refactor to pull common logic looking up relationships on a CacheData object into a function. * refactor(kubernetes): Rename to function Rename aggregateRelationshipsBySpinnakerKind as getRelationshipKeys, because it does the same thing as the relationshipKeys function we just created, but for a SpinnakerKind. Also collect to an ImmutableList and update the return type. Similarly remove the OfSpinnakerKind from getRelationships, becase the function signature implies what the input is. * refactor(kubernetes): Update return type of mapByRelationship It will now return a Map<String, Collection<CacheData>> instead of a Map<String, List<CacheData>> because it's not actually important to callers that the values are List<?>. This will make the next commit possible. * refactor(kubernetes): mapByRelationship returns a MultiMap This is a much better data structure for mapping keys to multiple values. In particular, it has the property that .get(key) returns an empty list rather than null if there are no mappings, so we can avoid a lot of defaulting. * refactor(kubernetes): Inline a variable Inline the keys variable in loadRelationshipsFromCache; also collect the relationship keys to a Set rather than to a List. This cuts down the number of times we look up load balancers from 4 to 2; we'll still need to get that down to 1 but this is progress. * refactor(kubernetes): Rename getTransitiveRelationships Rename this function to something shorter and clearer; also update it to only accept a single CacheData as all callers are wrapping a single CacheData in a collection when calling it. * refactor(kubernetes): Require callers of to create the filter Simple refactor to push requiring the cache filter to be created to callers. (Actually caller as this is only used in one place.) * refactor(kubernetes): Require callers of getRelationships to pass data getRelationships is inherently ineffecient, as it encourages callers to require a lookup of data they already have. In 2 of the 3 callers we are either looking up the same data in a loop, or already have the data we're looking up. Require callers to first look up the cache data, then pass it in to get its relationships. * refactor(kubernetes): Rename loadRelationshipsFromCache Use getRelationships to be consistent with how we're naming other functions in this class. Also update the single-data-consuming version to call the list version with a singleton. * refactor(kubernetes): Remove loadRelationshipsFromCache This is identical to getRelationships. Also the whole class is non-null now, so move the annotation to the class level. * refactor(kubernetes): Cleanup of KubernetesCacheUtils Make the class package-private as it is only used in the package. Also add Javadoc to some methods. * refactor(kubernetes): Replace kindMap lookups with getRelationships We already have a function in cacheUtils that looks up all relationships for a SpinnakerKind; replace cases where callers map the SpinnakerKind to KubernetesKinds with just calling this function. * style(kubernetes): Fix comments Co-Authored-By: Maggie Neterval <[email protected]> Co-authored-by: Maggie Neterval <[email protected]>
commit sha fc2be9f2ed65126bf6dd4076e90265baaac1ccbd
feat(kubernetes): add apiVersion, displayName, and namespace to ManifestBasedModel (#4765) Deck expects instances, serverGroups, serverGroupManagers, securityGroups, and loadBalancers to each include these four properties. Currently, Deck is combining data returned from each view with data returned from each manifest. Instead, let's just include these properties in each view. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 01c7c97f95dc46781f422cecdf4bedb6c2b272c7
fix(titus): minor clean up for titus and orchestrator (#4766) * Remove all references to "jobIds" feature flag as it's no longer a thing * Remove dangerous (and unused) call getAllTasks * Also, the default orchestrator will mark the task as "Orchestration complete" even though the task might have failed. This is very confusing in orca as it shows `error: orchestration complete`. Add some more words about failed tasks
commit sha 1c3932bce20917d3546e3c07317df24be948d4dd
refactor(kubernetes): Further improvements to Kubernetes data providers (#4767) * refactor(kubernetes): Add Multimap-returning getRelationships This commit only affects CacheData, in preparation for some changes visible outside the class. Most notably, we'll update getRelationships to return a MultiMap when we pass in a Collection of CacheData items. This allows the caller to see the association between the input data and the output relationships, rather than flattening it to a collection where it's not possible to determine which of the output CacheData items is related to each of the input ones. In this commit, we're not taking advantage of this; in fact the two callers have been updated to: * Just call .values() to flatten the result * Query the cache directly instead of using getRelationships But in the next commit we'll push this information outward one more level of calls, which will the allow consumers to use the information to avoid duplicate work. Also update getRelationshipKeys to collect to a Set. The general idea is that we'll collect keys (String) to a Set to dedupliate but data (CacheData) to a List as deduplication by reference is not valuable. (I left one TODO in a case where we are deduplicating by reference but will fix that.) * refactor(kubernetes): Keep track of relationships when fetching In a number of places, we have a Collection of CacheData items, and we want to fetch all relationships of a particular kind. For example, we might have a List of server groups and want to load all instances. Currently we returned a flattened collection of all the related types, forcing the caller to then iterate through it to recompute which instance is associated with which server group. Greatly simplify this (and improve performance) by returning a MultiMap from getRelationships. This means, for example, that the caller can then look up the instances related to a given server group id, without needing to build another map. * refactor(kubernetes): Look up related load balancer keys directly When constructing a server group, we look up the full data for related load balancers, and then only keep the key. Instead let's look up only the keys. As this isn't making any cache calls, we don't need to keep the full map outside the loop, and can just look up the needed data inside the loop. * refactor(kubernetes): Extract loadServerGroups to a function It returns a Map so we can later get the constructed server group by id, though we are not yet using that feature. * refactor(kubernetes): Load balancer constructor accepts server groups The fromCacheData method to create a LoadBalancer requires all the cache data to create server groups as well; but in some cases we will already have constructed server groups. It will be simpler and more performant to just pass these existing server groups to fromCacheData. Add a (as yet unused) fromCacheData that takes a set of LoadBalancerServerGroups and uses those. Refactor the existing fromCacheData to pass the LoadBalancerServerGroups it constructs to this new constructor. * refactor(kubernetes): Use new fromCacheData in cluster provider Let's use the new fromCacheData we just created and pass in the server groups that we have already built. This also removes the last use of mapByRelationship, so we can remove the function. * refactor(kubernetes): Minor cleanup in loadClusters Now that only serverGroupToInstances is only used in loadClusters, look up that data in the function rather than require the caller to look it up. Similarly, the construction of the stream over load balancers is just a really complex way of getting the values of the MultiMap; use that instead. * refactor(kubernetes): Remove the old version of fromCacheData It was only used in one place; let's move the logic there. * refactor(kubernetes): Update getServerGroup to call existing function getServerGroup has its own logic for constructing server groups; instead call the loadServerGroups function we just wrote. This commit also fixes a bug; we were only loading load balancer and instance relationships with the cache data, so we never returned any server group managers. The integration tests didn't catch this because they were exercising the function only for a non-deployment-managed replica set. Add a test to catch this case. It's interesting that we only do this optimization of filtering relationships when loading a single server group, whereas it probably would be much more beneficial in the endpoints that return many. I'll leave this for now, but may revisit. * refactor(kubernetes): Extract relationshipFilter logic I'm honestly not sure that the benefit of creating this relationship filter for a single server group is worth it, but we'll keep the logic for now. Let's at least store the cache filter as an instance field so that we can re-use it, and abstract away the logic for creating it. I'm not going to include filter logic in other places as I think the correct fix for improving performance here is just to cut down the relationships we store in the cache to those that are actually needed, rather than add logic for ignoring most of them. * refactor(kubernetes): Fix one more case of manually using kindMap There is now a function for this. * refactor(kubernetes): Add helper function for looking up a item We made callers accept a MultiMap then look up the one id of interest; let's do that instead for callers. * fix(kubernetes): Stop returning multiple copies of load balancer The issue was that we were building the load balancer once per attached server group. All of the refactors up to now have not fixed it (though we did reduce the number of times it is returned from 4 to 2). The reason at this point is because .values() on a multimap returns items multiple times if they map to multiple keys. Let's apply a distinct on the stream that only takes the first for each id. We could have just done a regular distinct() because the result of getRelationships always maps a key to the same reference (so we don't have multiple instances of each load balancer, just multiple pointers to the same one). But I did not want to have to debug this issue if that ever changes, so let's be explicit and keep the first one we encounter with each id. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 658bac1b8b21121cdb1ac6fbfcb76cec16d5a410
fix(titus): Handle rate limiting that is propagated as an INVALID_ARGUMENT (#4770)
commit sha 022f0e6536aeaf6945320fa838fc2a51b1df71e7
fix(kubeconfig): Don't hash missing kubeconfig files (#4768) * fix(kubeconfig): Don't hash missing kubeconfig files * fix(kubeconfig): KubeconfigFile cannot be null and doesn't use default value
commit sha c8e29c23aa23cfc197a8b11d1956ac6dec0eb3cf
refactor(kubernetes): Remove manifest from view objects (#4769) * refactor(kubernetes): Push getAccount to implementations First, getAccountName is only needed for security groups; push that down only to the security group provider. Second, getAccount is defined in the base class, but depends on the abstract method getKey that is defined by implementations. As this is the only reason we need to have the getKey method, let's just push getAccount itself down to the implementations so that we can just access the key directly. In fact, instead of storing it at all, let's just use the key in the constructor and discard it as we don't need it for anything else. Eventually the plan will be to not read this off the key at all in the constructor as we should already be storing the account as part of the cache data we're using to construct this. * refactor(kubernetes): Push fields down from ManifestBasedModel Most of ManifestBasedModel is lookign up fields on a Manifest; we want to stop using the manifest for all of these lookups because in most cases we already store the parsed data as part of the CacheData item (and in the cases we don't, we should start doing that). In order to simplify moving to that model, push down all the manifest logic to the implementing classes. It's a bit more code now, but should make it much easier to understand. We also remove some methods that aren't necessary because they were added to the superclass even though they are only needed by one or two implementations. Add a KubernetesResource interface that keeps track of fields we're expecting to find on all kubernetes resources (mapping to the correpsonding interface in deck). This is just helpful to make sure that we get a compile-time error if we accidentally remove one of these fields. * refactor(kubernetes): Pull ImageSummary to a class This is a fairly large class to be an anonymous class; pull it out to a real class. * refactor(kubernetes): Remove manifest from view objects This commit removes the manifest from the view object models, instead reading the required fields from the manifest in the constructor, then discarding the manifest. This is an intermediate step towards not requiring the manifest in the constructor at all, and instead using the metadata we store on the cache object. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
push time in a month
startedaws/amazon-ecs-cli
started time in 2 months
startedclareliguori/spinnaker-ecs-devel
started time in 2 months
push eventpdk27/deck
commit sha 7f8e33ee578193a8c8a0cb87cfccf41c2451e5e9
fix(titus): Update host account environment (#8076)
commit sha e2217c068146178acd45631c9535e9f1ef00d1db
chore(titus): Bump to 0.0.132 (#8078)
commit sha 11f2563fc0fda9a51697124bcd9f7887fcd53197
refactor(artifacts): clean up ArtifactReferenceService (#8075) * refactor(artifacts): clean up and add docs to ArtifactReferenceService * feat(artifacts): add method for removing multiple artifact references from stages Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha e51e34280569018a03a9b498c885a142d96beae0
feat(core/managed): status indicators, explanation cards on artifacts (#8069) * feat(core/managed): status indicators, explanation cards on artifacts * explicitly surface that vetoed versions were never deployed Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha b3f11d468df9add880d2ce6ef592ba7fff281609
chore(package): publish core 0.0.463 (#8079)
commit sha 611416b3f1d4dc0d1fff5dd07201860a683f5408
feat(amazon/details): Pass application to details field (#8068) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 26a02137091c63b40e94d9d28f103d118416c254
feat(core/managed): Group resources under EnvironmentRow (#8081) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 84472acbe01d0246076317937148cd5a536603e6
feat(core/managed): show relevant resources on version details (#8080)
commit sha 185865b12d2040fd0c61fa2bbb103afb6f028114
chore(package): publish amazon 0.0.247 core 0.0.464 (#8084)
commit sha b6fe67b7a640a1031e320e1c270d291b25204b59
fix(core): Stop propagation of task monitor close event (#8085) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 8fbfe8bac2c83daa55a24810ae0c5db067388f51
chore(mergify): release-* branches require release manager approval The mergify config currently doesn't distinguish between merging to master and merging to a release branch. It currently never merges to release branches because mergify doesn't have permission to merge to these branches (due to branch protection rules). I don't want to give mergify that permission without updating the config file here, as then it would merge to release branches after any approval, whereas we only want to merge to release branches if a PR is approved by a release manager. This updates the mergify config to scope the existing rules to only apply to the master branch, and adds a new rule to merge to release branches upon approval by a release manager. Because the 1.17 branch (and likely the 1.18 branch in some repos) is still exclusively using Travis CI instead of github actions, also add a rule the merges if Travis CI passes to account for these branches. This rule can be deleted once all of the active branches in the repo are using Github actions.
commit sha 7ae4177453ea11c24d89d8f0b50bbfc008198c2f
feat(core/presentation): adds svg icons for new ui designs (#8083)
commit sha ebe411c02d8bafda7831f434f28effd36fa8ec2f
fix(core/deploymentStrategy): Handle missing rollback property in command (#8082) * fix(core/deploymentStrategy): Handle missing rollback property in command * Update app/scripts/modules/core/src/deploymentStrategy/strategies/redblack/AdditionalFields.tsx Co-Authored-By: Erik Munson <[email protected]> Co-authored-by: Erik Munson <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha c9587ac177847108ed4aa98cfecd62e9aada6f4b
feat(core/managed): swap progress direction on artifact rollouts (#8087)
commit sha b2d03aced96ce2abbe22201a7b9114b72de991b6
Merge branch 'master' into update-mergify
commit sha fea9274a67af69ed1b3884c10aef4b9987b72d64
Merge pull request #8086 from ezimanyi/update-mergify chore(mergify): release-* branches require release manager approval
commit sha 1051f8c3327f1c7ad73ea3430fb6489bbe4a2187
feat(core/managed): add real icons to Environments view (#8091) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 75c2dabfe016c0af005e705f57541b8f2815f142
feat(scripts): switch show_changelog.sh --expand-links to --markdown (#8090) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha bbb9baeb3429e6e7441b7d564f4a45a7dc33f955
chore(package): publish core 0.0.465 (#8092)
commit sha 8d15878c544d5a8ae59ff3babc3e2aee08f47c2e
fix(webhook): Show 'Progress' as Info instead of Warning (#8088) Co-authored-by: Kevin Woo <[email protected]>
push time in 2 months
push eventpdk27/echo
commit sha 67455b0938aba63fd85d0325681f804863b76079
chore(java11): compile with Java 11 (but using -source 8 -target 8) (#819)
commit sha 44dd97164b04de760d8315130eb00aad48fcf58e
Revert "chore(java11): compile with Java 11 (but using -source 8 -target 8) (#819)" (#820) This reverts commit 67455b0938aba63fd85d0325681f804863b76079.
commit sha 1ccacfde1fbbfe2040ce2c8d13eb9b2b398de2e1
fix(front50): Add SpinnakerRequestInterceptor to Front50 OkHttpClient (#816) * fix(front50): Add SpinnakerRequestInterceptor to Front50 OkHttpClient Currently, Front50 OkHttpClient in Echo does not propagate the AuthenticationRequest Headers to Front50 on API calls. Reason for the above behaviour is due to Front50 Client created without SpinnakerRequestInterceptor. This interceptor ensures Auth Headers are propagated as part of request headers on Http calls. * fix(igor): Use SpinnakerRequestInterceptor in Igor OkHttpClient Co-authored-by: Deepak <[email protected]>
commit sha 5856d633554265dbb0b01e28e14e8cc783bf3da0
chore(mergify): release-* branches require release manager approval (#824) * chore(mergify): release-* branches require release manager approval The mergify config currently doesn't distinguish between merging to master and merging to a release branch. It currently never merges to release branches because mergify doesn't have permission to merge to these branches (due to branch protection rules). I don't want to give mergify that permission without updating the config file here, as then it would merge to release branches after any approval, whereas we only want to merge to release branches if a PR is approved by a release manager. This updates the mergify config to scope the existing rules to only apply to the master branch, and adds a new rule to merge to release branches upon approval by a release manager. Because the 1.17 branch (and likely the 1.18 branch in some repos) is still exclusively using Travis CI instead of github actions, also add a rule the merges if Travis CI passes to account for these branches. This rule can be deleted once all of the active branches in the repo are using Github actions. * chore(mergify): Add missing 'h'
commit sha 9e27efc0adf04db046d21d7fbe22d8e5004afff4
fix(notifications): remove notification type enum (#821) This is needed for a notification listener extension point so that notification types can be added by a plugin.
commit sha 7b1002a12b9b0d6773423cdf83f18744927eefb0
chore(dependencies): Autobump korkVersion (#817) Co-authored-by: runner <runner@fv-az33>
commit sha 9216760ef52ac89d7207d9e38ae4cb2f29295626
chore(dependencies): Autobump korkVersion (#825) Co-authored-by: runner <[email protected]>
commit sha cdb20b66d4d8be46772a1da4eeeef0067e5dd439
chore(java11): Compile with Java 11 (but targeting Java 8) (#826)
commit sha 7f0a5690965bcdf8c53e9c2036fdc7d79058066b
chore(dependencies): Autobump korkVersion (#827) Co-authored-by: runner <runner@fv-az51>
commit sha af61e42ca53efe2de706cb16ca8c3be1cb674ade
chore(gha): don't run the GHA build when pushing to a fork (#828)
commit sha 4abc3df15513158f752e88b6acc07288d2cefd89
chore(dependencies): Autobump korkVersion (#829) Co-authored-by: runner <runner@fv-az51>
commit sha 89b06a0278502701c94ece331bd49b4d4ad5bf43
chore(dependencies): Autobump fiatVersion (#830) Co-authored-by: runner <runner@fv-az78>
commit sha d42555f64761e4e5f34f92d92264f1222f082d94
chore(dependencies): Autobump korkVersion (#831) Co-authored-by: runner <runner@fv-az51>
commit sha 9788ee55ee91d0a65f7d34f23811b74c876e53f9
chore(dependencies): Autobump korkVersion (#832) Co-authored-by: runner <runner@fv-az51>
commit sha 1580d65c900ca201b0c7adede905bb4f054b708c
refactor(triggers): make BaseTriggerEventHandler's constructor public (#835) Make BaseTriggerEventHandler's constructor public so we can extend the class outside of the package. This makes it easier for the community to add in customized trigger event handlers. Co-authored-by: Freddy Chen <[email protected]>
commit sha a51797cc88e5401fc692ad421c70d0fc915735f7
chore(dependencies): Autobump korkVersion (#836) Co-authored-by: runner <runner@fv-az51>
commit sha ea067dbaaabba4841a49e939522bfa5d3f9b52ea
chore(dependencies): Autobump fiatVersion (#838) Co-authored-by: runner <runner@fv-az76>
commit sha 117bb17fd56b6e338eed4571aa58cf0914f77d55
chore(dependencies): Autobump spinnakerGradleVersion (#841) Co-authored-by: root <root@dccee4f2e44f>
commit sha 81fa6db31d5ef68f5681f97cf39f902ddaf903b9
chore(mergify): if an autobump fails, request a review (#842)
commit sha a79884b12c1ca8d0163f428c9ac3b98899753f77
chore(dependencies): Autobump spinnakerGradleVersion (#843) Co-authored-by: root <root@7c2d69cf985a>
push time in 2 months
push eventpdk27/fiat
commit sha 000688d82dbc097e9b68088be281d8acdfb3fbbd
fix(permissions): update order annotation on sources (#618) ensure we read the base resource permission first so other permission sources that augment Permissions are processed afterword also adds a scheduled refresh to the BaseResourceProvider cache to ensure a user request doesn't hit a cache expiration and have to wait for the cache reload
commit sha 735bd15484aa66ee5ed47b6d19d0a6d1e8803e90
chore(mergify): release-* branches require release manager approval (#617) * chore(mergify): release-* branches require release manager approval The mergify config currently doesn't distinguish between merging to master and merging to a release branch. It currently never merges to release branches because mergify doesn't have permission to merge to these branches (due to branch protection rules). I don't want to give mergify that permission without updating the config file here, as then it would merge to release branches after any approval, whereas we only want to merge to release branches if a PR is approved by a release manager. This updates the mergify config to scope the existing rules to only apply to the master branch, and adds a new rule to merge to release branches upon approval by a release manager. Because the 1.17 branch (and likely the 1.18 branch in some repos) is still exclusively using Travis CI instead of github actions, also add a rule the merges if Travis CI passes to account for these branches. This rule can be deleted once all of the active branches in the repo are using Github actions. * chore(mergify): Update comment Co-authored-by: Michael Plump <[email protected]>
commit sha 2d155c7891bbe7a2320cab6cdddcf0551a61213a
chore(dependencies): Autobump korkVersion (#619) Co-authored-by: runner <runner@fv-az33>
commit sha 9acb48a8c720db763833068dd4032c56d23e1500
chore(build): Break fiat bump dependencies out into separate workflow (#615)
commit sha 9ba8c6cd216163bc11ddcaf11369855a5c208d78
chore(dependencies): Autobump korkVersion (#620) Co-authored-by: runner <[email protected]>
commit sha cb2519214e7884a1006aac4ac5f531224328c9ee
chore(dependencies): Autobump korkVersion (#621) Co-authored-by: runner <[email protected]>
commit sha 8f0fcc7f318c172c2e29cdbaaa3d231f37938a64
chore(dependencies): Autobump korkVersion (#623) Co-authored-by: runner <runner@fv-az51>
commit sha 531885ec4699c731ee0f0999d01cc6b2f11f656b
chore(gha): don't run the GHA build when pushing to a fork (#624)
commit sha 1816dfc3828a6c51da01afda16f6e7992a6df76c
chore(dependencies): Autobump korkVersion (#625) Co-authored-by: runner <runner@fv-az51>
commit sha 6268642e9f219f17a9d06f9a35b3ef30631ebacb
chore(dependencies): Autobump korkVersion (#626) Co-authored-by: runner <runner@fv-az51>
commit sha 95d2e7667f6969d2cd2a1cc17d5d04eb263e5c05
chore(dependencies): Autobump korkVersion (#627) Co-authored-by: runner <runner@fv-az51>
commit sha 27e720b002dc407bbb2687b02dc38da147dce8bc
feat(serviceAccounts): enable loading full service account details for each users serviceAccount (#629) adds an expand query parameter to the /auth/:userId/serviceAccounts endpoint that returns each serviceAccount as a userPermission to allow for contextual filtering This will enable an endpoint in gate to filter user service accounts by application when populating the run as user dropdown in the UI to only include service accounts relevant for the application being configured
commit sha b47aef41582d3ca404dd5f63baab568b5596a8d8
chore(java11): Compile with Java 11 (but targeting Java 8) (#630) Additional differences: `UserRoleSyncer` was using `stream.map().count()` to run an operation on each element and then return the number of elements in the stream. But this doesn't work in Java 11 because "An implementation may choose to not execute the stream pipeline (either sequentially or in parallel) if it is capable of computing the count directly from the stream source." The Java 11 docs (unlike the Java 8 docs) include an explicit example of this exact thing we're doing and why it doesn't work. Fortunately we had to test to catch this. I wonder where else we're doing this... :/
commit sha b9b0cbd65b73072361f8226a2d7c8e9edf01f1cc
perf(auth/ldap): Use group to user mapping to role sync (#573) * perf(auth/ldap): Use group to user mapping to role sync Currently fiat sync LDAP roles by each users synchronously by making API call to LDAP server. As the number of users grow, this could cause performace issue. Ldap server maintains the Group -> User mapping denoting which users are the part of particular group. So, instead of fetching roles for each users, we can fetch the whole Group->User mapping in one API call and perform the role sync. Trade-off: * As the response of LDAP will huge compared to previous approach. This could put load on network * For small groups, the previous approach could be faster. That's why we encourage people to define a threshold after which the group call should be made. * nit * add test * nit * groupUserAttributes is set to empty string by default * rename from thresholdToUseGroupFilter to thresholdToUseGroupMembership Co-authored-by: Repon Kumar Roy <[email protected]> Co-authored-by: Cameron Fieber <[email protected]>
commit sha cf28f43d5baffecae5e2bc3d0d4af137c07cbc83
chore(dependencies): Autobump korkVersion (#631) Co-authored-by: runner <runner@fv-az51>
commit sha 18b642fcf95e19a3fd4be1f0b81cfddf5ec2fafc
fix(applications): fix dedupe of front50 and clouddriver apps (#632) We were trying to dedupe on appname but each system presents them in a different case (front50 upper clouddriver lower)
commit sha 309b6fa6969414aaa53ad429c195ff3e6112966e
chore(dependencies): Autobump spinnakerGradleVersion (#635) Co-authored-by: root <root@dccee4f2e44f>
commit sha 5529c570d0c50f7318661da8900d54d8b1652301
chore(mergify): if an autobump fails, request a review (#636)
commit sha 47f35ac9b233dc11607330d724a5aecaa4f3f28a
chore(dependencies): Autobump spinnakerGradleVersion (#637) Co-authored-by: root <root@7c2d69cf985a>
commit sha 42a30bf89bfb5d9301e8faac24a3e3e145b7954a
chore(mergify): autobump reviews should go to oss-approvers (#638)
push time in 2 months
push eventpdk27/front50
commit sha 51af19176c438ec6fb067cecd09fca1b8fcd98c3
chore(java11): compile with Java 11 (but using -source 8 -target 8) (#751)
commit sha 53b365619e82008fd6f0df35d0dc62b75c0f2b25
Revert "chore(java11): compile with Java 11 (but using -source 8 -target 8) (#751)" (#752) This reverts commit 51af19176c438ec6fb067cecd09fca1b8fcd98c3.
commit sha 99741e965f98af304b063ae5518dd7e736c83d7e
chore(mergify): release-* branches require release manager approval (#753) * chore(mergify): release-* branches require release manager approval The mergify config currently doesn't distinguish between merging to master and merging to a release branch. It currently never merges to release branches because mergify doesn't have permission to merge to these branches (due to branch protection rules). I don't want to give mergify that permission without updating the config file here, as then it would merge to release branches after any approval, whereas we only want to merge to release branches if a PR is approved by a release manager. This updates the mergify config to scope the existing rules to only apply to the master branch, and adds a new rule to merge to release branches upon approval by a release manager. Because the 1.17 branch (and likely the 1.18 branch in some repos) is still exclusively using Travis CI instead of github actions, also add a rule the merges if Travis CI passes to account for these branches. This rule can be deleted once all of the active branches in the repo are using Github actions. * chore(mergify): Add missing 'h'
commit sha fa8a3f2aa5ce4a9de606fc749ee0618cd1908ca3
chore(build): Add GitHub Action cache step (#754)
commit sha ec46bb080ab98a0e999ee72ae48e1cd02593c080
chore(java11): Compile with Java 11 (but targeting Java 8) (#756) * chore(java11): Compile with Java 11 (but targeting Java 8) * fix(gha): fix the indentation on pr.yml
commit sha ce261c215a4d0df5c3c7f691ab2150798b1babff
chore(gha): don't run the GHA build when pushing to a fork (#758)
commit sha 807300e71efc8d0aaad4ae831cbf9625b3fccc92
chore(dependencies): Autobump fiatVersion (#759) Co-authored-by: runner <runner@fv-az78>
commit sha 639e2ec636b836d360470522688e086bb2bc1578
Plugin upsert fix (#755) * fix(plugins): upsert release info while updating plugin info * fix(plugins): adjust new vs old releases list * fix(plugins): adjust new vs old releases list * fix(plugins): adjust new vs old releases list * fix(plugins): adjust new vs old releases list * fix(plugins): adjust new vs old releases list * fix(plugins): adjust new vs old releases list * fix(plugins): adjust new vs old releases list
commit sha afea96deca9ee6491b03b298591b2f55eb02164b
chore(GHA PR build): turn on the cross compiler here too (#761) Not sure why I missed this before. I suppose just because it wasn't needed. In any event, I updated my script to add this going forward.
commit sha 36e31ae9bb05d6fda7a1a959d0329e2a21a7411b
chore(dependencies): Autobump fiatVersion (#762) Co-authored-by: runner <runner@fv-az76>
commit sha 7ae21afd309c78b298f13e95354cf3dd068c0f55
chore(mergify): if an autobump fails, request a review (#763)
commit sha 8856c9f451a978c595dc9f75e17bc9b7d3bda80d
chore(dependencies): Autobump spinnakerGradleVersion (#764) Co-authored-by: root <root@d0e0826bf0ed>
commit sha ba89f81d156bda5edfc5a25fb97496ced0b9ba9d
chore(dependencies): Autobump spinnakerGradleVersion (#765) Co-authored-by: root <root@7c2d69cf985a>
commit sha a3ec9f8e403cf1f262e99f598fb93c557d38cbf9
chore(mergify): autobump reviews should go to oss-approvers (#766)
commit sha 554d9cff04f92b5e203ff5d77b8be46107b1e459
chore(dependencies): Autobump spinnakerGradleVersion (#770) Co-authored-by: root <root@6891b1263a18>
commit sha 4216ad573ca6cb67b92dc2db413458c2c1e2a467
chore(dependencies): Autobump spinnakerGradleVersion (#771) Co-authored-by: root <root@458842d3571f>
commit sha a15fcc5610648a8afd317b8d11bdb9e8c9b08928
chore(bumpdeps): enable autobumps (#768)
commit sha 1e9a4ac77d52e6143a6035bcd30b118ce629763e
chore(dependencies): Unpin org.jetbrains.kotlin (#772) Bumping kork on front50 is failing because at some point recently we upgraded kotlin, and it looks like it has a new artifact that isn't in the pinned version. I'm not sure why the pin was added initially, but the tests all pass when it is removed. When this is removed, kork can successfully be bumped.
commit sha 3252bc6325f9f56ed5c905a0d2dec1127a504eea
chore(dependencies): Autobump korkVersion (#767) Co-authored-by: root <root@2e5c1c42d060> Co-authored-by: Rob Fletcher <[email protected]>
commit sha c7aff9a72e09459e8d82abdeae68c3e46ae11a05
chore(dependencies): Autobump spinnakerGradleVersion (#773) Co-authored-by: root <root@e7992a1c49ce>
push time in 2 months
push eventpdk27/gate
commit sha e8eb0980c610129db596e34fce92964ce3176966
chore(java11): compile with Java 11 (but using -source 8 -target 8) (#1108)
commit sha c70c0389865794c33918dd9c0e9947f1a20cfa14
Revert "chore(java11): compile with Java 11 (but using -source 8 -target 8) (#1108)" (#1109) This reverts commit e8eb0980c610129db596e34fce92964ce3176966.
commit sha 83138e40a1eba62ad153a8506590bd7a9037fa34
feat(auth): support an optional login specific shard for fiat (#1111)
commit sha f8404c21f67e4ff4583402323ebd2706367a3460
chore(mergify): release-* branches require release manager approval (#1113) * chore(mergify): release-* branches require release manager approval The mergify config currently doesn't distinguish between merging to master and merging to a release branch. It currently never merges to release branches because mergify doesn't have permission to merge to these branches (due to branch protection rules). I don't want to give mergify that permission without updating the config file here, as then it would merge to release branches after any approval, whereas we only want to merge to release branches if a PR is approved by a release manager. This updates the mergify config to scope the existing rules to only apply to the master branch, and adds a new rule to merge to release branches upon approval by a release manager. Because the 1.17 branch (and likely the 1.18 branch in some repos) is still exclusively using Travis CI instead of github actions, also add a rule the merges if Travis CI passes to account for these branches. This rule can be deleted once all of the active branches in the repo are using Github actions. * chore(mergify): Add missing 'h'
commit sha 71c6f1a7baf4737b4c8230d22c824f4376426c46
fix(managed): properly annotate YAML support on upsertManifest (#1114)
commit sha 5685f798c5675f17533b0051382db3c35c05b52d
refactor(web): Move request logger to a servlet filter (#1116)
commit sha d35830f89891cbecf5f834ddbbea858b2989277c
fix(spring): Add flag to request logger (#1117)
commit sha 4c59a6c009e84002ce229301d48eb7b53a86464e
chore(java11): Compile with Java 11 (but targeting Java 8) (#1118)
commit sha 99b0bde0d1d254355e751293d1683830bc871ac8
chore(java11): Turn on the cross-compiler plugin in Dockerfile.compile (#1119) This got missed because my script tries to add it before `--no-daemon`. So go ahead and add that too, for consistency and because otherwise GRADLE_OPTS does nothing useful.
commit sha 38aacde6bbba910486c72fdb967b046228053139
chore(gha): don't run the GHA build when pushing to a fork (#1120)
commit sha 841a391cb87a924b6ad6634d4e2698f5167aa168
chore(dependencies): Autobump fiatVersion (#1121) Co-authored-by: runner <runner@fv-az78>
commit sha 85df33c19cd6bbea19fe57f7e72ddfb43223d44b
chore(formatting): fix formatting on some files (#1122)
commit sha 8f15de434dcf88a86d233d894d228e46e9d46bd2
fix(etag): removing etag filter (#1123) We noticed that `ETag` filter somehow makes it so that requests from `gate` are no longer gzipped. Since `deck` doesn't even use ETags, rather than figuring our what wrong with `ETag`s I am just removing them to get the gzip benefit (and stop wasting CPU cycles computing `ETag`s)
commit sha 2f1efc108c3213e5c73db1afcd15af148f4a3d48
chore(dependencies): Bump kork to 7.31.1 and fixup PluginBundleExtractor instantiation (#1124)
commit sha 699cdfcc5c145735b4186f0ab43847fc25b2ccae
fix(md): update constraint endpoints (#1125)
commit sha 4f13425d99229f1b5eeafbd4e99e28d1bc6afb50
Revert "fix(etag): removing etag filter (#1123)" (#1126) This reverts commit 8f15de434dcf88a86d233d894d228e46e9d46bd2.
commit sha 4039cf5d35bcb28e34913279c0fe2f94c556c40f
fix(etag): produce weak ETag (#1127) follow up from: https://github.com/spinnaker/gate/pull/1123 We noticed that `ETag` filter somehow makes it so that requests from `gate` are no longer gzipped. Removing the filter caused the issue that responses no longer contained `Content-Length` header which means that the responses were chunked. This is a pretty big difference and a breaking change for clients that might not be able to handle chunked responses. This change sets the `ETag` to be weak which doesn't circumvent gzip but also sets the `content-length` and is thus not chunked.
commit sha 146590e1633432849d54037bb84caedc28660bfe
chore(GHA PR build): turn on the cross compiler here too (#1131) Not sure why I missed this before. I suppose just because it wasn't needed. In any event, I updated my script to add this going forward.
commit sha a11c6c9e2936ecbeca095271b3f981092e03f13a
feat(serviceAccounts): filter service accounts by application (#1130) enables a more meaningful list of service accounts when selecting a run as user This feature can be disabled by setting `fiat.service-accounts.filter.enabled=false`. The required authorizations for the service account on the application can be customized, by default they are either of WRITE or EXECUTE, but can be set as `fiat.service-accounts.filter.match-authorizations=READ,WRITE,EXECUTE` In the event that no service accounts match the specific application, the user's full list of service accounts is returned as a fallback.
commit sha 0c23b921fe89c7666e17f7ece6712ddcbda2f776
chore(dependencies): Autobump korkVersion (#1115) Co-authored-by: runner <runner@fv-az51>
push time in 2 months
push eventpdk27/halyard
commit sha fd2ef272e3e73503a6599b85ead75f9357772bf5
chore(build): Remove init-publish script (#1579)
commit sha c1480610d28a0b52b23f1485261be78f8e7faa6b
Revert "chore(build): Remove init-publish script (#1579)" (#1580) This reverts commit fd2ef272e3e73503a6599b85ead75f9357772bf5.
commit sha 138f2d8af5fda5f6fd1ca6c18a3bd45c52db8044
fix(config): Ignore any existing `plugins` stanzas. (#1583) Slack is littered with people having this issue. It looks like this was added in halyard 1.23 on 8/27/2019. So anyone with a config after that will have this issue.
commit sha 5b5c7a0f99c9a3f728c8f32cd4a58695ee27e4ba
chore(mergify): release-* branches require release manager approval (#1584) The mergify config currently doesn't distinguish between merging to master and merging to a release branch. It currently never merges to release branches because mergify doesn't have permission to merge to these branches (due to branch protection rules). I don't want to give mergify that permission without updating the config file here, as then it would merge to release branches after any approval, whereas we only want to merge to release branches if a PR is approved by a release manager. This updates the mergify config to scope the existing rules to only apply to the master branch, and adds a new rule to merge to release branches upon approval by a release manager. Because the 1.17 branch (and likely the 1.18 branch in some repos) is still exclusively using Travis CI instead of github actions, also add a rule the merges if Travis CI passes to account for these branches. This rule can be deleted once all of the active branches in the repo are using Github actions. Co-authored-by: Michael Plump <[email protected]>
commit sha 1156e2cfdc37d05a0462970599f00e87a26aeea9
chore(dependencies): Autobump korkVersion (#1585) Co-authored-by: runner <runner@fv-az33>
commit sha 8ed48e13e209046f47fbafb52b0399e43d540ca6
chore(dependencies): Autobump korkVersion (#1586) Co-authored-by: runner <[email protected]>
commit sha 2129fda5f52780504eda06d1ce525e912d07b0cf
fix(plugins): fix plugins-manifest.json (#1564) * fix(plugins): changing plugin-manifest.js to .json file type * fix(plugins): remove comments from json file, handle multiple plugins
commit sha 4ed4d2635640d97fdd5746f1ac567d664238101e
feat(plugins): add plugins to all services (#1559) * feat(plugins): add plugins to all services * refactor(plugins): remove introspection * refactor(plugins): change Boolean to boolean
commit sha 7fc5147a547d2cd6ce95305d726069d638959108
chore(dependencies): Autobump korkVersion (#1587) Co-authored-by: runner <[email protected]>
commit sha 9e758091c76ceca7efdf98ae260b21b5802bd61c
chore(dependencies): Autobump korkVersion (#1588) Co-authored-by: runner <runner@fv-az51>
commit sha 4c2762333c4dbca57809b1553897f55be9eb471f
chore(gha): don't run the GHA build when pushing to a fork (#1589)
commit sha 9226003cd20a54f3080a314bfb32b2c8350fd65d
fix(plugins): Revert add plugins to all services (#1559) (#1590) This change breaks deploying any version of Spinnaker <= 1.18 using Halyard, so is being reverted. This reverts commit 4ed4d2635640d97fdd5746f1ac567d664238101e.
commit sha b908d75072bd74bb5f73c8f5ec9438a333304aa8
chore(dependencies): Autobump korkVersion (#1591) Co-authored-by: runner <runner@fv-az51>
commit sha 0639c9e972cf8826f811a7e1c292018a415fb8ca
chore(dependencies): Autobump korkVersion (#1592) Co-authored-by: runner <runner@fv-az51>
commit sha 2584f90fa74b96d5785c0da76b01e27ae9237c1a
chore(dependencies): Autobump korkVersion (#1593) Co-authored-by: runner <runner@fv-az51>
commit sha d30da56964533ee61025a1160ac4638acedb395a
chore(dependencies): Autobump korkVersion (#1595) Co-authored-by: runner <runner@fv-az51>
commit sha 813fb910d624f94e9d5b47ac8ad77a376b826886
feat(plugins): add plugins to all services (#1594) * feat(plugins): add plugins to all services * fix(regression): update version check to handle non-semver releases * fix(plugins): do not deploy to kayenta until 1.20.0
commit sha ed489c78a6d3545d04027d61d8dcfabf56d27307
fix(container): restore openssl to alpine image (#1596) removed by https://github.com/spinnaker/halyard/commit/43dfc6744ea6dbe6fd65cb349a53696d96329dae In addition to putting back something that was there previously, openssl is in the ubuntu container, so let's have it here as well. Co-authored-by: Byron David <[email protected]>
commit sha 6bdf6ffa0f5526f5955401a1085d4f645e5038ed
chore(dependencies): Autobump korkVersion (#1599) Co-authored-by: runner <runner@fv-az50>
commit sha 4a686e906fbfce8ef565c3c1aeadffa74ad6535e
fix(daemon): Don't try to kill daemon created by another user (#1600) Currently if the Halyard daemon was created by another user, we kill it and try to start one of our own (likely failing as we probably don't have permission to kill it). This is because we look up the PID in the pid file, then try to see if the process exists with 'ps' but don't pass the '-e' flag to get all processes (including those created by other users). This is particularly important given that the Halyard install process specifically asks you to specify a user with which to run Halyard.
push time in 2 months
push eventpdk27/igor
commit sha d2f7f5e2b3abe8416e5c325795598d5793b71189
chore(mergify): release-* branches require release manager approval (#677) The mergify config currently doesn't distinguish between merging to master and merging to a release branch. It currently never merges to release branches because mergify doesn't have permission to merge to these branches (due to branch protection rules). I don't want to give mergify that permission without updating the config file here, as then it would merge to release branches after any approval, whereas we only want to merge to release branches if a PR is approved by a release manager. This updates the mergify config to scope the existing rules to only apply to the master branch, and adds a new rule to merge to release branches upon approval by a release manager. Because the 1.17 branch (and likely the 1.18 branch in some repos) is still exclusively using Travis CI instead of github actions, also add a rule the merges if Travis CI passes to account for these branches. This rule can be deleted once all of the active branches in the repo are using Github actions.
commit sha 2c8d993d5bd71d4f714ecbf1ee2a951f7a9e4683
chore(dependencies): Autobump korkVersion (#678) Co-authored-by: runner <runner@fv-az33>
commit sha e62fdf7332022500419c66672c52323726f0bb45
chore(dependencies): Autobump korkVersion (#679) Co-authored-by: runner <[email protected]>
commit sha a1f3dca5f3264f2f6e575b9760c08ea82f35de54
chore(dependencies): Autobump korkVersion (#680) Co-authored-by: runner <runner@fv-az51>
commit sha 81fd89defac7dbc6e0b1b424f952e4ecc1829d3f
chore(gha): don't run the GHA build when pushing to a fork (#681)
commit sha 811f8eee3c888361a656a7f8aca9c7ebf8a26d5a
chore(dependencies): Autobump korkVersion (#682) Co-authored-by: runner <runner@fv-az51>
commit sha f9f787cb82469ac391b04e0961ecea43ce0ac155
chore(dependencies): Autobump fiatVersion (#683) Co-authored-by: runner <runner@fv-az78>
commit sha d603bf6ca98516fb02c0123969f1cb1df9e13a62
chore(dependencies): Autobump korkVersion (#684) Co-authored-by: runner <runner@fv-az51>
commit sha 956f3fc11f96bf2a4587d26aed0684200f3b31c0
chore(dependencies): Autobump korkVersion (#685) Co-authored-by: runner <runner@fv-az51>
commit sha c164b48809b42c4167242a6601252e38fe647ad1
chore(dependencies): Autobump korkVersion (#688) Co-authored-by: runner <runner@fv-az51>
commit sha 9a826466ad219b3dc354d678aa9b5445a21c53e3
chore(logs/metrics): add logging and metrics to JenkinsClient (#687) - RPC issues between igor and jenkins are hard to diagnose without proper visibility - drop InstrumentedProxy metrics in favor of the more standard OkHttpMetricsInterceptor
commit sha 02543ce3322361f2331d7d327a648c2b6aa03fc5
chore(dependencies): Autobump fiatVersion (#689) Co-authored-by: runner <runner@fv-az76>
commit sha 20ffd9ebd8aca0858d272f223d0c30c4764f67c4
chore(mergify): if an autobump fails, request a review (#691)
commit sha ae696ed407af6c241c012c2b215b0d13a9bb1a9d
chore(dependencies): Autobump spinnakerGradleVersion (#692) Co-authored-by: root <root@d0e0826bf0ed>
commit sha 1385b906a9d508c7431d0723d7d0792f0e763c5d
chore(dependencies): Autobump spinnakerGradleVersion (#693) Co-authored-by: root <root@7c2d69cf985a>
commit sha b8891ce8c4e5cb6531fb03106904c07b51a83ec1
chore(mergify): autobump reviews should go to oss-approvers (#694)
commit sha 2f1f9c6950396db1622b2b98358f24fd21802295
chore(dependencies): Autobump korkVersion (#696) Co-authored-by: root <root@630f71d41ecb>
commit sha 0139e7e8770c088b7782d19febb299eb0066df19
chore(dependencies): Autobump korkVersion (#697) Co-authored-by: root <root@9be1526fc31e>
commit sha a7233795a71987285e6e0e24dece1fda5e1233a8
chore(dependencies): Autobump korkVersion (#698) Co-authored-by: root <root@3bbaae2b3f97>
commit sha 57d70edc7c874f0b1dc9b957c65a9c7be2f2724f
chore(dependencies): Autobump korkVersion (#699) Co-authored-by: root <root@60135c639e6f>
push time in 2 months
push eventpdk27/clouddriver
commit sha 52c300dafaca0f2983eeb918aad0a433ca02acd3
chore(dependencies): Autobump korkVersion (#4483) Co-authored-by: runner <runner@fv-az51>
commit sha c369b5d9e3c43101536cbe8e5684ea8578c4e7ef
chore(dependencies): Autobump korkVersion (#4484) Co-authored-by: runner <runner@fv-az51>
commit sha 4831979f725312aaa1c84d268ceb0af46b8e3445
feat(config): Add ro and rw profiles (#4487) * refactor(core): Move some things back to halyard config In a recent PR I moved the server.port and server.address settings into the base config to reduce what's in the Halyard config. After further reflection, we don't want these to be overridable easily in kleat anyway as I don't think there's a common use case for this. (And in any case, it's easier to override this by just overriding these in the clouddriver-local.yml than to need to go through the services.* settings in spinnaker.yml.) So let's avoid bringing these settings along for the ride, and just leave them in the halconfig where they will still help halyard users. This restores this block of clouddriver.yml to what it was before the recent change. * feat(config): Add ro and rw profiles In order to make it easier to configure HA deployments, add profiles to support the following: * A read-only deployment that does not run caching agents, and can connect to a read-only backing store. * A read-write deployment that does not run caching agents, but connects to a writeable backing store so that it can serve mutating requests from other microservices. * fix(config): Remove default from redis-ro Change redis-ro to redisRo to match the casing in the rest of spinnaker.yml. (I don't want to take on the project of updating that file to kebab case right now.) Also remove the default; we're going to require that redisRo be defined in spinnaker.yml if you're running HA (even if it just points to the regular redis). Maybe later we'll deafult it, but it's safer to add a default later than to remove one later.
commit sha 4aa6378c74930851b578ece5dd618cc8e2d336c3
chore(java11): Compile with Java 11 (but targeting Java 8) (#4486) Additional differences: 1. The `Dockerfile.compile` is using Ubuntu instead of Alpine. Gradle downloads a `protoc` from Maven that is built against glibc. Alpine uses musl libc, so the downloaded `protoc` won't run. We need a glibc-based distro. For consistency, I may backport this change to the other five services I've already updated. I can't decide :/ 2. Add `--no-daemon` to the `Dockerfile.compile` for consistency and because otherwise setting `-Xmx` in `GRADLE_OPTS` doesn't do anything useful. 3. `ServerGroupManagerController.java` had to be changed a little because of some tweaks to the type inference in Java 11. I honestly don't understand why the old code wouldn't compile, but this new code is better anyway. 4. `ReconcileClassicLinkSecurityGroupsAgentSpec` had to be changed because `Instant.now()` under Java 11 returns nanosecond precision. This test converts back and forth to `Date` objects, which can't store that level of precision.
commit sha 29e7f11e7c9d9d7a4140f659400c746110a980c4
chore(dependencies): Autobump korkVersion (#4488) Co-authored-by: runner <runner@fv-az51>
commit sha 33deae17d1df225a01f2adf08d7dd32e0f51a98f
refactor(kubernetes): Clean up KubernetesManifestStrategy (#4489) We have a class KubernetesManifestStrategy to represent how to deploy a manifest, but it doesn't encapsulate itself well and pushes a lot of logic into callers. Make the following changes: * Move the logic for creating this KubernetesManifestStrategy object from annotations into the KubernetesManifestStrategy class; this allows us to move the strings representing the annotations into this class as well, increasing encapsulation. * Improve the type safety of the member variables so that callers don't need to perform redundant null-unsafe checks. In particular: * Add a DeployStrategy enum to replace (no pun intended) the replace and recreate Booleans; these are mutually exclusive as setting both to true will 'kubectl delete' then 'kubectl replace' the manifest which always fails as there's nothing to replace. * Change versioned to an enum; we do care if it's set or not because if it's unset we use the value on the deploy operation. I guess this could have just stayed a Boolean, but it seemed clearer to make this an enum with three values (TRUE, FALSE, DEFAULT) though I could be convinced otherwise, I was on the fence here. * Make maxVersionHistory an OptionalInt instead of an Integer to get some null-safety in callers * Make useSourceCapacity a boolean instead of a Boolean as we always consider null the same as false. * Make all the member variables private and final, exposing only getters of these new, more convenient return types. This simplifies a lot of the logic in callers. A few notes: * The new logic to read annotations avoids the complex logic that was in getAnnotations in KubernetesManifestAnnotater, which used an ObjectMapper instead of parseBoolean or parseInt. ObjectMapper is actually *more* strict here for booleans and would only return true if the value was exactly (case-sensitive) "true"; there is a slight change here that now we'll accept any casing of "true" (ex: "trUe", "TRUE") but I think that's sensible and probably what people would expect anyway. * A couple of the annotation strings are shared between classes in the same package so I made them package-private instead of private. Overall this ended up making KubernetesManifestStrategy larger than I might have intended at the beginning but I think this helps a lot with encapsulation, in that consumers need much less of an understanding of its internal workings.
commit sha 983e403052c37e2896086daf53f72c0b4dc83126
chore(dependencies): Autobump fiatVersion (#4491) Co-authored-by: runner <runner@fv-az76>
commit sha 0f471f319674c5887e51606ba8751fcbe0b7e946
feat(kubernetes): Apply manifests with generateName using create (#4492) * feat(kubernetes): Add support for kubectl create Some manifest need to be applied with kubectl create; one example is manifests that specify a generateName instead of a name. In this case, we can't apply or replace, as both of these operations require looking up the existing manifest which is impossible when the name changes each time. This commit adds support to KubernetesV2Credentials to create a manifest using kubectl create operation. * test(kubernetes): Add tests to CanDeploy Before lightly refactoring and adding some new functionality to the CanDeploy interface, add some tests to validate the existing behavior. * refactor(kubernetes): Use switch in CanDeploy The logic in CanDeploy is a bit too complicated; let's make it cleaner by using a switch over the enum of possible deploy strategies. * feat(kubernetes): Apply manifests with generateName using create Manifests that have a generateName instead of a name need to be created using a create operation, as other operations require looking up the existing manifest to reconcile changes, but this is not possible if we don't have the manifest's name. This change updates CanDeploy to check if the manifest has a generateName (and no name, as this would take priority), and to always use 'kubectl create' if that is the case. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 044ed8ad314f2c905b087185b021daf997a3c619
chore(spotless): reformat code (#4490) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 8c0ea6c5ccca38329d5380f27bbce890ed091ac2
fix(kubernetes): properly set isDisabled on server groups (#4494)
commit sha 2ba2b02649daadcbaafc3251dc3264abf9dbb476
fix(Authorization): Relax restrictions in the job controller (#4328) * fix restrictions in the job controller * address PR comments * move authorization decision to inside the code * replace done with finished
commit sha f90b6923f1a914ef3925babc70d667b6f5d338d3
refactor(kubernetes): Clean up runAndRecordMetrics (#4495) * test(kubernetes): Add tests to metric recording on kubectl calls The runAndRecordMetrics funcgtion in KubernetesV2Credentials is very complex and has no tests. Before simplifying it, add some tests to document and validate the current behavior. This commit also updates the constructor of KubernetesManifest to set the metadata to an empty map. In real code, we always create a KubernetesManifest by deserializing, so the metadata is set to a map of whatever was on the incoming manifest. But it's often useful in tests to be able to create a manifest and set a few fields on it; before this change, this wasn't possible because metadata was always null. There were functions to set various keys on the metadata, but these would all fail due to the null metadata. * refactor(kubernetes): Clean up runAndRecordMetrics The control flow in runAndRecordMetric is really confusing, in particular in that we re-throw and return from a finally block. Clean this up so that it uses better style. * fix(kubernetes): Fix some issues with kubectl metrics Cleaning up the code in the last commit surfaced a few issues that this commit cleans up. (1) We should add a failure tag if a KubectlException is thrown (2) Metric tags are intended to be short descriptors, so we shouldn't add the text of an error message. Remove that message from the cause tag and just include the class of the exception. (3) There's no reason to separately tag 'kind' and 'kinds' depending if there are more than 1 or not; just always add 'kinds' with the full list of kinds. Also sort it for consistency in the metric tags. There's probably a bit we can do to futher clean up the exception handling (deciding when to wrap the exception, etc.) and deduplicate the two catch blocks but leaving that s is for now. * refactor(kubernetes): Don't needlessly qualify KubectlException Co-Authored-By: Maggie Neterval <[email protected]> * refactor(kubernetes): Fix comment and assert on class One of my comments was nonsensical; fix it, and also assert on the exception class in that test. Co-authored-by: Maggie Neterval <[email protected]>
commit sha 8916ca2fd2bd4d201b5364d509f2fbee8630b5fd
chore(mergify): if an autobump fails, request a review (#4497)
commit sha b9af062dee3a3751582bc1993e955a9d869789db
chore(dependencies): Autobump spinnakerGradleVersion (#4499) Co-authored-by: root <root@7c2d69cf985a>
commit sha e07e3a59d8dc62355e144b458f9942c3e1943a19
chore(mergify): autobump reviews should go to oss-approvers (#4500)
commit sha e098c9f2100731aa0096f51d05e91cb113edd893
refactor(kubernetes): Improve error abstraction in kubectl (#4498) * refactor(kubernetes): Improve error abstraction in kubectl When parsing the output of kubectl as JSON, a few different kinds of errors can happen: (1) An IOException if we encounter an error reading from the output stream (2) A JSONSyntaxException if the call to gson.fromJson fails (3) An IllegalStateException if the JSON format is unexpected (ex: if we get a list back instead of an object and call .beginObject() on it). Currently we're propagating all these exceptions as is. Let's continue letting the IOException propagate, as this can be handled by the job executor in the same way it handles any other error reading output. Let's wrap the JSONSyntaxException and IllegalStateException in a KubectlException to provide relevant context. This is how we handle a JSONSyntaxException other places in this file when we parse non-streaming responses. (Potentially at some point this could be a specific subclass of KubectlException but for now just being consistent with what happens elsewhere in the file.) This means that now the error surface out of the KubectlJobExecutor for a JSON parse exception will be the same regardless of whether this happened in the streaming or non-streaming parser. * refactor(jobs): Throw exceptions appropriate to the abstraction The JobExecutor class throws RuntimeException in a few places; let's replace this with throwing a JobExecutionException with information about the job that failed. Let's also take the opportunity to document the contract about when the JobExecutor throws an exception vs. when it returns a JobResult with a status of FAILED. * refactor(kubernetes): Remove NoResourceTypeException This exception was added in PR2344, with the goal of in some cases catching exceptions where a type was not recognized by the API (for example if a built-in kind is not present on an old Kubernetes cluster). It appears, however, that the change in that PR never actually worked, as all relevant calls to kubectl go through runAndRecordMetrics, which wraps any exception that is not a KubectlException in a KubectlException. So the catch blocks added in that PR will never be triggered as we'll always see a KubectlException at that point. Probably what should have been done is to make NoResourceTypeException extend KubectlException (or potentially to have it special-cased in runAndRecordMetrics). In the intervening time since that PR, we've added a check the first time we try to read a kind to make sure that it's readable (mainly for permissions issues, but it would also address this case), so I'm not sure there's much value in actually fixing this. (In any case, the behavior hasn't worked in the two years since it was added and we have not heard reports of people running into unrecognized kinds, except briefly when the readable check noted earlier was broken.) This commit then does the following: (1) Removes all the catch blocks for NoResourceTypeException that are unreachable (2) Removes NoResourceTypeException itself; given that calling code is not distinguishing this particular exception, there's not much benefit to throwing it vs. a generic KubectlException (particularly given that we're relying on string parsing to do so, and that we're only throwing it in some of the methods, not others). (3) It makes the constructor of KubectlException package-private instead of protected. * refactor(kubernetes): Fix a few places where we catch KubectlException In the metrics caching agent, we catch a KubectlException and dig into the message to see if it's because metrics aren't available, then return an empty collection in that case. Let's just have topPod directly handle that so we don't leak the implementation detail of using kubectl (and the specific message); this makes sense for the other two places we call this function as well. In KubernetesV2CachingAgent, we catch, log, then re-throw an exception. This is a vestige of when we used to just return an empty list after logging, but that was change to propagate the exception, so there's not really much additional benefit from also logging. * refactor(kubernetes): Don't wrap kubectl exceptions Let's no longer wrap all exceptions that pass through runAndRecordMetrics in a KubectlException. While it does have the benefit of providing some context at that level of abstraction, it is confusing that we sometimes directly throw that in the KubectlJobExecutor and sometimes create one by wrapping it here. I think at some point we may want to create a new KubernetesAPIException here that wraps anything below (either a KubectlException of a client library exception), but for now let's just propagate whatever was thrown below. The one thing to be careful about is that this change doesn't break places where we're catching a KubectlException. I've looked through and in all cases the code is catching to deal with some expected (but non-successful) kubectl call (ex: a missing resource, logs not there, etc.). All of these remain KubectlExceptions (and in some cases we should potentially even make more specific ones and catch that specific one). What we'll no longer be catching is things like a JobExecutionException where we fail to run the job, etc, which I think actually is better in this case. * test(kubernetes): Fix tests from last commit I broke the tests I added yesterday, which I guess means they work. Update them now that we aren't wrapping all exceptions. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 9e3a73b1312e756f355fadd933b495188b7fcd33
refactor(kubernetes): Don't look up default namespace (#4501) * refactor(kubernetes): Convert DeployManifestOperation test to java The next refactor will require some changes to this test that are more difficult than necessary because the test is in groovy and uses more mocking than necessary. Convert the test to Java, and clean up the mocking so it's easier to follow. * refactor(kubernetes): Operations should return the created manifest When creating a manifest, the result is returned by the API, but is currently ignored in most cases by clouddriver. It is useful to use the returned manifest because there are times where it has updated information. One particular example is when we don't specify a namespace on our manifest; in that case, the manifest will be applied to the default namespace that is configured. Currently we solve this problem by separately looking up the default namespace before applying the manifest, but it would be easier to just apply it and then check what kubernetes default it to. This change will allow us to do that in a future commit. * refactor(kubernetes): Don't look up default namespace There are two places where we look up the default namespace unnecessarily. The first is on every call to kubectl so that we can pass in a "--namespace" flag; if we just leave that flag out, we'll get the default namespace already. The second is when deploying a manifest without a namespace; in that case, we look up the default namespace so that we can apply it to the manifest before deploying. Similarly, if we just deploy the manifest as is, it will get the default namespace (which we'll see on the result from the API). I tested that this works both for the serviceAccount case and for the regular kubeconfig case (testing the serviceAccount by ssh-ing to a pod set up this way to check that kubectl already detected the default). This deletes a lot of unecessary code. When we move to use the client library, we may need to solve this again as I'm not sure that it will always detect a default namespace, but this code was complicated enough and coupled pretty tightly to the kubectl implementation that I think it will be better to start from scratch at that point. (This was also broken, as the command to get the default namespace from the kubeconfig appears to fail every time so you always get 'default' regardless of what is set.) * fix(kubernetes): Fix Strings import I accidentally imported the wrong Strings package; let's use Guava.
commit sha 5913508b981c3eeaf24608b9e943776981fed8c6
fix(azure): Enforce azure provider account permissions (#4482) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha fc235c33431dda656b8ee78fad0d577b9148373e
refactor(kubernetes): Clean up KubernetesArtifactConverter (#4502) * refactor(kubernetes): Make KubernetesCoordinates immutable Luckily there are no existing uses that mutate it, so we can greatly reduce its API by making it a Value class. * refactor(kubernetes): Clean up KubernetesArtifactConverter There are a bunch of functions there that are no longer used, so we can significantly clean up that class (and implementations). Also move getAccount to the only place where it is used. * refactor(kubernetes): Make implementations of converter singletons It's confusing how we store an instance of each artifact converter on each KubernetesResourceProperties instance. The properties should only care whether the resource is versioned; the deployer logic can figure out what artifact converter to use based on whether the resource is versioned (and whether it has been overriden by an annotation). The goal here is less to reduce the number of created objects (which is a side benefit, though probably minimal), but more to keep KubernetesResourceProperties more focused, with the goal of one day maybe merging it with KubernetesKindProperties so we don't have so many of these classes describing kinds floating around.
commit sha 5e288156c35af987e460f244f2c61ffe226a78dd
feat(kubernetes): Replace deploy strategy acts as upsert (#4503) Currently if using the strategy.spinnaker.io/replace annotation, the manifest will be applied with kubectl replace. This will fail the first time the pipeline is run as the object won't exist and kubectl replace fails if there is no existing resource to replace. (There is an open issue in kubernetes to make replace act as an upsert, but as of now it just as workarounds to try the replace and then create if it fails.) As this is a common issue, Spinnaker should be able to make this easier. This commit updates the behavior on doing a replace to fall back to creating the resource if the replace call fails due to the resource not existing. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
push time in 2 months
push eventpdk27/rosco
commit sha 6fae4618424c6a0d58a485d41e3562deb7702d8f
chore(mergify): release-* branches require release manager approval (#567) The mergify config currently doesn't distinguish between merging to master and merging to a release branch. It currently never merges to release branches because mergify doesn't have permission to merge to these branches (due to branch protection rules). I don't want to give mergify that permission without updating the config file here, as then it would merge to release branches after any approval, whereas we only want to merge to release branches if a PR is approved by a release manager. This updates the mergify config to scope the existing rules to only apply to the master branch, and adds a new rule to merge to release branches upon approval by a release manager. Because the 1.17 branch (and likely the 1.18 branch in some repos) is still exclusively using Travis CI instead of github actions, also add a rule the merges if Travis CI passes to account for these branches. This rule can be deleted once all of the active branches in the repo are using Github actions.
commit sha 9ea433f4d724c65cdee817821d28753f12600a50
chore(dependencies): Autobump korkVersion (#568) Co-authored-by: runner <runner@fv-az33>
commit sha 145c1baca9f5fe9e92be7e546b22e28db21e6b16
chore(dependencies): Autobump korkVersion (#569) Co-authored-by: runner <[email protected]>
commit sha e13067b8b40b58727e743dd7e05460cf5ca78804
chore(dependencies): Autobump korkVersion (#570) Co-authored-by: runner <[email protected]>
commit sha 85285a71d4f57886cb9d9a98231ef84facaeee63
chore(dependencies): Autobump korkVersion (#572) Co-authored-by: runner <runner@fv-az51>
commit sha d650b327b1fff84acf86cc803a74a1048932c956
chore(java11): Compile with Java 11 (but targeting Java 8) (#571)
commit sha e1279ebad6139bed62aeb34363e1296f843edb4f
chore(gha): don't run the GHA build when pushing to a fork (#573)
commit sha 3ec9ad286c156731978574b1e15f8463bbc8d666
chore(dependencies): Autobump korkVersion (#574) Co-authored-by: runner <runner@fv-az51>
commit sha d137cee1fbe878fc38122839be52d0c17c8de362
chore(dependencies): Autobump korkVersion (#575) Co-authored-by: runner <runner@fv-az51>
commit sha e3d331dca08fab0f6d688060e90e299cd9b9452b
chore(dependencies): Autobump korkVersion (#576) Co-authored-by: runner <runner@fv-az51>
commit sha dc8d0d4ef1eb035903ea582b6e789e5c9af3be96
chore(GHA PR build): turn on the cross compiler here too (#578) Not sure why I missed this before. I suppose just because it wasn't needed. In any event, I updated my script to add this going forward.
commit sha c65f1bec29d50050105b4356a0335825413314c5
chore(dependencies): Autobump korkVersion (#579) Co-authored-by: runner <runner@fv-az51>
commit sha 2c4930a5d0f07fe31f47f5550967e2ca58b5fd7c
chore(dependencies): Autobump korkVersion (#580) Co-authored-by: runner <runner@fv-az50>
commit sha 034bb795600e6304716872e40c38fdcb77f2d087
chore(mergify): if an autobump fails, request a review (#581)
commit sha 37df054df7b10be4e765008d70a307837f0002f9
chore(dependencies): Autobump spinnakerGradleVersion (#582) Co-authored-by: root <root@7c2d69cf985a>
commit sha 529e0ed8d884082122880d4f3189bdad8a09ed91
chore(mergify): autobump reviews should go to oss-approvers (#583)
commit sha b6bbfb4e8040456131773b288c919ed8003213d0
chore(dependencies): Autobump korkVersion (#584) Co-authored-by: root <root@630f71d41ecb>
commit sha f5033fc7d9d57e4c76e0d809cb02fd6a888e2f17
chore(dependencies): Autobump korkVersion (#585) Co-authored-by: root <root@9be1526fc31e>
commit sha 54177cedaad4a0cb44424c531e9d639d590d09bb
chore(dependencies): Autobump korkVersion (#586) Co-authored-by: root <root@3bbaae2b3f97>
commit sha 544f73a7a8fadd14864100d491d92e10a3690f05
chore(dependencies): Autobump korkVersion (#587) Co-authored-by: root <root@60135c639e6f>
push time in 2 months
push eventpdk27/orca
commit sha 7aca9bc898a56f249a2260aa3be8a73471f3c74d
fix(kubernetes): Fix artifact binding for run job (#3540) * fix(kubernetes): Fix artifact binding for run job The Kubernetes V2 Run Job stage doesn't bind artifacts if the manifest source is text. This is because we only populate artifacts if the source is an artifact; luckily the logic to populate artifacts is independent of the aritfact source, so we can run it in either case by just removing the if condition. * fix(kubernetes): Fix tests and V1 run job The prior commit broke the V1 run job stage, as it uses the same KubernetesJobRunner but doesn't have any of the relevant fields that ManifestEvaluator tries to evaluate. The root cause of this is that the context doesn't have a Source, so inherits the default of Source.Text; this causes us to try to look up the manifest text, which is null. Ideally we'd have the V1 run job stage set a different value (maybe Source.None because we don't even really have a manifest here) or change the default. But given the impending deprecation of the V1 provider (and that it's a bit risky to change the default) let's just work around the issue by short-circuiting manifest evaluation if the source is Text but there is no text. Also, the prior commit broke some tests as we're now running manifestEvaluator.evaluate more than before; fix these tests.
commit sha 19484521865ab2bb4424f9bcf5b9245a356a1b68
feature(Pipeline Expressions): add pipelineIdOrNull SpEl helper function (#3534) * fix(Pipeline Expressions): return null when pipelineId does not find pipeline * Revert "fix(Pipeline Expressions): return null when pipelineId does not find pipeline" This reverts commit 6e5dd8c138425dcf5d73f54b2987ffe84411e404. * feature(Pipeline Expressions): add pipelineIdOrNull function which is the same as pipelineId but returns Null when the pipeline is not found * Apply suggestions from code review Co-Authored-By: Mark Vulfson <[email protected]> Co-authored-by: Mark Vulfson <[email protected]>
commit sha 526a8fb5aa107e505cb8fcb3eebd1a2e73578b11
Revert "fix(peering): Trigger pending executions across orca peers (#3519)" (#3544) This reverts commit 1b63e1cae356f4febe2b1b69a1eeecadc28fc042.
commit sha a0209a1cf4333ffd423f5ec2978913d6639056a4
chore(mergify): release-* branches require release manager approval (#3545) The mergify config currently doesn't distinguish between merging to master and merging to a release branch. It currently never merges to release branches because mergify doesn't have permission to merge to these branches (due to branch protection rules). I don't want to give mergify that permission without updating the config file here, as then it would merge to release branches after any approval, whereas we only want to merge to release branches if a PR is approved by a release manager. This updates the mergify config to scope the existing rules to only apply to the master branch, and adds a new rule to merge to release branches upon approval by a release manager. Because the 1.17 branch (and likely the 1.18 branch in some repos) is still exclusively using Travis CI instead of github actions, also add a rule the merges if Travis CI passes to account for these branches. This rule can be deleted once all of the active branches in the repo are using Github actions.
commit sha 8365e6477ce5ddbfa22822f80933c9f82c90c2e9
chore(build): Add GitHub Action cache step (#3546)
commit sha c50372f001ae3e3a0b7eddb373c1877ee8640063
feat(tencentcloud): Add tecentcloud stages and tasks (#3486) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha dbae052c9f31b8d3a6132b8cf4bdb7aa32490190
docs(api): Initial samples and some more api docs (#3521)
commit sha b73b1aa645f7771de2638e1a4bf8f57d955969d5
feat(api-test): Initial scaffolding of orca-api-test harnesses (#3541) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 133a9bd9e29633d0417a14c9e8b31efd616a2ede
fix(evaluate variables): handle null/empty variable keys (#3547) it's possible to consruct a pipeline with bad eval vars stage context as follows (both in UI and by hand): ``` "type": "evaluateVariables", "variables": [ { "key": "a", "value": 1 }, { "key": null, "value": null } ] ``` This causes an exception during exception handler of `RunTaskHandler`. This fix strips out invalid variable keys Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha b2d5404d2c0e94dfb6750cbfb4b11ab2b23cfb36
refactor(test): Move PipelineBuilder to orca-api-test (#3549) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
commit sha 71039a38e6f041655a61a3f22482f506250c1e40
chore(dependencies): Autobump korkVersion (#3550) Co-authored-by: runner <runner@fv-az33>
commit sha abc770510139715b311b6240cf37459955aa566b
chore(dependencies): Autobump korkVersion (#3551) Co-authored-by: runner <[email protected]>
commit sha 134d40a8df239429a8d6c38a15428031375f75d0
feat(peering): Pending Executions Agent (#3548) Introduces a pending execution agent which kicks off executions in the pending state. Normally, such executions will be started by the act of completing a pipeline. However, when there is a waiting execution in a different orca DB from where the current pipeline completed it doesn't work. With this change there is an agent that runs every ~15s (configurable) to see if there are any pending executions which need to be kicked off and if so, kicks them off. This is a continuation of failed attempt at implementing such functionality here: https://github.com/spinnaker/orca/pull/3544
commit sha 7132bd7726c4eacff58ccc4502d00a035a082c9e
chore(dependencies): Autobump korkVersion (#3553) Co-authored-by: runner <[email protected]>
commit sha eaec89c90edd5f64edeebf8cdfe54111017f4b33
chore(dependencies): Autobump korkVersion (#3554) Co-authored-by: runner <runner@fv-az51>
commit sha dbae00e128dc920c1be06f2ff5202f64c8cdc7c4
chore(gha): don't run the GHA build when pushing to a fork (#3555)
commit sha 2dfb4fa1dddcba3ba19d9c5851b565a601f44a2f
chore(dependencies): Autobump korkVersion (#3556) Co-authored-by: runner <runner@fv-az51>
commit sha 6cd5a6ec517bc898348cbb766456d1c9d49bf653
chore(dependencies): Autobump fiatVersion (#3557) Co-authored-by: runner <runner@fv-az78>
commit sha acc85ec0c355e91ba82d210447bb1aefa3fe17fd
perf(peering): improve peering perf (#3552) A big chunk of time was spent storing all stages of running executions. This is not necessary because most of those stages don't change (only about 8% change with ~30s agent interval) Only store stages that have a different `updated_at` timestamp (or those that don't exist). This improves peering performance by about 25%
commit sha 42943a0aa592aeb79446c8bf6c81ff44856af394
chore(dependencies): roll back the most recent kork bump (#3558) This causes a weird NPE in Gradle that manifests like this: > $ ./gradlew :orca-api-test:dependencies --configuration runtimeClasspath > Execution failed for task ':orca-api-test:dependencies'. > > Could not resolve all dependencies for configuration ':orca-api-test:runtimeClasspath'. > > Problems reading data from Binary store in /tmp/gradle731362267057772455.bin (exist: true) @robfletcher is working on a fix, but I'll rollback in the meantime.
push time in 2 months
push eventpdk27/kayenta
commit sha 99c62b4009833e85b08328da8c7cc25cfc5f5afe
chore(mergify): release-* branches require release manager approval (#692) The mergify config currently doesn't distinguish between merging to master and merging to a release branch. It currently never merges to release branches because mergify doesn't have permission to merge to these branches (due to branch protection rules). I don't want to give mergify that permission without updating the config file here, as then it would merge to release branches after any approval, whereas we only want to merge to release branches if a PR is approved by a release manager. This updates the mergify config to scope the existing rules to only apply to the master branch, and adds a new rule to merge to release branches upon approval by a release manager. Because the 1.17 branch (and likely the 1.18 branch in some repos) is still exclusively using Travis CI instead of github actions, also add a rule the merges if Travis CI passes to account for these branches. This rule can be deleted once all of the active branches in the repo are using Github actions.
commit sha bb1ce2e86d2fae2b2b41e7d5e1dbdfa6a5ba49d5
chore(java11): Compile with Java 11 (but targeting Java 8) (#693)
commit sha 52f8acca18433ddafeb0504ba94b035f4b057482
chore(gha): don't run the GHA build when pushing to a fork (#694)
commit sha 35cab0ffb7d4b5cc9ec0dfeef341a56bc436a238
chore(GHA PR build): turn on the cross compiler here too (#696) Not sure why I missed this before. I suppose just because it wasn't needed. In any event, I updated my script to add this going forward.
commit sha f5503f6ecd85dfb36c428399d8ebb1044f04ee10
fix(plugins): add an option for strict plugin loading (#697) * fix(plugins): add an option for strict plugin loading * Trigger re-build * chore(dependencies): updating kayenta to work with fix
commit sha 02df761d5b465556f048a6c2de851987196b26b6
refactor(prometheus): extract metricDescriptorsCache to PrometheusMetricDescriptorsCache (#690) fix(web): remove erroneous second call to getMetadata in MetricsServiceMetadataController
commit sha 150abb1a3250fdb41bc6b41d3dc250c9443206bf
chore(mergify): if an autobump fails, request a review (#701)
commit sha 39f2734d723fcf321f525fe0ad782a946377d7d1
chore(dependencies): Autobump spinnakerGradleVersion (#702) Co-authored-by: root <root@7c2d69cf985a>
commit sha a62cfc966cb1ec14ffd97fda2f0088ec6131761b
chore(mergify): autobump reviews should go to oss-approvers (#703)
commit sha c2dd4c53873d96cd4ed451a2bfe87cd2dcce1ec6
chore(dependencies): Autobump spinnakerGradleVersion (#704) Co-authored-by: root <root@6891b1263a18>
commit sha 46171f4ee5f5fc12789b0eb083f2d0d267c4a49c
chore(dependencies): Autobump spinnakerGradleVersion (#705) Co-authored-by: root <root@458842d3571f>
commit sha 87c96a8e67c82a61e5eda511b7a2150e89e28b37
chore(dependencies): Autobump spinnakerGradleVersion (#706) Co-authored-by: root <root@e7992a1c49ce>
commit sha 72978453283c1605c37bf46b17a67e43dc8ac8ad
chore(build): update to newer spinnaker project plugin (#708) updates to gradle 6.3 updates to kotlin 1.3.70 updates github actions workflows for new release flags
commit sha 33b85910d6814b3dd68992fe98d3d4b25d90d26f
chore(dependencies): Autobump spinnakerGradleVersion (#709) Co-authored-by: root <root@27f6a48b6497>
commit sha 9f89cd2b8a869c6812a543e3c0eb05816ff67b03
chore(dependencies): Autobump spinnakerGradleVersion (#710) Co-authored-by: root <root@4d3736916f82>
commit sha ace0f83384f1298b3c97f15525f41df4f257165d
chore(dependencies): Autobump spinnakerGradleVersion (#711) Co-authored-by: root <root@7cfcb65d82e3>
commit sha f6db7b607723c7f4a714537892f5c390c2db44ca
chore(dependencies): Autobump spinnakerGradleVersion (#712) Co-authored-by: root <root@0e23aba3091b>
commit sha 18681f5ffe92bce697e02416eb6ac71961fe3017
chore(dependencies): Autobump spinnakerGradleVersion (#713) Co-authored-by: root <root@7c412b00885f>
commit sha b42df55143e9a05474a65ecea9839077ae585316
feat(plugins): plugin support for kayenta (#714) * feat(plugins): plugin support for kayenta * refactor(plugins): put plugins in web module
commit sha 88279beddb2c2b010fc11bcebbd9812327ddcf9f
fix(standalone-canary-analysis): custom parent pipeline execution id is not used (#699) Co-authored-by: Justin Field <[email protected]>
push time in 2 months
startedaws-samples/amazon-eks-apache-spark-etl-sample
started time in 2 months
startedgoulinkh/podcast-cli
started time in 2 months
startedawslabs/cdk8s
started time in 2 months
startednchammas/flintrock
started time in 2 months
fork pdk27/spark-on-k8s-operator
Kubernetes operator for managing the lifecycle of Apache Spark applications on Kubernetes.
fork in 2 months
issue closedaws/amazon-ec2-metadata-mock
Problems implementing the tools without helm
Environment
Kubernetes:
cli: Major:"1", Minor:"18", GitVersion:"v1.18.3"
server: Major:"1", Minor:"16+"
Tool:
amazon-ec2-metadata-mock:v0.9.4
Steps to reproduce it
- Download yaml file: https://github.com/aws/amazon-ec2-metadata-mock/releases/download/v0.9.4/all-resources.yaml
- Change configuration for
DaemonSetas follows:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: amazon-ec2-metadata-mock
# namespace: kube-system
labels:
app.kubernetes.io/name: amazon-ec2-metadata-mock
app.kubernetes.io/instance: amazon-ec2-metadata-mock
app.kubernetes.io/version: "v0.9.4"
spec:
updateStrategy:
type: RollingUpdate
selector:
matchLabels:
app.kubernetes.io/name: amazon-ec2-metadata-mock
app.kubernetes.io/instance: amazon-ec2-metadata-mock
template:
metadata:
labels:
app.kubernetes.io/name: amazon-ec2-metadata-mock
app.kubernetes.io/instance: amazon-ec2-metadata-mock
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: "beta.kubernetes.io/os"
operator: In
values:
- linux
- key: "beta.kubernetes.io/arch"
operator: In
values:
- amd64
- arm
- arm64
serviceAccountName: amazon-ec2-metadata-mock-service-account
hostNetwork: false # turn off host network to prevent undesired exposure of AEMM web server
containers:
- name: amazon-ec2-metadata-mock
image: amazon/amazon-ec2-metadata-mock:v0.9.4
imagePullPolicy: IfNotPresent
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
allowPrivilegeEscalation: false
args:
- -c /var/mocks/aemm-config.json
volumeMounts:
- name: mocks
mountPath: /var/mocks
volumes:
- name: mocks
configMap:
name: aemm-config
- Apply all resources using
kubectl apply -f ...
Observed result
2020/06/18 20:50:04 Error while attempting to apply overrides from /var/mocks/aemm-config.json: open /var/mocks/aemm-config.json: no such file or directory
closed time in 2 months
diegosanchezissue commentaws/amazon-ec2-metadata-mock
Problems implementing the tools without helm
Closing as it seems like the issue has been resolved. Feel free to reopen if needed.
comment created time in 2 months
pull request commentaws/eks-charts
aws-node-termination-handler: fix nodeSelector arg passing
LGTM 👍
comment created time in 2 months
Pull request review commentaws/amazon-ec2-metadata-mock
+#!/bin/bash+set -euo pipefail++SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"+BUILD_DIR="${SCRIPTPATH}/../build"+BUILD_ID=$(uuidgen | cut -d'-' -f1 | tr '[:upper:]' '[:lower:]')++TAP_REPO="aws/homebrew-tap"+TAP_NAME=$(echo ${TAP_REPO} | cut -d'/' -f2)++SYNC_DIR="${BUILD_DIR}/homebrew-sync"+FORK_DIR="${SYNC_DIR}/${TAP_NAME}"+DOWNLOAD_DIR="${BUILD_DIR}/downloads"+BREW_CONFIG_DIR="${BUILD_DIR}/brew-config"++REPO=$(make -s -f "${SCRIPTPATH}/../Makefile" repo-full-name)+BINARY_BASE=""+PLATFORMS=("darwin/amd64" "linux/amd64")+DRY_RUN=0++GH_CLI_VERSION="0.10.1"+GH_CLI_CONFIG_PATH="${HOME}/.config/gh/config.yml"+KERNEL=$(uname -s | tr '[:upper:]' '[:lower:]')+OS="${KERNEL}"+if [[ "${KERNEL}" == "darwin" ]]; then + OS="macOS"+fi++VERSION_REGEX="^v[0-9]+\.[0-9]+\.[0-9]+\$"+VERSION=$(make -s -f "${SCRIPTPATH}/../Makefile" version)++USAGE=$(cat << EOM+ Usage: sync-to-aws-homebrew-tap -r <repo> -b <binary-basename> -p <platform_pairs>+ Syncs tar.gz\'d binaries to the aws/homebrew-tap++ Example: sync-to-aws-homebrew-tap -r "aws/amazon-ec2-instance-selector"+ Required:+ -b Binary basename (i.e. -b "ec2-instance-selector")++ Optional:+ -r Github repo to sync to in the form of "org/name" (i.e. -r "aws/amazon-ec2-instance-selector") [DEFAULT: output of \`make repo-full-name\`]+ -v VERSION: The application version of the docker image [DEFAULT: output of \`make version\`]+ -p Platform pair list (os/architecture) [DEFAULT: linux/amd64]+ -d Dry-Run will do all steps except pushing to git and opening the sync PR+EOM+)++# Process our input arguments+while getopts "p:b:r:v:d" opt; do+ case ${opt} in+ r ) # Github repo+ REPO="$OPTARG"+ ;;+ b ) # binary basename+ BINARY_BASE="$OPTARG"+ ;;+ p ) # Supported Platforms+ IFS=',' read -ra PLATFORMS <<< "$OPTARG"+ ;;+ v ) # App Version+ VERSION="$OPTARG"+ ;;+ d ) # Dry Run+ DRY_RUN=1+ ;;+ \? )+ echo "$USAGE" 1>&2+ exit+ ;;+ esac+done++if [[ -z "${BINARY_BASE}" ]]; then + echo "Binary Basename (-b) must be specified"+ exit 3+fi++if [[ ! "${VERSION}" =~ $VERSION_REGEX ]]; then+ echo "🙈 Not on a current release, so not syncing with tap $TAP_REPO"+ exit 3+fi++if [[ -z "${REPO}" ]]; then + echo "Repo (-r) must be specified if no \"make repo-full-name\" target exists"+fi++if [[ -z $(command -v gh) ]] || [[ ! $(gh --version) =~ $GH_CLI_VERSION ]]; then+ mkdir -p ${BUILD_DIR}/gh+ curl -Lo ${BUILD_DIR}/gh/gh.tar.gz "https://github.com/cli/cli/releases/download/v${GH_CLI_VERSION}/gh_${GH_CLI_VERSION}_${OS}_amd64.tar.gz"+ tar -C ${BUILD_DIR}/gh -xvf "${BUILD_DIR}/gh/gh.tar.gz"+ export PATH="${BUILD_DIR}/gh/gh_${GH_CLI_VERSION}_${OS}_amd64/bin:$PATH"+ if [[ ! $(gh --version) =~ $GH_CLI_VERSION ]]; then+ echo "❌ Failed install of github cli"+ exit 4+ fi+fi++function restore_gh_config() {+ mv -f "${GH_CLI_CONFIG_PATH}.bkup" "${GH_CLI_CONFIG_PATH}" || :+}++if [[ -n $(env | grep GITHUB_TOKEN) ]] && [[ -n "${GITHUB_TOKEN}" ]]; then+ trap restore_gh_config EXIT INT TERM ERR+ mkdir -p "${HOME}/.config/gh"+ cp -f "${GH_CLI_CONFIG_PATH}" "${GH_CLI_CONFIG_PATH}.bkup" || :+ cat << EOF > "${GH_CLI_CONFIG_PATH}"+hosts:+ github.com:+ oauth_token: ${GITHUB_TOKEN}+ user: ${GITHUB_USERNAME}+EOF+fi++VERSION_NUM=$(echo "${VERSION}" | cut -c 2- | tr -d '\n')++function fail() {+ echo "❌ Homebrew sync failed"+ exit 5+}++trap fail ERR TERM INT++rm -rf "${DOWNLOAD_DIR}" "${SYNC_DIR}" "${BREW_CONFIG_DIR}"+mkdir -p "${DOWNLOAD_DIR}" "${SYNC_DIR}" "${BREW_CONFIG_DIR}"++BASE_ASSET_URL="https://github.com/${REPO}/releases/download/${VERSION}/${BINARY_BASE}"+MAC_HASH=""+LINUX_HASH=""+LINUX_ARM64_HASH=""++function hash_file() {+ local file="${1}"+ echo "$(openssl dgst -sha256 "${file}" | cut -d' ' -f2 | tr -d '\n')"+}++for os_arch in "${PLATFORMS[@]}"; do+ os=$(echo "${os_arch}" | cut -d'/' -f1)+ arch=$(echo "${os_arch}" | cut -d'/' -f2)++ ## Windows is not supported with homebrew+ if [[ "${os}" == "windows" ]]; then + continue+ fi++ asset_url="${BASE_ASSET_URL}-${os}-${arch}.tar.gz"+ asset_file="${BINARY_BASE}-${os}-${arch}.tar.gz"+ asset_file_path="${DOWNLOAD_DIR}/${asset_file}"++ curl -H 'Cache-Control: no-cache' -Lo "${asset_file_path}" "${asset_url}?$(date +%s)"++ asset_file_size=$(du -k "${asset_file_path}" | cut -f1)+ if [[ "${asset_file_size}" -lt 100 ]]; then+ ## If we cannot download and dry-run is set, build it locally+ if [[ "${DRY_RUN}" -eq 1 ]]; then + ${SCRIPTPATH}/build-binaries -d -v "${VERSION}" -p "${os_arch}"+ cp "${BUILD_DIR}/bin/${asset_file}" ${asset_file_path}+ else + echo "❗️${asset_file_path} is empty, skipping"+ continue+ fi+ fi++ if [[ "${os}" == "darwin" ]]; then+ MAC_HASH=$(hash_file "${asset_file_path}")+ elif [[ "${os}" == "linux" && "${arch}" == "amd64" ]]; then+ LINUX_HASH=$(hash_file "${asset_file_path}")+ elif [[ "${os}" == "linux" && "${arch}" == "arm64" ]]; then+ LINUX_ARM64_HASH=$(hash_file "${asset_file_path}")+ fi++done++cat << EOM > "${BREW_CONFIG_DIR}/${BINARY_BASE}.json"+{+ "name": "${BINARY_BASE}",+ "version": "${VERSION_NUM}",+ "bin": "${BINARY_BASE}",+ "bottle": {+ "root_url": "${BASE_ASSET_URL}",+ "sha256": {+ "sierra": "${MAC_HASH}",+ "linux": "${LINUX_HASH}",+ "linux_arm": "${LINUX_ARM64_HASH}"+ }+ }+}+EOM++if [[ "${DRY_RUN}" -eq 0 ]]; then + if [[ -z "${MAC_HASH}" ]] && [[ -z "${LINUX_HASH}" ]] && [[ -z "${LINUX_ARM64_HASH}" ]]; then + echo "❌ No hashes were calculated and dry-run is NOT engaged. Bailing out so we don't open a bad PR to the tap."+ exit 4+ fi+ cd "${SYNC_DIR}"+ gh repo fork $TAP_REPO --clone --remote+ cd "${FORK_DIR}"+ git remote set-url origin https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${GITHUB_USERNAME}/${TAP_NAME}.git+ DEFAULT_BRANCH=$(git rev-parse --abbrev-ref HEAD | tr -d '\n')++ cp "${BREW_CONFIG_DIR}/${BINARY_BASE}.json" "${FORK_DIR}/bottle-configs/${BINARY_BASE}.json"++ FORK_RELEASE_BRANCH="${BINARY_BASE}-${VERSION}-${BUILD_ID}"++ git config user.name "ec2-bot 🤖"
may be the ec2-bot git setup part can be extracted out to be reused in other scripts?
the GITHUB_TOKEN needs to be the one for ec2-bot, right? If not, what would the failure message say? Just curious to know if it makes the issue clear.
comment created time in 2 months