Skip to content

Commit

Permalink
chore(update): gen-manifests update (#52)
Browse files Browse the repository at this point in the history
* chore(dependencies): Autobump korkVersion (spinnaker#1566)

Co-authored-by: Travis CI User <travis@example.org>

* chore(containers): Upgrade the bundled tools (spinnaker#1568)

* chore(containers): tell curl to fail if it gets an HTTP error

This will prevent errors from going unnoticed as happened with the
missing AWS client.

* chore(containers): Upgrade the bundled tools

* feat(stats): Rename telemetry to stats, enable by default (spinnaker#1565)

* feat(stats): Rename telemetry to stats, enable by default
* fix(stats): Rename TelemetryWrapper to StatsWrapper

* fix(stats): New stats command only available in 1.19+ (spinnaker#1569)

* chore(dependencies): Autobump korkVersion (spinnaker#1570)

Co-authored-by: Cameron Fieber <cfieber@netflix.com>

* chore(dependencies): Autobump korkVersion (spinnaker#1571)

Co-authored-by: Travis CI User <travis@example.org>

* feat(k8s/deploy): Add custom health check to service-settings (spinnaker#1572)

* feat(k8s/deploy): Add custom health check to service-settings.

Need the ability to override the default commands created and populated
in the Deployments readinessprobe. In our use case mTLS has been enabled
and we need a way to modify the readiness probe in each service so that
you can pass in the client certificate.

By adding this functionality Halyard can support a much wider array of potential
configurations for health checks for cases where a simple check of /health might not
be desirable.

* Update var to the correct generic type

* fix(k8s/deploy): Update var to the correct generic type

* chore(fix/style): ran spotlessJava to fix style issues

* chore(dependencies): Autobump korkVersion (spinnaker#1573)

Co-authored-by: runner <runner@fv-az51>

* chore(dependencies): Autobump korkVersion (spinnaker#1574)

Co-authored-by: runner <runner@fv-az50>

* chore(dependencies): Autobump korkVersion (spinnaker#1575)

Co-authored-by: runner <runner@fv-az117.internal.cloudapp.net>

* chore(dependencies): Autobump korkVersion (spinnaker#1576)

Co-authored-by: runner <runner@fv-az76>

* chore(dependencies): Autobump korkVersion (spinnaker#1577)

Co-authored-by: runner <runner@fv-az51>

* feat(build): Remove TravisCI and replace with GitHub Actions (spinnaker#1578)

* chore(build): Remove init-publish script (spinnaker#1579)

* Revert "chore(build): Remove init-publish script (spinnaker#1579)" (spinnaker#1580)

This reverts commit fd2ef27.

* fix(config): Ignore any existing `plugins` stanzas. (spinnaker#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.

* chore(mergify): release-* branches require release manager approval (spinnaker#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 <plumpy@google.com>

* chore(dependencies): Autobump korkVersion (spinnaker#1585)

Co-authored-by: runner <runner@fv-az33>

* chore(dependencies): Autobump korkVersion (spinnaker#1586)

Co-authored-by: runner <runner@fv-az51.internal.cloudapp.net>

* fix(plugins): fix plugins-manifest.json  (spinnaker#1564)

* fix(plugins): changing plugin-manifest.js to .json file type

* fix(plugins): remove comments from json file, handle multiple plugins

* feat(plugins): add plugins to all services (spinnaker#1559)

* feat(plugins): add plugins to all services

* refactor(plugins): remove introspection

* refactor(plugins): change Boolean to boolean

* chore(dependencies): Autobump korkVersion (spinnaker#1587)

Co-authored-by: runner <runner@fv-az118.internal.cloudapp.net>

* chore(dependencies): Autobump korkVersion (spinnaker#1588)

Co-authored-by: runner <runner@fv-az51>

* chore(gha): don't run the GHA build when pushing to a fork (spinnaker#1589)

* fix(plugins): Revert add plugins to all services (spinnaker#1559) (spinnaker#1590)

This change breaks deploying any version of Spinnaker <= 1.18
using Halyard, so is being reverted.

This reverts commit 4ed4d26.

* chore(dependencies): Autobump korkVersion (spinnaker#1591)

Co-authored-by: runner <runner@fv-az51>

* chore(dependencies): Autobump korkVersion (spinnaker#1592)

Co-authored-by: runner <runner@fv-az51>

* chore(dependencies): Autobump korkVersion (spinnaker#1593)

Co-authored-by: runner <runner@fv-az51>

* chore(dependencies): Autobump korkVersion (spinnaker#1595)

Co-authored-by: runner <runner@fv-az51>

* feat(plugins): add plugins to all services (spinnaker#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

* fix(container): restore openssl to alpine image (spinnaker#1596)

removed by spinnaker@43dfc67

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 <david.byron@avast.com>

* chore(dependencies): Autobump korkVersion (spinnaker#1599)

Co-authored-by: runner <runner@fv-az50>

* fix(daemon): Don't try to kill daemon created by another user (spinnaker#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.

* chore(build): upgrade spinnaker gradle plugin (spinnaker#1601)

* chore(build): move spinnaker library versions out to gradle.properties

* chore(build): upgrade spinnaker gradle plugin

* chore(build): enable the spinnaker project plugin (spinnaker#1602)

Whoops, missed this part that used to be in init-publish.gradle.

* chore(mergify): if an autobump fails, request a review (spinnaker#1603)

* chore(deps): bump internal spinnaker dependencies (spinnaker#1604)

I'll wire all of these up to the bumpdeps action, but I'd like to test these larger jumps first to make sure they go okay...

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1605)

Co-authored-by: root <root@7c2d69cf985a>

* chore(mergify): autobump reviews should go to oss-approvers (spinnaker#1606)

* chore(containers): Make Dockerfiles work with buildtool's containers.yml (spinnaker#1607)

* chore(gradle): Upgrade gradlew to 5.6.4

* chore(containers): Make Dockerfiles work with buildtool's containers.yml

* chore(release): remove jenkins build scripts

* chore(java11): Compile with Java 11 (but targeting Java 8) (spinnaker#1608)

* chore(java11): Compile with Java 11 (but targeting Java 8)

* chore(java11): Fix compilation for developers using a Java 11 JDK

* chore(java11): Use a Java 11 JRE

* chore(dependencies): Autobump korkVersion (spinnaker#1609)

Co-authored-by: root <root@630f71d41ecb>

* chore(dependencies): Autobump korkVersion (spinnaker#1610)

Co-authored-by: root <root@9be1526fc31e>

* chore(dependencies): Autobump korkVersion (spinnaker#1611)

Co-authored-by: root <root@3bbaae2b3f97>

* chore(dependencies): Autobump korkVersion (spinnaker#1612)

Co-authored-by: root <root@60135c639e6f>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1613)

Co-authored-by: root <root@6891b1263a18>

* fix(publishing): No longer need to change ACL on halyard artifact since the whole bucket is public (spinnaker#1614)

* feat(cli): remove unused appengine feature flag (spinnaker#1615)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1616)

Co-authored-by: root <root@458842d3571f>

* chore(dependencies): Autobump korkVersion (spinnaker#1617)

Co-authored-by: root <root@2e5c1c42d060>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1621)

Co-authored-by: root <root@e7992a1c49ce>

* chore(dependencies): Autobump korkVersion (spinnaker#1622)

Co-authored-by: root <root@18a36aa4866f>

* feat(artifacts): remove artifacts and artifactsRewrite feature flags (spinnaker#1620)

Related to: https://github.com/spinnaker/governance/blob/master/rfc/legacy_artifacts_ui_removal.md

Now that the `artifacts` and `artifactsRewrite` flags are [removed from Deck](spinnaker/deck#8184) in preparation for release 1.20, let's remove their corresponding `hal` commands and provide a message for users deploying >= 1.20 that these fields are no longer necessary.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): Autobump fiatVersion (spinnaker#1624)

Co-authored-by: root <root@9c300884da21>

* chore(dependencies): Autobump korkVersion (spinnaker#1625)

Co-authored-by: root <root@607dfd992c8d>

* chore(dependencies): Autobump korkVersion (spinnaker#1627)

Co-authored-by: root <root@4da054c07e9b>

* chore(build): update to newer spinnaker project plugin (spinnaker#1626)

updates to gradle 6.3

updates github actions workflows for new release flags

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1628)

Co-authored-by: root <root@27f6a48b6497>

* feat(cli): remove Travis, Wercker, Gremlin, and InfrastructureStages feature flags (spinnaker#1619)

* feat(cli): remove Travis feature flag

* feat(cli): remove Wercker feature flag

* feat(cli): remove Gremlin feature flag

* feat(cli): remove infrastructureStages feature flag

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1629)

Co-authored-by: root <root@4d3736916f82>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1632)

Co-authored-by: root <root@7cfcb65d82e3>

* fix(containers): Add retry to Docker containers downloading kubectl (spinnaker#1633)

* fix(build): use bom for kubernetes-client version

removes explicit version opinion which was causing the build to blow up
in some dependency resolution cases (:halyard-web:depInsight
--configuration runtimeClasspath --dependency kork-core)

also was causing the transitives of kubernetes-client not to end up in
the application/deb

* chore(build): gradle build cleanup

removes unnecessary application of java plugin, we apply java-library to all subprojects
removes unnecessary application of protobuf plugin in halyard-web
removes reference to compile scope, uses implementation scope instead

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1635)

Co-authored-by: root <root@0e23aba3091b>

* chore(dependencies): Autobump clouddriverVersion (spinnaker#1637)

Co-authored-by: root <root@35bcda70644a>

* feat(docs): document poor performance of sortTagsByDate flag (spinnaker#1639)

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1641)

Co-authored-by: root <root@7c412b00885f>

* chore(dependencies): Autobump clouddriverVersion (spinnaker#1642)

Co-authored-by: root <root@ffb573cc3eb2>

* fix(google): Update constructors to account for retry changes (spinnaker#1640)

* fix(google): Update constructors to account for retry changes

The changes to the retry logic updated some fields from Long to
int (because we won't be waiting 24 days between retries); this
commit just updates the places we called them in Halyard to pass
an int.

* chore(dependencies): Bump front50 version

* fix(versions): Use thread safe yaml parser (spinnaker#1644)

* feat(telemetry): code formatting

* feat(telemetry): code formatting

* fix(versions): Use thread safe yaml parser (#39)

Co-authored-by: Cristhian Castaneda <cristhian.castaneda@armory.io>

* fix(cli): replace artifacts commands (spinnaker#1645)

* chore(dependencies): Autobump korkVersion (spinnaker#1647)

Co-authored-by: root <root@7395642f9bee>

* chore(dependencies): Autobump korkVersion (spinnaker#1648)

Co-authored-by: root <root@2b09fc3a4455>

* chore(plugins): remove `uiResourceLocation` plugin config parameter (spinnaker#1638)

Co-authored-by: Cameron Motevasselani <cmotevasselani@gmail.com>

* chore(dependencies): Autobump korkVersion (spinnaker#1650)

Co-authored-by: root <root@94827c35f5fd>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1651)

Co-authored-by: root <root@3ba87f91c30c>

* fix(daemon): Fix startup failure by reverting incorrect ps usage (spinnaker#1653)

I'm not sure what I was thinking with this original PR; adding the
-e flag will return all processes regardless of PID, and is not
necessary when passing a PID.

This is causing halyard to fail to startup because we think that the
daemon is always running.

This reverts commit 4a686e9.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): Autobump korkVersion (spinnaker#1652)

Co-authored-by: root <root@78c161617790>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* fix(cli): replace gremlin commands for 1.18 and 1.19 compatibility (spinnaker#1655)

* fix(local-git): remove the Java version check from Halyard local-git deployment (spinnaker#1658)

I suppose I could put in something to check for Java 11, but only looking at the version of java in your $PATH seems like a pretty naive way to go about doing this check, since there are myriad ways you could have a JDK configured for Gradle.

* chore(dependencies): Autobump korkVersion (spinnaker#1659)

Co-authored-by: root <root@724dabba6269>

* chore(dependencies): Autobump korkVersion (spinnaker#1661)

Co-authored-by: root <root@46a3f162f32d>

* feat(build): adds project properties for composite builds. (spinnaker#1660)

This adds flags for the related projects that we bring in
as dependencies, to enable referencing the related project
as a composite build via gradle.

This method of enabling composite builds seems to work
significantly better with IntelliJ. (As opposed to
importing multiple projects into the IDE and configuring
the composite relationship after the fact)

This holds the opinion that all the projects are checked
out in the same parent directory, and can be found at
`'../<projectName>'` relative to this project.

To enable a composite reference to a project, set the
project property `'<projectName>Composite=true'`.

This can be done either as
* a command line flag, e.g. `-PkorkComposite=true`
* a project property via gradle.properties
* a global project property via ~/.gradle/gradle.properties

* feat(boms): Change default dockerRegistry to GAR (spinnaker#1657)

* fix(releases): Fix minor typos in promotion script (spinnaker#1663)

* chore(dependencies): Autobump korkVersion (spinnaker#1664)

Co-authored-by: root <root@d5125df9eea4>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1665)

Co-authored-by: root <root@c12360e2f602>

* chore(dependencies): Autobump korkVersion (spinnaker#1666)

Co-authored-by: root <root@1848c4113575>

* chore(dependencies): Autobump korkVersion (spinnaker#1667)

Co-authored-by: root <root@b0fe386ef528>

* chore(build): gradle 6.4 (spinnaker#1668)

* chore(dependencies): Autobump fiatVersion (spinnaker#1669)

Co-authored-by: root <root@e6c46326ad8b>

* chore(dependencies): Autobump fiatVersion (spinnaker#1670)

Co-authored-by: root <root@4b48b7bffe9a>

* refactor(deps): remove fabric8-utils dependency (spinnaker#1671)

* refactor(deploy): Make kubectl deployer the only option for a distributed installation on Kubernetes  (spinnaker#1672)

* refactor(deploy): remove clouddriver-kubernetes dependency from KubernetesService

KubernetesService currently calls out to clouddriver-kubernetes-v1 to assemble an image registry, repository, and tag into a KubernetesImageDescription object, and then assemble those components into a Docker image ID. Since clouddriver-kubernetes-v1 will not be included in the next Clouddriver release, let's instead include the relevant string formatting logic inline.

* refactor(kubernetes): remove Kubernetes V1 account kubeconfig validation

The legacy Kubernetes (V1) provider is deprecated, and will not be included in Spinnaker 1.21. Given that no new legacy accounts should be added, let's remove the V1-specific kube config validation that we never applied to V2 accounts anyway. This will unblock us from completely decoupling Halyard's distributed installation and Clouddriver's Kubernetes provider. This commit also updates my TODO to remove the remaining V1 validation logic when no supported Spinnaker release includes the V1 provider (tracking this work in this [GitHub issue](spinnaker/spinnaker#5749)).

* refactor(deploy): Make kubectl deployer the only option for a distributed installation on Kubernetes

Spinnaker 1.21 will not include support for using legacy (V1) accounts to deploy to Kubernetes. The next release of Halyard will not include support for using a legacy (V1) account to deploy Spinnaker itself using Halyard. It should be relatively straightforward for users to migrate from the V1 deployer to the kubectl deployer, and can be done independently of migrating any pipelines or other Spinnaker accounts to the V2 provider. Given that we don't publish a Halyard changelog, I will be sure to communicate this in the #halyard Slack channel when we do the next Halyard release.

* refactor(deps): remove dependency on clouddriver-kubernetes

The previous commits removed all clients of clouddriver-kubernetes and clouddriver-kubernetes-v1. Moving forward, this will prevent the class of bug where contributors do not realize that breaking changes to Clouddriver could impact Halyard (at least in the Kubernetes provider).

* chore(dependencies): Autobump korkVersion (spinnaker#1673)

Co-authored-by: root <root@ff9e3aed0c45>

* chore(dependencies): Autobump front50Version (spinnaker#1674)

Co-authored-by: root <root@f40626cb6e1a>

* chore(dependencies): Autobump korkVersion (spinnaker#1675)

Co-authored-by: root <root@3ec048d8ec28>

* refactor(config): remove unused feature properties (spinnaker#1676)

* chore(dependencies): Autobump korkVersion (spinnaker#1677)

Co-authored-by: root <root@30587641ae05>

* chore(dependencies): Autobump fiatVersion (spinnaker#1679)

Co-authored-by: root <root@0bd80700071c>

* chore(dependencies): Autobump korkVersion (spinnaker#1680)

Co-authored-by: root <root@c9ef12ff2f5c>

* fix(front50): Remove duplicate spinnaker key (spinnaker#1662)

* feat(telemetry): code formatting

* fix(plugins): removing extra spinnaker key

* fix(front50): fix nesting of persistent storage configs

Co-authored-by: Cristhian Castaneda <cristhian.castaneda@armory.io>

* chore(dependencies): Autobump fiatVersion (spinnaker#1681)

Co-authored-by: root <root@ebbc24838ebb>

* chore(dependencies): Autobump korkVersion (spinnaker#1682)

Co-authored-by: root <root@411b28224cf4>

* fix(plugins): remove edit plugin command. (spinnaker#1678)

* fix(plugins): remove edit plugin command.

* fix(plugins): docs update.

* fix(plugins): remove blank line on imports.

* fix(plugins): remove unused code and remove edit plugin from Rest API

Co-authored-by: Clay McCoy <github@claymccoy.com>
Co-authored-by: Cameron Motevasselani <cmotevasselani@gmail.com>
Co-authored-by: Daniel Peach <daniel.peach@armory.io>

* chore(dependencies): Autobump korkVersion (spinnaker#1683)

Co-authored-by: root <root@cd13fc09c855>

* chore(dependencies): Autobump fiatVersion (spinnaker#1684)

Co-authored-by: root <root@0de217a3f863>

* chore(build): gradle 6.4.1 (spinnaker#1687)

* fix(compiler): set the version when using Dockerfile.compile (spinnaker#1686)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1688)

Co-authored-by: root <root@ff964b5a57b7>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): Autobump korkVersion (spinnaker#1689)

Co-authored-by: root <root@b22929ed9069>

* chore(dependencies): Autobump korkVersion (spinnaker#1690)

Co-authored-by: root <root@b8d52fc22296>

* chore(dependencies): Autobump korkVersion (spinnaker#1691)

Co-authored-by: root <root@b562d947ef6d>

* refactor(deck): remove unneeded env vars from DeckDockerProfileFactory (spinnaker#1693)

When building Deck as a container, several environment variables are required when using SSL. However, the AUTH_ENABLED and FIAT_ENABLED environment variables are only read from Deck's settings.js when doing local development. When building Deck as a container, auth and fiat configs are read from the features configuration block, not environment variables, so we can safely remove this code.

* chore(dependencies): Autobump korkVersion (spinnaker#1694)

Co-authored-by: root <root@f9f2be0e9d83>

* chore(dependencies): Autobump korkVersion (spinnaker#1695)

Co-authored-by: root <root@c25c6c9c6112>

* chore(dependencies): Autobump korkVersion (spinnaker#1696)

Co-authored-by: root <root@bc227d299710>

* refactor(deck): remove unneeded appengine.enabled binding from DeckProfileFactory (spinnaker#1697)

* refactor(deck): remove unneeded notifications.enabled binding (spinnaker#1698)

* chore(dependencies): Autobump korkVersion (spinnaker#1699)

Co-authored-by: root <root@9da12d0fc23b>

* chore(dependencies): Autobump korkVersion (spinnaker#1700)

Co-authored-by: root <root@28906c17cd67>

* chore(dependencies): Autobump korkVersion (spinnaker#1701)

Co-authored-by: root <root@ba0c9d1c783d>

* chore(dependencies): Autobump korkVersion (spinnaker#1703)

Co-authored-by: root <root@6091e921213e>

* style(core): Add missing space to log (spinnaker#1704)

This will make the logs more readable as we move from this:
`RUNNINGCollected child task [Deploy spin-redis]`

to this:
`RUNNING Collected child task [Deploy spin-redis]`

* fix(mergify): remove duplicate line from mergify.yml (spinnaker#1707)

* fix(halyard): Replaced NPE caused by empty kubeconfig file when running 'hal deploy apply' with a more descriptive exception. (spinnaker#1706)

Parsed kubeconfig returned by the object mapper is null when the kubeconfig file is empty so I added a null check. Fixes the following reported issue: spinnaker/spinnaker#5224
Furthermore, extracted some of the work from processKubernetesAccount into seperate methods in hopes of making the method more readable.

* fix(halyard): bump CD to 5.61.0 and fix CF credentials validator (spinnaker#1708)

Co-authored-by: Zach Smith <zachsmith@ip-192-168-1-69.us-west-2.compute.internal>

* chore(dependencies): Autobump korkVersion (spinnaker#1709)

Co-authored-by: root <root@f0fe681e84f7>

* chore(dependencies): Autobump fiatVersion (spinnaker#1710)

Co-authored-by: root <root@b0032545e0d1>

* chore(dependencies): Autobump front50Version (spinnaker#1711)

Co-authored-by: root <root@99dc460a1671>

* chore(dependencies): Autobump korkVersion (spinnaker#1712)

Co-authored-by: root <root@1d7e715ab9f3>

* chore(dependencies): Autobump korkVersion (spinnaker#1713)

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

* chore(dependencies): Autobump korkVersion (spinnaker#1714)

Co-authored-by: root <root@22b5a785fb59>

* fix(profile): write correct changelog file name to Deck settings.js (spinnaker#1715)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): Autobump korkVersion (spinnaker#1716)

Co-authored-by: root <root@c320d4c3c16f>

* chore(dependencies): Autobump korkVersion (spinnaker#1718)

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

* chore(dependencies): Autobump korkVersion (spinnaker#1719)

Co-authored-by: root <root@f84528c7f520>

* chore(dependencies): Autobump korkVersion (spinnaker#1721)

Co-authored-by: root <root@9b081db80ac0>

* chore(dependencies): Autobump korkVersion (spinnaker#1722)

Co-authored-by: root <root@c55a81492b7a>

* chore(dependencies): Autobump korkVersion (spinnaker#1723)

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

* chore(containers): revert the Artifact Registry changes (spinnaker#1724)

* Revert "fix(releases): Fix minor typos in promotion script (spinnaker#1663)"

This reverts commit 12df445

* Revert "feat(boms): Change default dockerRegistry to GAR (spinnaker#1657)"

This reverts commit e827e8e

* chore(dependencies): Autobump korkVersion (spinnaker#1725)

Co-authored-by: root <root@bd79e168cfe6>

* chore(dependencies): Autobump korkVersion (spinnaker#1726)

Co-authored-by: root <root@1dccf7052742>

* feat(travis): Support for numberOfJobs and buildResultLimit (spinnaker#1717)

Signed-off-by: cmuraru <cmuraru@adobe.com>

Co-authored-by: cmuraru <cmuraru@adobe.com>

* fix(logs): do not print ??? when stats enabled (spinnaker#1727)

* chore(dependencies): Autobump korkVersion (spinnaker#1728)

Co-authored-by: root <root@1bacecaea1dd>

* fix(docs): del ref to removed build shell script (spinnaker#1685)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* fix(docs): Edit fields description (spinnaker#1720)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(build): gradle 6.5 (spinnaker#1729)

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1731)

Co-authored-by: root <root@977a36312434>

* chore(dependencies): Autobump korkVersion (spinnaker#1732)

Co-authored-by: root <root@59d9c736198e>

* chore(dependencies): Autobump fiatVersion (spinnaker#1733)

Co-authored-by: root <root@3d8bb27683f8>

* chore(dependencies): Autobump clouddriverVersion (spinnaker#1734)

Co-authored-by: root <root@aaa8c20672e1>

* chore(dependencies): Autobump front50Version (spinnaker#1735)

Co-authored-by: root <root@0f7c6a0f6e87>

* chore(dependencies): Autobump korkVersion (spinnaker#1736)

Co-authored-by: root <root@a8f3fe14fb2c>

* feat(travis): Support for filteredRepositories parameter (spinnaker#1730)

* feat(travis): Support for filteredRepositories parameter

Signed-off-by: cmuraru <cmuraru@adobe.com>

* Implement review

* Implement review

Co-authored-by: cmuraru <cmuraru@adobe.com>

* fix(ha): modify HA Clouddriver conditionals to append Clouddriver Deck and RO when these are enabled (spinnaker#1636)

Co-authored-by: Cristhian Castaneda <cristhian.castaneda@armory.io>
Co-authored-by: Chris Gruel <chris.gruel@armory.io>

* chore(dependencies): Autobump korkVersion (spinnaker#1740)

Co-authored-by: root <root@71eb94a5c754>

* chore(build): gradle 6.5.1 (spinnaker#1743)

* refactor(kubernetes): deprecate ProviderVersion (spinnaker#1742)

* Since ProviderVersion was only ever relevant to KubernetesAccount, move the enum from Provider to KubernetesAccount before deprecating it. Hopefully this will prevent any future cloud providers from needlessly including the providerVersion field in every account.
* We have included warnings that V1 accounts cannot be used for a Distributed install for a couple of Halyard releases; let's remove these for the next release.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* feat(docs): add deprecation documentation (spinnaker#1744)

* feat(docs): improve discoverability of contributor docs

* feat(docs): add field deprecation docs

* feat(docs): document how to add minimum Spinnaker version to new fields

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1745)

Co-authored-by: root <root@68a551283b83>

* feat(authn/saml): New optional SAML parameter for signing messages (spinnaker#1741)

* feat(authn/saml): New optional SAML parameter for signing messages

* feat(authn/saml): SignatureDigest should be upper case supplied

* fix(cli): ignore providerVersion in all non-Kubernetes account types (spinnaker#1747)

Instead of ignoring `providerVersion` in the base Account class, ignore it in each non-Kubernetes subclass, so that `providerVersion: v1` is respected for legacy Kubernetes accounts.

* chore(dependencies): Autobump korkVersion (spinnaker#1748)

Co-authored-by: root <root@d9d580d9b3c0>

* chore(dependencies): Autobump korkVersion (spinnaker#1749)

Co-authored-by: root <root@7e3432ee318e>

* chore(dependencies): Autobump korkVersion (spinnaker#1750)

Co-authored-by: root <root@3c52fa56dec2>

* chore(dependencies): Autobump korkVersion (spinnaker#1751)

Co-authored-by: root <root@bcfed0122089>

* chore(dependencies): Autobump korkVersion (spinnaker#1752)

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

* fix(install): support Java 14 in installation for macOS (spinnaker#1746)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): Autobump korkVersion (spinnaker#1753)

Co-authored-by: root <root@2034fe8c9f7f>

* chore(dependencies): Autobump korkVersion (spinnaker#1754)

Co-authored-by: root <root@6eba321b78a7>

* chore(dependencies): Autobump korkVersion (spinnaker#1755)

Co-authored-by: root <root@4eda5d523f4e>

* chore(dependencies): Autobump fiatVersion (spinnaker#1756)

Co-authored-by: root <root@d0c358514126>

* chore(dependencies): Autobump korkVersion (spinnaker#1757)

Co-authored-by: root <root@caa32d04095a>

* chore(dependencies): Autobump korkVersion (spinnaker#1758)

Co-authored-by: root <root@1435b8821276>

* chore(dependencies): Autobump korkVersion (spinnaker#1759)

Co-authored-by: root <root@6075b164b586>

* chore(dependencies): Autobump korkVersion (spinnaker#1760)

Co-authored-by: root <root@e1aaa35720ec>

* chore(dependencies): Autobump korkVersion (spinnaker#1761)

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

* chore(dependencies): Autobump korkVersion (spinnaker#1764)

Co-authored-by: root <root@8442b11a4c18>

* fix(install script): Don't be so particular about Java versions (spinnaker#1762)

* fix(install script): Don't be so particular about Java versions

We should be able to run with any version of Java >=8. Java 7 has been EOL for over five years now, so if they still have that installed as their primary JDK, we probably have other issues. Let's just skip the version check entirely.

There are many valid ways someone could install Java. I think it's a fair assumption that someone installing Halyard should know how to install Java. So let's remove the part where we try to install an unnecessarily old version for them.

* fix(install script): -1 is not a valid exit code

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* feat(kubernetes): allow adding custom service annotations (spinnaker#1763)

* feat(kubernetes): add service annotations

* fix(kuberntes): typo setting to settings

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* fix(config): Reorder imports on PrometheusCanaryAccount.java after Secret Import incorrectly placed (spinnaker#1631)

* fix(config): Add @secret decorator to Password/Key properties in Halyard Config Models

* fix(config): Reorder imports on PrometheusCanaryAccount.java after Secret Import incorrectly placed

Co-authored-by: Mark Noe <marknoe@Marks-MacBook-Pro.local>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* fix(kubernetes): Deploy to a numeric k8s namespace fails (spinnaker#1597)

Allows deployment to a Kubernetes namespace that is numeric.

KubernetesV2Utils is mapping the deployment environment values to Map<String, Object>, and number-ish values are interpreted as numeric types by YAML.
This caused a numeric namespace value to get interpreted as a Long, and later hard-casts to String in KubernetesV2Executor.exists() threw a ClassCastException

Example failing config:

```
kubernetes:
- accounts:
  - name: foobar
    ...
    namespaces:
    - 123412341234
...
deploymentEnvironment:
  location: 123412341234
```

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(spotless): upgrade spinnaker gradle plugin (spinnaker#1765)

* fix(local-bom): Fix issues blocking use of locally hosted configuration files (spinnaker#1737)

* fix(versions): Fix version parsing for plugin compatibility detection for local BOMs

* fix(versions): Fixing orderBySemVer so it correctly sees equivalent version expressions as equal

* fix(LocalDiskProfileReader): readArchiveProfile should not expect a file extension for profileName, it must supply it

Co-authored-by: Kevin Woo <kevinawoo@gmail.com>

* fix: allow edit canary datadog (spinnaker#1738)

allows halyard command edit canary datadog
allows setting metadataCachingIntervalMS in the same manner as prometheus

Co-authored-by: Kevin Woo <kevinawoo@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* fix(installer) Create sysusers.d dir if not present on Debian (spinnaker#1618)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Allow cacheThreads 0. This will disable cache for an account. (spinnaker#1692)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): bump commons-compress version (spinnaker#1582)

Co-authored-by: Kevin Woo <kevinawoo@gmail.com>

* feat(secrets): Handle secrets in service settings (spinnaker#1364)

Co-authored-by: Kevin Woo <kevinawoo@gmail.com>

* feat(nexus): add command to enable and configure Nexus repository (spinnaker#1431)

* feat(nexus): add command to enable and configure Nexus repository

* automated style fixes

Co-authored-by: Kevin Woo <kevinawoo@gmail.com>

* fix(dependencies): update clouddriver (spinnaker#1766)

Also updated some modules to add clouddriver-api dep so that it would still compile.

* fix(kubernetes): fix custom service annotations (spinnaker#1767)

* feat(config): add upperBound/tooHighMessage for mineCanary feature flag (spinnaker#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.

* chore(dependencies): Autobump clouddriverVersion (spinnaker#1739)

Co-authored-by: root <root@0b9afe36d40f>
Co-authored-by: Eric Zimanyi <ezimanyi@google.com>

* fix(misc): Remove hard dependency on resolvedEnv endpoint and add runtime dep for kork actuator (spinnaker#1770)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): Autobump korkVersion (spinnaker#1769)

Co-authored-by: root <root@f429c082b070>
Co-authored-by: Eric Zimanyi <ezimanyi@google.com>

* chore(dependencies): Autobump korkVersion (spinnaker#1771)

Co-authored-by: root <root@12e6abdc8861>

* chore(dockerfile): various Dockerfile cleanups (spinnaker#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

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1773)

Co-authored-by: root <root@6a807b439d68>

* chore(build): gradle 6.6 (spinnaker#1774)

* chore(dependencies): Autobump korkVersion (spinnaker#1775)

Co-authored-by: root <root@87c6cb8f1126>

* chore(dependencies): Autobump korkVersion (spinnaker#1776)

Co-authored-by: root <root@048626cb7ef2>

* chore(dependencies): Autobump korkVersion (spinnaker#1777)

Co-authored-by: root <root@7cc2f7e2e8cd>

* chore(dependencies): Autobump korkVersion (spinnaker#1778)

Co-authored-by: root <root@4bab6a330c11>

* chore(dependencies): Autobump korkVersion (spinnaker#1779)

Co-authored-by: root <root@534ce9888ac0>

* chore(dependencies): Autobump korkVersion (spinnaker#1780)

Co-authored-by: root <root@167ad51ad4f2>

* chore(build): gradle 6.6.1 (spinnaker#1783)

* chore(dependencies): Autobump korkVersion (spinnaker#1784)

Co-authored-by: root <root@07aa874cb083>

* chore(dependencies): Autobump korkVersion (spinnaker#1785)

Co-authored-by: root <root@fa990adebdf5>

* chore(dependencies): Autobump korkVersion (spinnaker#1786)

Co-authored-by: root <root@ec7bd04f30f1>

* chore(dependencies): Autobump korkVersion (spinnaker#1789)

Co-authored-by: root <root@07935c2d2f7e>

* feat(plugins): Support top level plugin config (spinnaker#1788)

Co-authored-by: Cameron Motevasselani <cmotevasselani@gmail.com>

* fix(5995): Fix non-existent nexus node in halyard config (spinnaker#1787)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* chore(dependencies): Autobump fiatVersion (spinnaker#1790)

Co-authored-by: root <root@bfd54d97d9e4>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1791)

Co-authored-by: root <root@903b3fc96ec5>

* chore(dependencies): Autobump korkVersion (spinnaker#1792)

Co-authored-by: root <root@b207540a8467>

* chore(dependencies): Autobump korkVersion (spinnaker#1793)

Co-authored-by: root <root@37fd038da766>

* chore(dependencies): Autobump korkVersion (spinnaker#1794)

Co-authored-by: root <root@cd7bcd8dd69a>

* feat(cli): add upperBound for liveManifestCalls flag (spinnaker#1795)

* chore(dependencies): Autobump korkVersion (spinnaker#1796)

Co-authored-by: root <root@4181cde18944>

* feat(releases): Publish Halyard containers to Artifact Registry (spinnaker#1798)

Reverts spinnaker#1724 (which itself was a rollback of spinnaker#1653 and spinnaker#1663) to turn this back on.

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1799)

Co-authored-by: root <root@1c964967be5d>

* chore(dependencies): Autobump fiatVersion (spinnaker#1800)

Co-authored-by: root <root@bcaea77c9d18>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1801)

Co-authored-by: root <root@96ca2b2c6285>

* fix(build): Fixes for build failures when 'targetJava11=true' (spinnaker#1802)

* chore(java11): Remove Java 8 from the CI systems. (spinnaker#1803)

Halyard compiles to Java 11 as of spinnaker#1802.

* chore(dependencies): Autobump fiatVersion (spinnaker#1804)

Co-authored-by: root <root@28bd9d7e8d49>

* chore(redis): Move Halyard's redis image into the CDF-owned GCP project (spinnaker#1806)

The `kubernetes-spinnaker` project seemingly exists solely to host this one image. I have no idea why. Let's move it into its own Artifact Registry repository in the CDF-owned `spinnaker-community` project.

Also, the version of Redis in this image is 3.2.11, which is three years old, but I suppose that's a problem for another day.

* feat(aws): Adding property externalId to AWS account config for assuming roles. (spinnaker#1805)

* feat(aws): adding externalId command and field for aws account config

* chore(aws): better definition for the new property external Id

Co-authored-by: Justin Field <justin.field@armory.io>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1807)

Co-authored-by: root <root@6a7b3894974d>

* chore(dependencies): Autobump fiatVersion (spinnaker#1808)

Co-authored-by: root <root@b272e1bb32f7>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1809)

Co-authored-by: root <root@5900c8b382c3>

* chore(kork): update kork (spinnaker#1810)

Required a few manual changes because of spinnaker/kork#783

* chore(dependencies): Autobump clouddriverVersion (spinnaker#1782)

Co-authored-by: root <root@44bc22e6f2e4>

* chore(dependencies): Autobump korkVersion (spinnaker#1811)

Co-authored-by: root <root@2897678eb22e>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#1812)

Co-authored-by: root <root@877703f80d77>

* chore(dependencies): Autobump korkVersion (spinnaker#1814)

Co-authored-by: root <root@c51049d641bc>

* chore(dependencies): Autobump korkVersion (spinnaker#1815)

Co-authored-by: root <root@893456aa42c8>

* chore(dependencies): Autobump korkVersion (spinnaker#1816)

Co-authored-by: root <root@e9b0b38e4e5f>

* chore(dependencies): Autobump korkVersion (spinnaker#1817)

Co-authored-by: root <root@9c1f95bcaee1>

* chore(dependencies): Autobump korkVersion (spinnaker#1818)

Co-authored-by: root <root@73fd689d0395>

* fix(boms): change default docker registry to spinnaker-community (spinnaker#1820)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* feat(validations/cf): Updated CF client for validations (spinnaker#1819)

* chore(build): gradle 6.7 (spinnaker#1821)

* chore(update): gen-manifests update

* chore(update): gen-manifests update

Co-authored-by: spinnakerbot <spinbot@spinnaker.io>
Co-authored-by: Travis CI User <travis@example.org>
Co-authored-by: Michael Plump <plumpy@google.com>
Co-authored-by: Travis Tomsu <ttomsu@google.com>
Co-authored-by: Cameron Fieber <cfieber@netflix.com>
Co-authored-by: clanesf <35847974+clanesf@users.noreply.github.com>
Co-authored-by: runner <runner@fv-az51>
Co-authored-by: runner <runner@fv-az50>
Co-authored-by: runner <runner@fv-az117.internal.cloudapp.net>
Co-authored-by: runner <runner@fv-az76>
Co-authored-by: Chris Smalley <csmalley@netflix.com>
Co-authored-by: Eric Zimanyi <ezimanyi@google.com>
Co-authored-by: runner <runner@fv-az33>
Co-authored-by: runner <runner@fv-az51.internal.cloudapp.net>
Co-authored-by: Cameron Motevasselani <cmotevasselani@gmail.com>
Co-authored-by: runner <runner@fv-az118.internal.cloudapp.net>
Co-authored-by: David Byron <dbyron@dbyron.com>
Co-authored-by: Byron David <david.byron@avast.com>
Co-authored-by: root <root@7c2d69cf985a>
Co-authored-by: root <root@630f71d41ecb>
Co-authored-by: root <root@9be1526fc31e>
Co-authored-by: root <root@3bbaae2b3f97>
Co-authored-by: root <root@60135c639e6f>
Co-authored-by: root <root@6891b1263a18>
Co-authored-by: Maggie Neterval <mneterval@google.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: root <root@458842d3571f>
Co-authored-by: root <root@2e5c1c42d060>
Co-authored-by: root <root@e7992a1c49ce>
Co-authored-by: root <root@18a36aa4866f>
Co-authored-by: root <root@9c300884da21>
Co-authored-by: root <root@607dfd992c8d>
Co-authored-by: root <root@4da054c07e9b>
Co-authored-by: root <root@27f6a48b6497>
Co-authored-by: root <root@4d3736916f82>
Co-authored-by: root <root@7cfcb65d82e3>
Co-authored-by: root <root@0e23aba3091b>
Co-authored-by: root <root@35bcda70644a>
Co-authored-by: root <root@7c412b00885f>
Co-authored-by: root <root@ffb573cc3eb2>
Co-authored-by: German Muzquiz <35276119+german-muzquiz@users.noreply.github.com>
Co-authored-by: root <root@7395642f9bee>
Co-authored-by: root <root@2b09fc3a4455>
Co-authored-by: Daniel Peach <daniel.peach@armory.io>
Co-authored-by: root <root@94827c35f5fd>
Co-authored-by: root <root@3ba87f91c30c>
Co-authored-by: root <root@78c161617790>
Co-authored-by: root <root@724dabba6269>
Co-authored-by: root <root@46a3f162f32d>
Co-authored-by: root <root@d5125df9eea4>
Co-authored-by: root <root@c12360e2f602>
Co-authored-by: root <root@1848c4113575>
Co-authored-by: root <root@b0fe386ef528>
Co-authored-by: root <root@e6c46326ad8b>
Co-authored-by: root <root@4b48b7bffe9a>
Co-authored-by: root <root@ff9e3aed0c45>
Co-authored-by: root <root@f40626cb6e1a>
Co-authored-by: root <root@3ec048d8ec28>
Co-authored-by: root <root@30587641ae05>
Co-authored-by: root <root@0bd80700071c>
Co-authored-by: root <root@c9ef12ff2f5c>
Co-authored-by: root <root@ebbc24838ebb>
Co-authored-by: root <root@411b28224cf4>
Co-authored-by: Edgar Garcia <63310723+edgarulg@users.noreply.github.com>
Co-authored-by: Clay McCoy <github@claymccoy.com>
Co-authored-by: root <root@cd13fc09c855>
Co-authored-by: root <root@0de217a3f863>
Co-authored-by: root <root@ff964b5a57b7>
Co-authored-by: root <root@b22929ed9069>
Co-authored-by: root <root@b8d52fc22296>
Co-authored-by: root <root@b562d947ef6d>
Co-authored-by: root <root@f9f2be0e9d83>
Co-authored-by: root <root@c25c6c9c6112>
Co-authored-by: root <root@bc227d299710>
Co-authored-by: root <root@9da12d0fc23b>
Co-authored-by: root <root@28906c17cd67>
Co-authored-by: root <root@ba0c9d1c783d>
Co-authored-by: root <root@6091e921213e>
Co-authored-by: Patrik Greco <pgreco@apple.com>
Co-authored-by: Matt Santa <mattsanta@google.com>
Co-authored-by: Zach Smith <33258732+zachsmith1@users.noreply.github.com>
Co-authored-by: Zach Smith <zachsmith@ip-192-168-1-69.us-west-2.compute.internal>
Co-authored-by: root <root@f0fe681e84f7>
Co-authored-by: root <root@b0032545e0d1>
Co-authored-by: root <root@99dc460a1671>
Co-authored-by: root <root@1d7e715ab9f3>
Co-authored-by: root <root@8afdcb247cd4>
Co-authored-by: root <root@22b5a785fb59>
Co-authored-by: root <root@c320d4c3c16f>
Co-authored-by: root <root@8bcd4d2873be>
Co-authored-by: root <root@f84528c7f520>
Co-authored-by: root <root@9b081db80ac0>
Co-authored-by: root <root@c55a81492b7a>
Co-authored-by: root <root@8dce36ec7ef6>
Co-authored-by: root <root@bd79e168cfe6>
Co-authored-by: root <root@1dccf7052742>
Co-authored-by: Costi Muraru <costimuraru@gmail.com>
Co-authored-by: cmuraru <cmuraru@adobe.com>
Co-authored-by: root <root@1bacecaea1dd>
Co-authored-by: Trent Albright <trent.albright@gmail.com>
Co-authored-by: Shengyu Liu <usungu@gmail.com>
Co-authored-by: root <root@977a36312434>
Co-authored-by: root <root@59d9c736198e>
Co-authored-by: root <root@3d8bb27683f8>
Co-authored-by: root <root@aaa8c20672e1>
Co-authored-by: root <root@0f7c6a0f6e87>
Co-authored-by: root <root@a8f3fe14fb2c>
Co-authored-by: Ivan <ivanphdz13@gmail.com>
Co-authored-by: Chris Gruel <chris.gruel@armory.io>
Co-authored-by: root <root@71eb94a5c754>
Co-authored-by: root <root@68a551283b83>
Co-authored-by: root <root@d9d580d9b3c0>
Co-authored-by: root <root@7e3432ee318e>
Co-authored-by: root <root@3c52fa56dec2>
Co-authored-by: root <root@bcfed0122089>
Co-authored-by: root <root@80d4eac187ec>
Co-authored-by: micnncim <micnncim@gmail.com>
Co-authored-by: root <root@2034fe8c9f7f>
Co-authored-by: root <root@6eba321b78a7>
Co-authored-by: root <root@4eda5d523f4e>
Co-authored-by: root <root@d0c358514126>
Co-authored-by: root <root@caa32d04095a>
Co-authored-by: root <root@1435b8821276>
Co-authored-by: root <root@6075b164b586>
Co-authored-by: root <root@e1aaa35720ec>
Co-authored-by: root <root@8d7c1f8eef3c>
Co-authored-by: root <root@8442b11a4c18>
Co-authored-by: KeisukeYamashita <19yamashita15@gmail.com>
Co-authored-by: marqaaron <57965459+marqaaron@users.noreply.github.com>
Co-authored-by: Mark Noe <marknoe@Marks-MacBook-Pro.local>
Co-authored-by: jcavanagh <jcavanagh@users.noreply.github.com>
Co-authored-by: Joe DeStefano <jld864@gmail.com>
Co-authored-by: Kevin Woo <kevinawoo@gmail.com>
Co-authored-by: John Pease <john.pease@autodesk.com>
Co-authored-by: Markus Lachinger <1031928+mmlac@users.noreply.github.com>
Co-authored-by: dcodix <sikieresmescribes@gmail.com>
Co-authored-by: asgard-r <56136377+asgard-r@users.noreply.github.com>
Co-authored-by: Michael Tweten <Michael.Tweten@cerner.com>
Co-authored-by: Clay McCoy <git@claymccoy.com>
Co-authored-by: Raphaël Rondeau <raphael@yeau.io>
Co-authored-by: root <root@0b9afe36d40f>
Co-authored-by: Sairam Rekapalli <rrvsairam@gmail.com>
Co-authored-by: root <root@f429c082b070>
Co-authored-by: root <root@12e6abdc8861>
Co-authored-by: root <root@6a807b439d68>
Co-authored-by: root <root@87c6cb8f1126>
Co-authored-by: root <root@048626cb7ef2>
Co-authored-by: root <root@7cc2f7e2e8cd>
Co-authored-by: root <root@4bab6a330c11>
Co-authored-by: root <root@534ce9888ac0>
Co-authored-by: root <root@167ad51ad4f2>
Co-authored-by: root <root@07aa874cb083>
Co-authored-by: root <root@fa990adebdf5>
Co-authored-by: root <root@ec7bd04f30f1>
Co-authored-by: root <root@07935c2d2f7e>
Co-authored-by: Justin Field <justin.field@armory.io>
Co-authored-by: Jose Maria Alvarez Fernandez <52029309+jmalvarezf-lmes@users.noreply.github.com>
Co-authored-by: root <root@bfd54d97d9e4>
Co-authored-by: root <root@903b3fc96ec5>
Co-authored-by: root <root@b207540a8467>
Co-authored-by: root <root@37fd038da766>
Co-authored-by: root <root@cd7bcd8dd69a>
Co-authored-by: root <root@4181cde18944>
Co-authored-by: root <root@1c964967be5d>
Co-authored-by: root <root@bcaea77c9d18>
Co-authored-by: root <root@96ca2b2c6285>
Co-authored-by: Adam Jordens <adam@jordens.org>
Co-authored-by: root <root@28bd9d7e8d49>
Co-authored-by: root <root@6a7b3894974d>
Co-authored-by: root <root@b272e1bb32f7>
Co-authored-by: root <root@5900c8b382c3>
Co-authored-by: root <root@44bc22e6f2e4>
Co-authored-by: root <root@2897678eb22e>
Co-authored-by: root <root@877703f80d77>
Co-authored-by: root <root@c51049d641bc>
Co-authored-by: root <root@893456aa42c8>
Co-authored-by: root <root@e9b0b38e4e5f>
Co-authored-by: root <root@9c1f95bcaee1>
Co-authored-by: root <root@73fd689d0395>
  • Loading branch information
Show file tree
Hide file tree
Showing 10 changed files with 120 additions and 37 deletions.
14 changes: 7 additions & 7 deletions Dockerfile.ubuntu
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
FROM ubuntu:bionic
LABEL maintainer="sig-platform@spinnaker.io"
COPY halyard-web/build/install/halyard /opt/halyard

ENV KUBECTL_RELEASE=1.15.10
ENV AWS_BINARY_RELEASE_DATE=2020-02-22
Expand All @@ -14,18 +13,19 @@ RUN apt-get update && \
python-pip && \
pip install awscli==${AWS_CLI_VERSION} --upgrade

RUN echo '#!/usr/bin/env bash' | tee /usr/local/bin/hal > /dev/null && \
echo '/opt/halyard/bin/hal "$@"' | tee /usr/local/bin/hal > /dev/null
RUN chmod +x /usr/local/bin/hal
RUN echo '#!/usr/bin/env bash' > /usr/local/bin/hal && \
echo '/opt/halyard/bin/hal "$@"' >> /usr/local/bin/hal && \
chmod +x /usr/local/bin/hal

RUN curl -f -LO --retry 3 --retry-delay 3 https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_RELEASE}/bin/linux/amd64/kubectl && \
chmod +x ./kubectl && \
mv ./kubectl /usr/local/bin/kubectl

RUN curl -f -o /usr/local/bin/aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/${KUBECTL_RELEASE}/${AWS_BINARY_RELEASE_DATE}/bin/linux/amd64/aws-iam-authenticator && \
chmod +x /usr/local/bin/aws-iam-authenticator
RUN curl -f -o /usr/local/bin/aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/${KUBECTL_RELEASE}/${AWS_BINARY_RELEASE_DATE}/bin/linux/amd64/aws-iam-authenticator && \
chmod +x /usr/local/bin/aws-iam-authenticator

RUN adduser --disabled-login --system --group --uid 1000 spinnaker
RUN adduser --system --uid 1000 --group spinnaker
COPY halyard-web/build/install/halyard /opt/halyard
USER spinnaker

CMD ["/opt/halyard/bin/halyard"]
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
artifactory_user=
artifactory_password=
clouddriverVersion=5.67.0
fiatVersion=1.25.0
clouddriverVersion=5.69.0
fiatVersion=1.26.0
front50Version=2.21.0
korkVersion=7.68.0
korkVersion=7.87.0
org.gradle.parallel=true
spinnakerGradleVersion=8.8.0
spinnakerGradleVersion=8.10.0
targetJava11=true

# To enable a composite reference to a project, set the
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
3 changes: 2 additions & 1 deletion halyard-config/halyard-config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ dependencies {
implementation 'com.netflix.spinnaker.kork:kork-secrets-aws'
implementation 'com.netflix.spinnaker.kork:kork-secrets-gcp'
implementation "com.netflix.spinnaker.kork:kork-web"
implementation "com.netflix.spinnaker.kork:kork-config"
implementation "com.netflix.spinnaker.kork:kork-cloud-config-server"
implementation 'com.amazonaws:aws-java-sdk-core:1.11.534'
implementation 'com.amazonaws:aws-java-sdk-s3:1.11.534'
implementation 'com.google.apis:google-api-services-compute'
Expand All @@ -29,6 +29,7 @@ dependencies {
implementation 'commons-io:commons-io:2.6'
implementation 'io.fabric8:kubernetes-client'
implementation 'com.squareup.retrofit:retrofit'
implementation "com.squareup.retrofit:converter-jackson"
implementation 'com.jcraft:jsch'
implementation 'de.huxhorn.sulky:de.huxhorn.sulky.ulid'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
public class ArtifactSourcesConfig {
String gitPrefix = "https://github.com/spinnaker";
String googleImageProject = "marketplace-spinnaker-release";
String dockerRegistry = "us-docker.pkg.dev/spinnaker-community/releases";
String dockerRegistry = "us-docker.pkg.dev/spinnaker-community/docker";
String debianRepository = "https://dl.bintray.com/spinnaker-releases/debians";

public ArtifactSourcesConfig mergeWithBomSources(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,48 @@

package com.netflix.spinnaker.halyard.config.validate.v1.providers.cloudfoundry;

import com.netflix.spinnaker.clouddriver.cloudfoundry.security.CloudFoundryCredentials;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.netflix.spinnaker.clouddriver.cloudfoundry.client.api.AuthenticationService;
import com.netflix.spinnaker.clouddriver.cloudfoundry.client.api.SpaceService;
import com.netflix.spinnaker.clouddriver.cloudfoundry.client.model.Token;
import com.netflix.spinnaker.halyard.config.model.v1.node.Validator;
import com.netflix.spinnaker.halyard.config.model.v1.providers.cloudfoundry.CloudFoundryAccount;
import com.netflix.spinnaker.halyard.config.model.v1.util.PropertyUtils;
import com.netflix.spinnaker.halyard.config.problem.v1.ConfigProblemSetBuilder;
import com.netflix.spinnaker.halyard.core.problem.v1.Problem;
import com.netflix.spinnaker.halyard.core.problem.v1.Problem.Severity;
import com.netflix.spinnaker.halyard.core.tasks.v1.DaemonTaskHandler;
import com.squareup.okhttp.OkHttpClient;
import java.net.URL;
import java.util.Objects;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import retrofit.RestAdapter;
import retrofit.client.OkClient;
import retrofit.converter.JacksonConverter;

@Data
@EqualsAndHashCode(callSuper = false)
@Slf4j
public class CloudFoundryAccountValidator extends Validator<CloudFoundryAccount> {

private JacksonConverter jacksonConverter = createJacksonConverter();
private OkClient secureOkClient = new OkClient(createHttpClient(false));
private OkClient insecureOkClient = new OkClient(createHttpClient(true));

@Override
public void validate(
ConfigProblemSetBuilder problemSetBuilder, CloudFoundryAccount cloudFoundryAccount) {
Expand All @@ -46,7 +69,6 @@ public void validate(
+ " with "
+ CloudFoundryAccountValidator.class.getSimpleName());

String environment = cloudFoundryAccount.getEnvironment();
String apiHost = cloudFoundryAccount.getApiHost();
URL appsManagerUrl = cloudFoundryAccount.getAppsManagerUrl();
URL metricsUrl = cloudFoundryAccount.getMetricsUrl();
Expand Down Expand Up @@ -96,24 +118,10 @@ public void validate(
return;
}

CloudFoundryCredentials cloudFoundryCredentials =
new CloudFoundryCredentials(
cloudFoundryAccount.getName(),
Objects.toString(appsManagerUrl, null),
Objects.toString(metricsUrl, null),
apiHost,
user,
password,
environment,
skipSslValidation,
/* resultsPerPage= */ null,
/* maxCapiConnectionsForCache= */ null,
/* cacheRepository */ null,
/* Permissions */ null);

try {
int count = cloudFoundryCredentials.getCredentials().getSpaces().all().size();
log.debug("Retrieved {} spaces using account {}", count, accountName);
SpaceService spaceService = createSpaceService(apiHost, skipSslValidation, user, password);
int count = spaceService.all(null, null).getTotalResults();
log.info("Retrieved {} spaces using account {}", count, accountName);
} catch (Exception e) {
problemSetBuilder.addProblem(
Problem.Severity.ERROR,
Expand All @@ -125,6 +133,79 @@ public void validate(
}
}

private SpaceService createSpaceService(
String apiHost, boolean skipSslValidation, String user, String password) {
return new RestAdapter.Builder()
.setEndpoint("https://" + apiHost)
.setClient(skipSslValidation ? insecureOkClient : secureOkClient)
.setConverter(jacksonConverter)
.setRequestInterceptor(
request ->
request.addHeader(
"Authorization",
"bearer "
+ getToken(apiHost, skipSslValidation, user, password).getAccessToken()))
.build()
.create(SpaceService.class);
}

private Token getToken(String apiHost, boolean skipSslValidation, String user, String password) {
AuthenticationService uaaService =
new RestAdapter.Builder()
.setEndpoint("https://" + apiHost.replaceAll("^api\\.", "login."))
.setClient(skipSslValidation ? insecureOkClient : secureOkClient)
.setConverter(jacksonConverter)
.build()
.create(AuthenticationService.class);
return uaaService.passwordToken("password", user, password, "cf", "");
}

@NotNull
private JacksonConverter createJacksonConverter() {
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
mapper.registerModule(new JavaTimeModule());
return new JacksonConverter(mapper);
}

private OkHttpClient createHttpClient(boolean skipSslValidation) {
OkHttpClient client = new OkHttpClient();

if (skipSslValidation) {
client.setHostnameVerifier((s, sslSession) -> true);

TrustManager[] trustAllCerts =
new TrustManager[] {
new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] x509Certificates, String s) {}

@Override
public void checkServerTrusted(X509Certificate[] x509Certificates, String s) {}

@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
}
};

SSLContext sslContext;
try {
sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustAllCerts, new SecureRandom());
} catch (KeyManagementException | NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}

client.setSslSocketFactory(sslContext.getSocketFactory());
}

return client;
}

private boolean isHttp(String protocol) {
return "http".equalsIgnoreCase(protocol) || "https".equalsIgnoreCase(protocol);
}
Expand Down
2 changes: 1 addition & 1 deletion halyard-deploy/halyard-deploy.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ dependencies {
implementation "com.netflix.spinnaker.clouddriver:clouddriver-google:$clouddriverVersion"
implementation "com.netflix.spinnaker.clouddriver:clouddriver-security:$clouddriverVersion"
implementation "com.netflix.spinnaker.kork:kork-secrets"
implementation "com.netflix.spinnaker.kork:kork-config"
implementation "com.netflix.spinnaker.kork:kork-cloud-config-server"
implementation 'com.netflix.frigga:frigga'
implementation 'com.google.apis:google-api-services-storage'
implementation 'com.google.apis:google-api-services-compute'
Expand Down
2 changes: 1 addition & 1 deletion halyard-web/config/halyard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ halconfig:
spinnaker:
artifacts:
debian: https://dl.bintray.com/spinnaker-releases/debians
docker: us-docker.pkg.dev/spinnaker-community/releases
docker: us-docker.pkg.dev/spinnaker-community/docker
config:
input:
gcs:
Expand Down
1 change: 1 addition & 0 deletions halyard-web/halyard-web.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

implementation 'org.springframework.cloud:spring-cloud-config-server'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
Expand Down
2 changes: 1 addition & 1 deletion install/Installer.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ set -o pipefail

REPOSITORY_URL="https://dl.bintray.com/spinnaker-releases/debians"
SPINNAKER_REPOSITORY_URL="https://dl.bintray.com/spinnaker-releases/debians"
SPINNAKER_DOCKER_REGISTRY="us-docker.pkg.dev/spinnaker-community/releases"
SPINNAKER_DOCKER_REGISTRY="us-docker.pkg.dev/spinnaker-community/docker"
SPINNAKER_GCE_PROJECT="marketplace-spinnaker-release"
CONFIG_BUCKET="halconfig"

Expand Down

1 comment on commit 8e0406f

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Security Scan Results ⚠️
Found 3 Critical Vulnerabilities
Found 4 High Vulnerabilities

See scan details for more information.

Please sign in to comment.