Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(provider/kubernetes): load balancer -> sg relationship #2013

Merged
merged 1 commit into from
Oct 18, 2017

Conversation

lwander
Copy link
Member

@lwander lwander commented Oct 17, 2017

No description provided.

@lwander lwander merged commit a39323a into spinnaker:master Oct 18, 2017
@lwander lwander deleted the kubernetes-sg-lb-rl branch October 18, 2017 19:36
BrunoCarrier added a commit to lookout/clouddriver that referenced this pull request Oct 26, 2017
* feat(provider/kubernetes): Add spectator to v2 client (spinnaker#1866)

* refactor(provider/kubernetes): Share caching agent abstraction (spinnaker#1865)

* feat(provider/kubernetes): Fix on demand caching (spinnaker#1870)

* chore(provider/kubernetes): On demand caching tests (spinnaker#1871)

* feat(provider/kuberenetes): V2 deployments (spinnaker#1868)

* feat(provider/kubernetes): Cache arbitrary resource (spinnaker#1873)

* feat(search): update application search (spinnaker#1875)

* add ability to pass search filters down to application searching in
front50.

* Additional fix for issue 1632, not able to find AMI with encrypted snapshots in target/managed account (spinnaker#1846)

* docs(intellij): Describe how to enable lombok in intellij (spinnaker#1869)

I figured we'd add a quick one-line how-to for getting gradle to build your intellij project too.

* feat(provider/kubernetes): Infer relationships from ownerReference (spinnaker#1876)

* feat(provider/kubernetes): Infer relationships from ownerReference

* feat(provider/kubernetes): Cache ancillary resources

* feat(search): add filters to project search (spinnaker#1878)

* feat(provider/ecs): Made EcsCloudProvider public (spinnaker#1848)

* feat(provider/kubernetes): Cache pods (spinnaker#1879)

* feat(provider/kubernetes): Annotate templates as well (spinnaker#1880)

A number of k8s resources use a spec.template to deploy a managed
resource. These need to be annotated by Spinnaker as well.

* fix(aws/tags): ensure tag sync is always performed during allow launch

* fix(search): allow SearchProvider filter exclusion (spinnaker#1883)

* allows search providers to specify an exclusion list for filter keys
to optionally be removed before executing a search.

* feat(provider/aws): Remove ability to automatically remove dependencies when deleting a security group (spinnaker#1894)

* fix(provider/aws): trim whitespace when newlines are detected (spinnaker#1844)

* fix(google): Add statusCode tag to google API metrics (spinnaker#1886)

This also refactors all the tests involving google API metrics.

* fix(provider/kubernetes): Add missing credential props (spinnaker#1897)

* feat(provider/kubernetes): add daemon & stateful set support

*  fix(provider/aws): ensure STSAssumeRoleSessionCredentialsProvider get the right endpoint (spinnaker#1888)

* feat(provider/kubernetes): v2 generic on demand caching (spinnaker#1884)

* refactor(provider/kubernetes): v2 include api version in resource id (spinnaker#1901)

* feat(provider/docker): add catalogFile option (spinnaker#1890)

adds the `catalogFile` option to the Docker Registry provider. This is
an attempt to make it easier to use registries that don't support
`v2/_catalog` (which happens to be a lot). This file can be managed by
an external process. Each caching cycle, Clouddriver reads this file to
determine the list of repositories it should cache tags for.

the format of the `configFile` is:
```
{
  "repositories":[
    "library/nginx",
    "library/busybox"
  ]
}
```

* fix(provider/docker): fix client constructor (spinnaker#1903)

Bug introduced in `f70d6ea`. I updated the constructor to include
`catalogFile` but didn't update the constructor for those using
`password` and `passwordFile` configurations. This fixes that potential
issue.

* feat(provider/kubernetes): v2 Cache lb & scg relationships (spinnaker#1902)

* Revert " fix(provider/aws): ensure STSAssumeRoleSessionCredentialsProvider get the right endpoint (spinnaker#1888)" (spinnaker#1904)

This reverts commit 828fbb7.

* feat(provider/kubernetes): v2 version deployed manifests as resources (spinnaker#1905)

* refactor(provider/kubernetes): V2 swap kind & version in cache key (spinnaker#1907)

For consistency with naming & other resources.

* fix(provider/aws): Clone spot price if not explicitly specified. (spinnaker#1908)

* refactor(provider/kubernetes): Segregate k8s by provider version (spinnaker#1909)

* feat(provider/kubernetes): Add proper support for source capacity. (spinnaker#1906)

Fully addresses: spinnaker/spinnaker#1657

  Also accounts for the possibility that the user might want to set
  their own targetSize while ignoring the source capacity.

  Deck work is still needed to expose "useSourceCapacity" in the UI.

  Fix cross namespace server groups

* feat(provider/kubernetes): Register k8s moniker for manifests (spinnaker#1910)

* feat(provider/kubernetes): V2 cluster provider (spinnaker#1911)

* refactor(core): s/version/providerVersion (spinnaker#1914)

Having the account property named 'version' was confusing the concept of
the version the provider was at, with the version the cloud environment
was at.

* refactor(provider/kubernetes): Rename duplicate classes (spinnaker#1913)

* feat(moniker): Adds moniker to all clusters & server groups (spinnaker#1915)

* chore(javadocs): Fix lt usage (spinnaker#1916)

* feat(provider/kubernetes): Attach k8s annotation monikers to v2 (spinnaker#1917)

resources

* fix(aws): CopyLastAsgAtomicOperation instance monitoring.

When not explicitly specified, instance monitoring would default to true due to groovy truth casting a non
null object to true instead of traversing into its enabled attribute

* fix(web): Guard against not finding a ClusterProvider (spinnaker#1921)

* feat(search): add fallback query param to search (spinnaker#1912)

* in an effort to speed up searching, this adds logic that attempts to
pick a "good" value to use as a search query string rather than just
using the empty string and pulling all the keys for a given type.

* feat(provider/kubernetes): V2 Cluster details (spinnaker#1918)

* chore(provider/kubernetes): Use version 0.2.0 of client-java (spinnaker#1923)

* fix(provider/kubernetes): Advanced targetSize use case. (spinnaker#1920)

The elvis operator before was not evaluating truthiness correctly for a value
of 0. A User could and may want to deploy an update ReplicaSet of 0 and Scale
it later. Or perhaps it's bundled in a Spinnaker Pipeline with multiple Server
Groups and one of the Server Groups is scaled to 0. If the User is implementing
'useSourceCapacity' we would want that 0 value respected and not overwritten
with a value of 1.

The proposal is that the desired capacity trumps targetSize.  It's
reasonable to assume that someone who wants a targetSize of 0 would also
have a desired capacity of 0.  However, we shouldn't use the targetSize
if the desired capacity is greater than its value.

* refactor(provider/kubernetes): v2 cache view lives in cache package (spinnaker#1926)

* feat(provider/kubernetes): v2 cache network policies (spinnaker#1927)

* feat(provider/kubernetes): Build v2 creds based on context & kubeconfigFile (spinnaker#1925)

* feat(provider/kubernetes): Integrate moniker into v2 (spinnaker#1929)

* fix(provider/kubernetes): v2 guard against empty cache relationships (spinnaker#1932)

* fix(provider/kuberentes): v2 guard against non-existent clusters (spinnaker#1934)

* feat(moniker): adds moniker to server group view model (spinnaker#1936)

* feat(provider/kubernetes): Cache v2 resources as artifacts (spinnaker#1931)

* fix(all): Broken k8s server group lookup breaking all components (spinnaker#1937)

@lwander I'm merging for short term fix since everyone is affected. However see my question about returning null and whether there are other implications.

* feat(provider/google): Adds support for multiple named ports in load balancers. (spinnaker#1930)

* refactor(provider/kubernetes): refactor artifact gen (spinnaker#1938)

* feat(moniker): Adds moniker to pendingOnDemandResults (spinnaker#1940)

* fix(provider/google): Fix named port defaults in server group deploy. (spinnaker#1939)

* feat(moniker): Add monikers to security groups & load balancers (spinnaker#1941)

* feat(provider/google): Support connection draining for LBs (spinnaker#1943)

* fix(provider/gce): s/it/cacheData/ in zonal svg caching agent. (spinnaker#1944)

* feat(provider/docker): Added insecure registry support (spinnaker#1887)

* feat(provider/docker): Added insecure registry support

Added an insecureRegistry flag to clouddriver-docker registry
support that will skip SSL certificate validation.

This will allow for addressing spinnaker/halyard#680.

* Update DockerRegistryNamedAccountCredentials.groovy

* Update DockerRegistryClientSpec.groovy

* feat(appengine): Deploy from Google Cloud Storage [accounts]. (spinnaker#1935)

* fix(provider/docker): Assign proper Spinnaker/<version> user agent (spinnaker#1946)

* feat(provider/kubernetes): Properly version all versioned resources (spinnaker#1945)

* fix(rollbacks): support for tolerating some instance failures (spinnaker#1922)

* fix(provider/gce): Paginate server groups when calculating next name. (spinnaker#1948)

* fix(appengine): Dont assume storage.gce.enabled=true (spinnaker#1953)

* fix(provider/kubernetes): fix k8s client configuration and image id p… (spinnaker#1933)

* fix(provider/kubernetes): fix k8s client configuration and image id problem.

* (feat/cats) Add support for an error interval for clustered agent schedulers (spinnaker#1895)

* feat(search): cull missing ASGs before returning (spinnaker#1951)

* removes ASGs that show up in the search results from the redis cache
but don't actually exist.

* fix(provider/kubernetes): Fixed an issue with jobProvider failing out other providers. (spinnaker#1690)

* fix(provider/dcos): fix cluster provider to guard against errors from invalid ids (spinnaker#1928)

* feat(core): Add provider version to creds controller (spinnaker#1958)

* feat(appengine): Add AppengineStorageController to list accounts (spinnaker#1957)

* chore(provider/kubernetes): Bump client to 1.0.0-beta1 (spinnaker#1961)

* fix(provider/kubernetes): v1 client call to list pods (spinnaker#1963)

* fix(provider/aws): Return load balancers for all target groups associated with an application (spinnaker#1955)

* refactor(provider/kubernetes): V2 deploy 1 manifest at a time (spinnaker#1965)

* feat(provider/gae): Modify deploy description and validators for artifacts. (spinnaker#1966)

* feat(provider/kubernetes): Feature-flag debug mode (spinnaker#1968)

* fix(provider/kubernetes): Don't store-unowned artifacts (spinnaker#1969)

* feat(provider/kuberentes): Application provider (spinnaker#1971)

* fix(provider/aws): fix issue with VPCZoneIdentifier containing deleted subnets (spinnaker#1972)

* chore(provider/docker): Only log trailing whitespace warning during failure (spinnaker#1973)

* feat(provider/kubernetes): V2 cluster provider finishing touches (spinnaker#1974)

* fix(provider/aws): Allow updating healthy threshold count on target groups (spinnaker#1977)

* feat(moniker): Add getServerGroup endpoint that does not require application name. (spinnaker#1967)

* feat(provider/kubernetes): v2 instance counts (spinnaker#1975)

* feat(provider/kuberentes): Register kind mapping using autowired deploy (spinnaker#1978)

* refactor(provider/kubernetes): Move manifest desc. into package (spinnaker#1979)

* refactor(provider/kubernetes): Move ops w/ kind into v1 only (spinnaker#1980)

* feat(provider/kubernetes): Support resize statefulset operation. (spinnaker#1976)

* feat(dynomite): hashtags & dynomite pipelines (spinnaker#1832)

* refactor(provider/google): Rely on cached instance details instead of calling platform MIG.listInstances() api. (spinnaker#1983)

* feat(provider/amazon): Create app elb specific security group for new ELBs (spinnaker#1982)

- Autocreate elb security group and ingress on application security group

* feat(core/search): Improve search speed: faster validation that search keys exists (spinnaker#1984)

* feat(provider/kubernetes): Support resize operations (spinnaker#1981)

* feat(provider/kubernetes): V2 instance state (spinnaker#1986)

* fix(provider/kubernetes): Fix v2 operation converter (spinnaker#1987)

* feat(provider/gce): Replace instanceTemplate get with list call. (spinnaker#1990)

* refactor(provider/kubernetes): use deployed names in result (spinnaker#1989)

* fix(core): Support the eviction of stale cache key identifiers (spinnaker#1985)

This PR attempts to clean up situations where the `:members` set for a
given cached type contains keys that no longer exist.

In particular, a `CachingAgent` can optionally return a pattern glob for
each authoritative type.

Any `:members` key matching the pattern glob BUT not included in the
most recent caching cycle will be evicted.

This has been enabled on a select few `aws` caching agents.

* fix(aws): Do not do stale key evictions of amazon load balancers (spinnaker#1993)

Seeing some mixed results when application/network and classic load
balancers are being used.

* feat(provider/kubernetes): v2 on-demand manifest caching (spinnaker#1988)

* feat(provider/aws): add executionId to user-agent for cloudtrail (spinnaker#1992)

* fix(aws): Enable stale key evictions for amazon load balancers (spinnaker#1994)

Key structures vary between classic and application/networking load
balancers.

* feat(provider/kubernetes): Re-encode api types (spinnaker#1991)

* feat(logging) compile logstashEncoder for json logging (spinnaker#1995)

* fix(provider/gae): Set path correct when application root non-empty. (spinnaker#1970)

* chore(dependencies): Bump spinnaker-dependencies to 0.115.0. (spinnaker#1996)

* fix hidden exception while pulling docker tags (spinnaker#1708)

* fix(provider/kubernetes): reads correct fields from cache refresh (spinnaker#1998)

* feat(provider/kubernetes): v2 delete operation (spinnaker#1999)

* feat(provider/dcos): Adding proxy for marathon-client to make use of spectator. (spinnaker#1960)

* fix(appengine): fix deploy failures (spinnaker#2001)

* feat(provider/kubernetes): Supply app name in attributes (spinnaker#2003)

* feat(provider/kuberentes): implement capacity (spinnaker#2004)

* feat(cats): Adding cache gzip compression (spinnaker#2000)

* feat(provider/kubernetes): Update deployable's patch behavior (spinnaker#2006)

* feat(provider/kubernetes): Show more in the error message (spinnaker#2007)

* feat(provider/kubernetes): V2 Cache services (spinnaker#2009)

* fix(web): Fixing missing property exception (spinnaker#2008)

* fix(cats): Get bytes in consistent chatset during decompress (spinnaker#2010)

* fix(cats): Remove use of unmodifiable collections (spinnaker#2011)

* feat(provider/kubernetes): cache non-obvious relationship (spinnaker#2012)

* feat(provider/kubernetes): load balancer -> sg relationship (spinnaker#2013)

* refactor(aws): Simplified ELB security group autocreation (spinnaker#1997)

- updated code that allows ingress from elb group to app security group

* fix(provider/gae): Delete gcs target directory in deploy. (spinnaker#2015)

* fix(provider/gae): Delete gcs target directory in deploy.

* fix(storage): Change the storage account endpoint to '/storage'.

* feat(provider/kubernetes): Enable setting of labels on k8s Service objects spinnaker/spinnaker#2035 (spinnaker#2014)

* fix(provider/kubernetes): allows dots in secretNames (spinnaker#2017)

The kubernetes api allows dots in secret names:
https://github.com/kubernetes/kubernetes/blob/e5ac41331119bb8c67004b8efaa0c3d942b31d3a/pkg/api/validation/validation.go#L160-L162
https://github.com/kubernetes/kubernetes/blob/8d7d7a5e0d4d7e75f5a860574346944b8cc0fc43/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go#L126-L142
https://github.com/kubernetes/kubernetes/blob/e5ac41331119bb8c67004b8efaa0c3d942b31d3a/pkg/api/validation/validation.go#L1488
This allows dots in the secretName field of volume source definitions.

* perf(cluster): Avoid prematurely fetching full server groups (spinnaker#2019)

This is an optimization for fetching target server groups by `CURRENT`,
`PREVIOUS`, `OLDEST` and `FAIL`.

For these strategies, the unexpanded server group is sufficient to
narrow down to a match.

Once a match is found, _only_ that server group will be expanded.

This only works for cluster providers that support loading both
expanded and unexpanded server groups (ie. aws). The behavior for other
providers should be unchanged.

* fix(aws): Fix NPE in elb group autocreation (spinnaker#2020)

- fixed NPE due to missing credentials in security group description request

* feat(provider/kubernetes): Enable annotations, labels and secrets for security groups (aka ingress resources) (spinnaker#2000) (spinnaker#2005)

* feat(google): Instrument individual google API calls. (spinnaker#2016)

* fix(cats): Remove unmodifiable collections from modifiable codepaths (spinnaker#2022)

* fix(provider/gce): Fix broken deploys with namedPorts. (spinnaker#2023)

* fix(aws): Only autocreate app elb security group on Create (spinnaker#2025)

- Updated to only auto create <appname>-elb group for new ELBs

* feat(provider/aws): Support specifying explicit subnet ids for deploy (spinnaker#2026)

Expectation is that a `subnetType` will still be provided and that
`subnetIds` will be a subnet of those valid for `subnetType`.

When explicit subnet ids are provided (or inherited), the newly created
server group will be tagged with:

`SPINNAKER_SUBNET_ID_OVERRIDE`: `"comma-separated list of subnet ids"`

* fix(provider/gce): Paginate instance template list in svg caching. (spinnaker#2027)

* fix(eureka): fix instanceId on eureka caching

The instanceId was intended to be the value in dataCenterInfo.metadata but due to some
Jackson behaviour the top level instanceId from the discovery registration was written
over the dataCenterInfo.metadata during deserialization.

This changes to explicitly handle the top level instanceId value in the JsonCreator factory
method to prevent the unhandled property behaviour from kicking in.

* Merged upstream, updated AbstractEcsCachingAgent and Keys.java
BrunoCarrier added a commit to lookout/clouddriver that referenced this pull request Oct 26, 2017
* feat(provider/kubernetes): Add spectator to v2 client (spinnaker#1866)

* refactor(provider/kubernetes): Share caching agent abstraction (spinnaker#1865)

* feat(provider/kubernetes): Fix on demand caching (spinnaker#1870)

* chore(provider/kubernetes): On demand caching tests (spinnaker#1871)

* feat(provider/kuberenetes): V2 deployments (spinnaker#1868)

* feat(provider/kubernetes): Cache arbitrary resource (spinnaker#1873)

* feat(search): update application search (spinnaker#1875)

* add ability to pass search filters down to application searching in
front50.

* Additional fix for issue 1632, not able to find AMI with encrypted snapshots in target/managed account (spinnaker#1846)

* docs(intellij): Describe how to enable lombok in intellij (spinnaker#1869)

I figured we'd add a quick one-line how-to for getting gradle to build your intellij project too.

* feat(provider/kubernetes): Infer relationships from ownerReference (spinnaker#1876)

* feat(provider/kubernetes): Infer relationships from ownerReference

* feat(provider/kubernetes): Cache ancillary resources

* feat(search): add filters to project search (spinnaker#1878)

* feat(provider/ecs): Made EcsCloudProvider public (spinnaker#1848)

* feat(provider/kubernetes): Cache pods (spinnaker#1879)

* feat(provider/kubernetes): Annotate templates as well (spinnaker#1880)

A number of k8s resources use a spec.template to deploy a managed
resource. These need to be annotated by Spinnaker as well.

* fix(aws/tags): ensure tag sync is always performed during allow launch

* fix(search): allow SearchProvider filter exclusion (spinnaker#1883)

* allows search providers to specify an exclusion list for filter keys
to optionally be removed before executing a search.

* feat(provider/aws): Remove ability to automatically remove dependencies when deleting a security group (spinnaker#1894)

* fix(provider/aws): trim whitespace when newlines are detected (spinnaker#1844)

* fix(google): Add statusCode tag to google API metrics (spinnaker#1886)

This also refactors all the tests involving google API metrics.

* fix(provider/kubernetes): Add missing credential props (spinnaker#1897)

* feat(provider/kubernetes): add daemon & stateful set support

*  fix(provider/aws): ensure STSAssumeRoleSessionCredentialsProvider get the right endpoint (spinnaker#1888)

* feat(provider/kubernetes): v2 generic on demand caching (spinnaker#1884)

* refactor(provider/kubernetes): v2 include api version in resource id (spinnaker#1901)

* feat(provider/docker): add catalogFile option (spinnaker#1890)

adds the `catalogFile` option to the Docker Registry provider. This is
an attempt to make it easier to use registries that don't support
`v2/_catalog` (which happens to be a lot). This file can be managed by
an external process. Each caching cycle, Clouddriver reads this file to
determine the list of repositories it should cache tags for.

the format of the `configFile` is:
```
{
  "repositories":[
    "library/nginx",
    "library/busybox"
  ]
}
```

* fix(provider/docker): fix client constructor (spinnaker#1903)

Bug introduced in `f70d6ea`. I updated the constructor to include
`catalogFile` but didn't update the constructor for those using
`password` and `passwordFile` configurations. This fixes that potential
issue.

* feat(provider/kubernetes): v2 Cache lb & scg relationships (spinnaker#1902)

* Revert " fix(provider/aws): ensure STSAssumeRoleSessionCredentialsProvider get the right endpoint (spinnaker#1888)" (spinnaker#1904)

This reverts commit 828fbb7.

* feat(provider/kubernetes): v2 version deployed manifests as resources (spinnaker#1905)

* refactor(provider/kubernetes): V2 swap kind & version in cache key (spinnaker#1907)

For consistency with naming & other resources.

* fix(provider/aws): Clone spot price if not explicitly specified. (spinnaker#1908)

* refactor(provider/kubernetes): Segregate k8s by provider version (spinnaker#1909)

* feat(provider/kubernetes): Add proper support for source capacity. (spinnaker#1906)

Fully addresses: spinnaker/spinnaker#1657

  Also accounts for the possibility that the user might want to set
  their own targetSize while ignoring the source capacity.

  Deck work is still needed to expose "useSourceCapacity" in the UI.

  Fix cross namespace server groups

* feat(provider/kubernetes): Register k8s moniker for manifests (spinnaker#1910)

* feat(provider/kubernetes): V2 cluster provider (spinnaker#1911)

* refactor(core): s/version/providerVersion (spinnaker#1914)

Having the account property named 'version' was confusing the concept of
the version the provider was at, with the version the cloud environment
was at.

* refactor(provider/kubernetes): Rename duplicate classes (spinnaker#1913)

* feat(moniker): Adds moniker to all clusters & server groups (spinnaker#1915)

* chore(javadocs): Fix lt usage (spinnaker#1916)

* feat(provider/kubernetes): Attach k8s annotation monikers to v2 (spinnaker#1917)

resources

* fix(aws): CopyLastAsgAtomicOperation instance monitoring.

When not explicitly specified, instance monitoring would default to true due to groovy truth casting a non
null object to true instead of traversing into its enabled attribute

* fix(web): Guard against not finding a ClusterProvider (spinnaker#1921)

* feat(search): add fallback query param to search (spinnaker#1912)

* in an effort to speed up searching, this adds logic that attempts to
pick a "good" value to use as a search query string rather than just
using the empty string and pulling all the keys for a given type.

* feat(provider/kubernetes): V2 Cluster details (spinnaker#1918)

* chore(provider/kubernetes): Use version 0.2.0 of client-java (spinnaker#1923)

* fix(provider/kubernetes): Advanced targetSize use case. (spinnaker#1920)

The elvis operator before was not evaluating truthiness correctly for a value
of 0. A User could and may want to deploy an update ReplicaSet of 0 and Scale
it later. Or perhaps it's bundled in a Spinnaker Pipeline with multiple Server
Groups and one of the Server Groups is scaled to 0. If the User is implementing
'useSourceCapacity' we would want that 0 value respected and not overwritten
with a value of 1.

The proposal is that the desired capacity trumps targetSize.  It's
reasonable to assume that someone who wants a targetSize of 0 would also
have a desired capacity of 0.  However, we shouldn't use the targetSize
if the desired capacity is greater than its value.

* refactor(provider/kubernetes): v2 cache view lives in cache package (spinnaker#1926)

* feat(provider/kubernetes): v2 cache network policies (spinnaker#1927)

* feat(provider/kubernetes): Build v2 creds based on context & kubeconfigFile (spinnaker#1925)

* feat(provider/kubernetes): Integrate moniker into v2 (spinnaker#1929)

* fix(provider/kubernetes): v2 guard against empty cache relationships (spinnaker#1932)

* fix(provider/kuberentes): v2 guard against non-existent clusters (spinnaker#1934)

* feat(moniker): adds moniker to server group view model (spinnaker#1936)

* feat(provider/kubernetes): Cache v2 resources as artifacts (spinnaker#1931)

* fix(all): Broken k8s server group lookup breaking all components (spinnaker#1937)

@lwander I'm merging for short term fix since everyone is affected. However see my question about returning null and whether there are other implications.

* feat(provider/google): Adds support for multiple named ports in load balancers. (spinnaker#1930)

* refactor(provider/kubernetes): refactor artifact gen (spinnaker#1938)

* feat(moniker): Adds moniker to pendingOnDemandResults (spinnaker#1940)

* fix(provider/google): Fix named port defaults in server group deploy. (spinnaker#1939)

* feat(moniker): Add monikers to security groups & load balancers (spinnaker#1941)

* feat(provider/google): Support connection draining for LBs (spinnaker#1943)

* fix(provider/gce): s/it/cacheData/ in zonal svg caching agent. (spinnaker#1944)

* feat(provider/docker): Added insecure registry support (spinnaker#1887)

* feat(provider/docker): Added insecure registry support

Added an insecureRegistry flag to clouddriver-docker registry
support that will skip SSL certificate validation.

This will allow for addressing spinnaker/halyard#680.

* Update DockerRegistryNamedAccountCredentials.groovy

* Update DockerRegistryClientSpec.groovy

* feat(appengine): Deploy from Google Cloud Storage [accounts]. (spinnaker#1935)

* fix(provider/docker): Assign proper Spinnaker/<version> user agent (spinnaker#1946)

* feat(provider/kubernetes): Properly version all versioned resources (spinnaker#1945)

* fix(rollbacks): support for tolerating some instance failures (spinnaker#1922)

* fix(provider/gce): Paginate server groups when calculating next name. (spinnaker#1948)

* fix(appengine): Dont assume storage.gce.enabled=true (spinnaker#1953)

* fix(provider/kubernetes): fix k8s client configuration and image id p… (spinnaker#1933)

* fix(provider/kubernetes): fix k8s client configuration and image id problem.

* (feat/cats) Add support for an error interval for clustered agent schedulers (spinnaker#1895)

* feat(search): cull missing ASGs before returning (spinnaker#1951)

* removes ASGs that show up in the search results from the redis cache
but don't actually exist.

* fix(provider/kubernetes): Fixed an issue with jobProvider failing out other providers. (spinnaker#1690)

* fix(provider/dcos): fix cluster provider to guard against errors from invalid ids (spinnaker#1928)

* feat(core): Add provider version to creds controller (spinnaker#1958)

* feat(appengine): Add AppengineStorageController to list accounts (spinnaker#1957)

* chore(provider/kubernetes): Bump client to 1.0.0-beta1 (spinnaker#1961)

* fix(provider/kubernetes): v1 client call to list pods (spinnaker#1963)

* fix(provider/aws): Return load balancers for all target groups associated with an application (spinnaker#1955)

* refactor(provider/kubernetes): V2 deploy 1 manifest at a time (spinnaker#1965)

* feat(provider/gae): Modify deploy description and validators for artifacts. (spinnaker#1966)

* feat(provider/kubernetes): Feature-flag debug mode (spinnaker#1968)

* fix(provider/kubernetes): Don't store-unowned artifacts (spinnaker#1969)

* feat(provider/kuberentes): Application provider (spinnaker#1971)

* fix(provider/aws): fix issue with VPCZoneIdentifier containing deleted subnets (spinnaker#1972)

* chore(provider/docker): Only log trailing whitespace warning during failure (spinnaker#1973)

* feat(provider/kubernetes): V2 cluster provider finishing touches (spinnaker#1974)

* fix(provider/aws): Allow updating healthy threshold count on target groups (spinnaker#1977)

* feat(moniker): Add getServerGroup endpoint that does not require application name. (spinnaker#1967)

* feat(provider/kubernetes): v2 instance counts (spinnaker#1975)

* feat(provider/kuberentes): Register kind mapping using autowired deploy (spinnaker#1978)

* refactor(provider/kubernetes): Move manifest desc. into package (spinnaker#1979)

* refactor(provider/kubernetes): Move ops w/ kind into v1 only (spinnaker#1980)

* feat(provider/kubernetes): Support resize statefulset operation. (spinnaker#1976)

* feat(dynomite): hashtags & dynomite pipelines (spinnaker#1832)

* refactor(provider/google): Rely on cached instance details instead of calling platform MIG.listInstances() api. (spinnaker#1983)

* feat(provider/amazon): Create app elb specific security group for new ELBs (spinnaker#1982)

- Autocreate elb security group and ingress on application security group

* feat(core/search): Improve search speed: faster validation that search keys exists (spinnaker#1984)

* feat(provider/kubernetes): Support resize operations (spinnaker#1981)

* feat(provider/kubernetes): V2 instance state (spinnaker#1986)

* fix(provider/kubernetes): Fix v2 operation converter (spinnaker#1987)

* feat(provider/gce): Replace instanceTemplate get with list call. (spinnaker#1990)

* refactor(provider/kubernetes): use deployed names in result (spinnaker#1989)

* fix(core): Support the eviction of stale cache key identifiers (spinnaker#1985)

This PR attempts to clean up situations where the `:members` set for a
given cached type contains keys that no longer exist.

In particular, a `CachingAgent` can optionally return a pattern glob for
each authoritative type.

Any `:members` key matching the pattern glob BUT not included in the
most recent caching cycle will be evicted.

This has been enabled on a select few `aws` caching agents.

* fix(aws): Do not do stale key evictions of amazon load balancers (spinnaker#1993)

Seeing some mixed results when application/network and classic load
balancers are being used.

* feat(provider/kubernetes): v2 on-demand manifest caching (spinnaker#1988)

* feat(provider/aws): add executionId to user-agent for cloudtrail (spinnaker#1992)

* fix(aws): Enable stale key evictions for amazon load balancers (spinnaker#1994)

Key structures vary between classic and application/networking load
balancers.

* feat(provider/kubernetes): Re-encode api types (spinnaker#1991)

* feat(logging) compile logstashEncoder for json logging (spinnaker#1995)

* fix(provider/gae): Set path correct when application root non-empty. (spinnaker#1970)

* chore(dependencies): Bump spinnaker-dependencies to 0.115.0. (spinnaker#1996)

* fix hidden exception while pulling docker tags (spinnaker#1708)

* fix(provider/kubernetes): reads correct fields from cache refresh (spinnaker#1998)

* feat(provider/kubernetes): v2 delete operation (spinnaker#1999)

* feat(provider/dcos): Adding proxy for marathon-client to make use of spectator. (spinnaker#1960)

* fix(appengine): fix deploy failures (spinnaker#2001)

* feat(provider/kubernetes): Supply app name in attributes (spinnaker#2003)

* feat(provider/kuberentes): implement capacity (spinnaker#2004)

* feat(cats): Adding cache gzip compression (spinnaker#2000)

* feat(provider/kubernetes): Update deployable's patch behavior (spinnaker#2006)

* feat(provider/kubernetes): Show more in the error message (spinnaker#2007)

* feat(provider/kubernetes): V2 Cache services (spinnaker#2009)

* fix(web): Fixing missing property exception (spinnaker#2008)

* fix(cats): Get bytes in consistent chatset during decompress (spinnaker#2010)

* fix(cats): Remove use of unmodifiable collections (spinnaker#2011)

* feat(provider/kubernetes): cache non-obvious relationship (spinnaker#2012)

* feat(provider/kubernetes): load balancer -> sg relationship (spinnaker#2013)

* refactor(aws): Simplified ELB security group autocreation (spinnaker#1997)

- updated code that allows ingress from elb group to app security group

* fix(provider/gae): Delete gcs target directory in deploy. (spinnaker#2015)

* fix(provider/gae): Delete gcs target directory in deploy.

* fix(storage): Change the storage account endpoint to '/storage'.

* feat(provider/kubernetes): Enable setting of labels on k8s Service objects spinnaker/spinnaker#2035 (spinnaker#2014)

* fix(provider/kubernetes): allows dots in secretNames (spinnaker#2017)

The kubernetes api allows dots in secret names:
https://github.com/kubernetes/kubernetes/blob/e5ac41331119bb8c67004b8efaa0c3d942b31d3a/pkg/api/validation/validation.go#L160-L162
https://github.com/kubernetes/kubernetes/blob/8d7d7a5e0d4d7e75f5a860574346944b8cc0fc43/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go#L126-L142
https://github.com/kubernetes/kubernetes/blob/e5ac41331119bb8c67004b8efaa0c3d942b31d3a/pkg/api/validation/validation.go#L1488
This allows dots in the secretName field of volume source definitions.

* perf(cluster): Avoid prematurely fetching full server groups (spinnaker#2019)

This is an optimization for fetching target server groups by `CURRENT`,
`PREVIOUS`, `OLDEST` and `FAIL`.

For these strategies, the unexpanded server group is sufficient to
narrow down to a match.

Once a match is found, _only_ that server group will be expanded.

This only works for cluster providers that support loading both
expanded and unexpanded server groups (ie. aws). The behavior for other
providers should be unchanged.

* fix(aws): Fix NPE in elb group autocreation (spinnaker#2020)

- fixed NPE due to missing credentials in security group description request

* feat(provider/kubernetes): Enable annotations, labels and secrets for security groups (aka ingress resources) (spinnaker#2000) (spinnaker#2005)

* feat(google): Instrument individual google API calls. (spinnaker#2016)

* fix(cats): Remove unmodifiable collections from modifiable codepaths (spinnaker#2022)

* fix(provider/gce): Fix broken deploys with namedPorts. (spinnaker#2023)

* fix(aws): Only autocreate app elb security group on Create (spinnaker#2025)

- Updated to only auto create <appname>-elb group for new ELBs

* feat(provider/aws): Support specifying explicit subnet ids for deploy (spinnaker#2026)

Expectation is that a `subnetType` will still be provided and that
`subnetIds` will be a subnet of those valid for `subnetType`.

When explicit subnet ids are provided (or inherited), the newly created
server group will be tagged with:

`SPINNAKER_SUBNET_ID_OVERRIDE`: `"comma-separated list of subnet ids"`

* fix(provider/gce): Paginate instance template list in svg caching. (spinnaker#2027)

* fix(eureka): fix instanceId on eureka caching

The instanceId was intended to be the value in dataCenterInfo.metadata but due to some
Jackson behaviour the top level instanceId from the discovery registration was written
over the dataCenterInfo.metadata during deserialization.

This changes to explicitly handle the top level instanceId value in the JsonCreator factory
method to prevent the unhandled property behaviour from kicking in.

* target group is now a string, instead of an array of strigns
BrunoCarrier added a commit to lookout/clouddriver that referenced this pull request Nov 6, 2017
* feat(provider/kubernetes): Add spectator to v2 client (spinnaker#1866)

* refactor(provider/kubernetes): Share caching agent abstraction (spinnaker#1865)

* feat(provider/kubernetes): Fix on demand caching (spinnaker#1870)

* chore(provider/kubernetes): On demand caching tests (spinnaker#1871)

* feat(provider/kuberenetes): V2 deployments (spinnaker#1868)

* feat(provider/kubernetes): Cache arbitrary resource (spinnaker#1873)

* feat(search): update application search (spinnaker#1875)

* add ability to pass search filters down to application searching in
front50.

* Additional fix for issue 1632, not able to find AMI with encrypted snapshots in target/managed account (spinnaker#1846)

* docs(intellij): Describe how to enable lombok in intellij (spinnaker#1869)

I figured we'd add a quick one-line how-to for getting gradle to build your intellij project too.

* feat(provider/kubernetes): Infer relationships from ownerReference (spinnaker#1876)

* feat(provider/kubernetes): Infer relationships from ownerReference

* feat(provider/kubernetes): Cache ancillary resources

* feat(search): add filters to project search (spinnaker#1878)

* feat(provider/ecs): Made EcsCloudProvider public (spinnaker#1848)

* feat(provider/kubernetes): Cache pods (spinnaker#1879)

* feat(provider/kubernetes): Annotate templates as well (spinnaker#1880)

A number of k8s resources use a spec.template to deploy a managed
resource. These need to be annotated by Spinnaker as well.

* fix(aws/tags): ensure tag sync is always performed during allow launch

* fix(search): allow SearchProvider filter exclusion (spinnaker#1883)

* allows search providers to specify an exclusion list for filter keys
to optionally be removed before executing a search.

* feat(provider/aws): Remove ability to automatically remove dependencies when deleting a security group (spinnaker#1894)

* fix(provider/aws): trim whitespace when newlines are detected (spinnaker#1844)

* fix(google): Add statusCode tag to google API metrics (spinnaker#1886)

This also refactors all the tests involving google API metrics.

* fix(provider/kubernetes): Add missing credential props (spinnaker#1897)

* feat(provider/kubernetes): add daemon & stateful set support

*  fix(provider/aws): ensure STSAssumeRoleSessionCredentialsProvider get the right endpoint (spinnaker#1888)

* feat(provider/kubernetes): v2 generic on demand caching (spinnaker#1884)

* refactor(provider/kubernetes): v2 include api version in resource id (spinnaker#1901)

* feat(provider/docker): add catalogFile option (spinnaker#1890)

adds the `catalogFile` option to the Docker Registry provider. This is
an attempt to make it easier to use registries that don't support
`v2/_catalog` (which happens to be a lot). This file can be managed by
an external process. Each caching cycle, Clouddriver reads this file to
determine the list of repositories it should cache tags for.

the format of the `configFile` is:
```
{
  "repositories":[
    "library/nginx",
    "library/busybox"
  ]
}
```

* fix(provider/docker): fix client constructor (spinnaker#1903)

Bug introduced in `f70d6ea`. I updated the constructor to include
`catalogFile` but didn't update the constructor for those using
`password` and `passwordFile` configurations. This fixes that potential
issue.

* feat(provider/kubernetes): v2 Cache lb & scg relationships (spinnaker#1902)

* Revert " fix(provider/aws): ensure STSAssumeRoleSessionCredentialsProvider get the right endpoint (spinnaker#1888)" (spinnaker#1904)

This reverts commit 828fbb7.

* feat(provider/kubernetes): v2 version deployed manifests as resources (spinnaker#1905)

* refactor(provider/kubernetes): V2 swap kind & version in cache key (spinnaker#1907)

For consistency with naming & other resources.

* fix(provider/aws): Clone spot price if not explicitly specified. (spinnaker#1908)

* refactor(provider/kubernetes): Segregate k8s by provider version (spinnaker#1909)

* feat(provider/kubernetes): Add proper support for source capacity. (spinnaker#1906)

Fully addresses: spinnaker/spinnaker#1657

  Also accounts for the possibility that the user might want to set
  their own targetSize while ignoring the source capacity.

  Deck work is still needed to expose "useSourceCapacity" in the UI.

  Fix cross namespace server groups

* feat(provider/kubernetes): Register k8s moniker for manifests (spinnaker#1910)

* feat(provider/kubernetes): V2 cluster provider (spinnaker#1911)

* refactor(core): s/version/providerVersion (spinnaker#1914)

Having the account property named 'version' was confusing the concept of
the version the provider was at, with the version the cloud environment
was at.

* refactor(provider/kubernetes): Rename duplicate classes (spinnaker#1913)

* feat(moniker): Adds moniker to all clusters & server groups (spinnaker#1915)

* chore(javadocs): Fix lt usage (spinnaker#1916)

* feat(provider/kubernetes): Attach k8s annotation monikers to v2 (spinnaker#1917)

resources

* fix(aws): CopyLastAsgAtomicOperation instance monitoring.

When not explicitly specified, instance monitoring would default to true due to groovy truth casting a non
null object to true instead of traversing into its enabled attribute

* fix(web): Guard against not finding a ClusterProvider (spinnaker#1921)

* feat(search): add fallback query param to search (spinnaker#1912)

* in an effort to speed up searching, this adds logic that attempts to
pick a "good" value to use as a search query string rather than just
using the empty string and pulling all the keys for a given type.

* feat(provider/kubernetes): V2 Cluster details (spinnaker#1918)

* chore(provider/kubernetes): Use version 0.2.0 of client-java (spinnaker#1923)

* fix(provider/kubernetes): Advanced targetSize use case. (spinnaker#1920)

The elvis operator before was not evaluating truthiness correctly for a value
of 0. A User could and may want to deploy an update ReplicaSet of 0 and Scale
it later. Or perhaps it's bundled in a Spinnaker Pipeline with multiple Server
Groups and one of the Server Groups is scaled to 0. If the User is implementing
'useSourceCapacity' we would want that 0 value respected and not overwritten
with a value of 1.

The proposal is that the desired capacity trumps targetSize.  It's
reasonable to assume that someone who wants a targetSize of 0 would also
have a desired capacity of 0.  However, we shouldn't use the targetSize
if the desired capacity is greater than its value.

* refactor(provider/kubernetes): v2 cache view lives in cache package (spinnaker#1926)

* feat(provider/kubernetes): v2 cache network policies (spinnaker#1927)

* feat(provider/kubernetes): Build v2 creds based on context & kubeconfigFile (spinnaker#1925)

* feat(provider/kubernetes): Integrate moniker into v2 (spinnaker#1929)

* fix(provider/kubernetes): v2 guard against empty cache relationships (spinnaker#1932)

* fix(provider/kuberentes): v2 guard against non-existent clusters (spinnaker#1934)

* feat(moniker): adds moniker to server group view model (spinnaker#1936)

* feat(provider/kubernetes): Cache v2 resources as artifacts (spinnaker#1931)

* fix(all): Broken k8s server group lookup breaking all components (spinnaker#1937)

@lwander I'm merging for short term fix since everyone is affected. However see my question about returning null and whether there are other implications.

* feat(provider/google): Adds support for multiple named ports in load balancers. (spinnaker#1930)

* refactor(provider/kubernetes): refactor artifact gen (spinnaker#1938)

* feat(moniker): Adds moniker to pendingOnDemandResults (spinnaker#1940)

* fix(provider/google): Fix named port defaults in server group deploy. (spinnaker#1939)

* feat(moniker): Add monikers to security groups & load balancers (spinnaker#1941)

* feat(provider/google): Support connection draining for LBs (spinnaker#1943)

* fix(provider/gce): s/it/cacheData/ in zonal svg caching agent. (spinnaker#1944)

* feat(provider/docker): Added insecure registry support (spinnaker#1887)

* feat(provider/docker): Added insecure registry support

Added an insecureRegistry flag to clouddriver-docker registry
support that will skip SSL certificate validation.

This will allow for addressing spinnaker/halyard#680.

* Update DockerRegistryNamedAccountCredentials.groovy

* Update DockerRegistryClientSpec.groovy

* feat(appengine): Deploy from Google Cloud Storage [accounts]. (spinnaker#1935)

* fix(provider/docker): Assign proper Spinnaker/<version> user agent (spinnaker#1946)

* feat(provider/kubernetes): Properly version all versioned resources (spinnaker#1945)

* fix(rollbacks): support for tolerating some instance failures (spinnaker#1922)

* fix(provider/gce): Paginate server groups when calculating next name. (spinnaker#1948)

* fix(appengine): Dont assume storage.gce.enabled=true (spinnaker#1953)

* fix(provider/kubernetes): fix k8s client configuration and image id p… (spinnaker#1933)

* fix(provider/kubernetes): fix k8s client configuration and image id problem.

* (feat/cats) Add support for an error interval for clustered agent schedulers (spinnaker#1895)

* feat(search): cull missing ASGs before returning (spinnaker#1951)

* removes ASGs that show up in the search results from the redis cache
but don't actually exist.

* fix(provider/kubernetes): Fixed an issue with jobProvider failing out other providers. (spinnaker#1690)

* fix(provider/dcos): fix cluster provider to guard against errors from invalid ids (spinnaker#1928)

* feat(core): Add provider version to creds controller (spinnaker#1958)

* feat(appengine): Add AppengineStorageController to list accounts (spinnaker#1957)

* chore(provider/kubernetes): Bump client to 1.0.0-beta1 (spinnaker#1961)

* fix(provider/kubernetes): v1 client call to list pods (spinnaker#1963)

* fix(provider/aws): Return load balancers for all target groups associated with an application (spinnaker#1955)

* refactor(provider/kubernetes): V2 deploy 1 manifest at a time (spinnaker#1965)

* feat(provider/gae): Modify deploy description and validators for artifacts. (spinnaker#1966)

* feat(provider/kubernetes): Feature-flag debug mode (spinnaker#1968)

* fix(provider/kubernetes): Don't store-unowned artifacts (spinnaker#1969)

* feat(provider/kuberentes): Application provider (spinnaker#1971)

* fix(provider/aws): fix issue with VPCZoneIdentifier containing deleted subnets (spinnaker#1972)

* chore(provider/docker): Only log trailing whitespace warning during failure (spinnaker#1973)

* feat(provider/kubernetes): V2 cluster provider finishing touches (spinnaker#1974)

* fix(provider/aws): Allow updating healthy threshold count on target groups (spinnaker#1977)

* feat(moniker): Add getServerGroup endpoint that does not require application name. (spinnaker#1967)

* feat(provider/kubernetes): v2 instance counts (spinnaker#1975)

* feat(provider/kuberentes): Register kind mapping using autowired deploy (spinnaker#1978)

* refactor(provider/kubernetes): Move manifest desc. into package (spinnaker#1979)

* refactor(provider/kubernetes): Move ops w/ kind into v1 only (spinnaker#1980)

* feat(provider/kubernetes): Support resize statefulset operation. (spinnaker#1976)

* feat(dynomite): hashtags & dynomite pipelines (spinnaker#1832)

* refactor(provider/google): Rely on cached instance details instead of calling platform MIG.listInstances() api. (spinnaker#1983)

* feat(provider/amazon): Create app elb specific security group for new ELBs (spinnaker#1982)

- Autocreate elb security group and ingress on application security group

* feat(core/search): Improve search speed: faster validation that search keys exists (spinnaker#1984)

* feat(provider/kubernetes): Support resize operations (spinnaker#1981)

* feat(provider/kubernetes): V2 instance state (spinnaker#1986)

* fix(provider/kubernetes): Fix v2 operation converter (spinnaker#1987)

* feat(provider/gce): Replace instanceTemplate get with list call. (spinnaker#1990)

* refactor(provider/kubernetes): use deployed names in result (spinnaker#1989)

* fix(core): Support the eviction of stale cache key identifiers (spinnaker#1985)

This PR attempts to clean up situations where the `:members` set for a
given cached type contains keys that no longer exist.

In particular, a `CachingAgent` can optionally return a pattern glob for
each authoritative type.

Any `:members` key matching the pattern glob BUT not included in the
most recent caching cycle will be evicted.

This has been enabled on a select few `aws` caching agents.

* fix(aws): Do not do stale key evictions of amazon load balancers (spinnaker#1993)

Seeing some mixed results when application/network and classic load
balancers are being used.

* feat(provider/kubernetes): v2 on-demand manifest caching (spinnaker#1988)

* feat(provider/aws): add executionId to user-agent for cloudtrail (spinnaker#1992)

* fix(aws): Enable stale key evictions for amazon load balancers (spinnaker#1994)

Key structures vary between classic and application/networking load
balancers.

* feat(provider/kubernetes): Re-encode api types (spinnaker#1991)

* feat(logging) compile logstashEncoder for json logging (spinnaker#1995)

* fix(provider/gae): Set path correct when application root non-empty. (spinnaker#1970)

* chore(dependencies): Bump spinnaker-dependencies to 0.115.0. (spinnaker#1996)

* fix hidden exception while pulling docker tags (spinnaker#1708)

* fix(provider/kubernetes): reads correct fields from cache refresh (spinnaker#1998)

* feat(provider/kubernetes): v2 delete operation (spinnaker#1999)

* feat(provider/dcos): Adding proxy for marathon-client to make use of spectator. (spinnaker#1960)

* fix(appengine): fix deploy failures (spinnaker#2001)

* feat(provider/kubernetes): Supply app name in attributes (spinnaker#2003)

* feat(provider/kuberentes): implement capacity (spinnaker#2004)

* feat(cats): Adding cache gzip compression (spinnaker#2000)

* feat(provider/kubernetes): Update deployable's patch behavior (spinnaker#2006)

* feat(provider/kubernetes): Show more in the error message (spinnaker#2007)

* feat(provider/kubernetes): V2 Cache services (spinnaker#2009)

* fix(web): Fixing missing property exception (spinnaker#2008)

* fix(cats): Get bytes in consistent chatset during decompress (spinnaker#2010)

* fix(cats): Remove use of unmodifiable collections (spinnaker#2011)

* feat(provider/kubernetes): cache non-obvious relationship (spinnaker#2012)

* feat(provider/kubernetes): load balancer -> sg relationship (spinnaker#2013)

* refactor(aws): Simplified ELB security group autocreation (spinnaker#1997)

- updated code that allows ingress from elb group to app security group

* fix(provider/gae): Delete gcs target directory in deploy. (spinnaker#2015)

* fix(provider/gae): Delete gcs target directory in deploy.

* fix(storage): Change the storage account endpoint to '/storage'.

* feat(provider/kubernetes): Enable setting of labels on k8s Service objects spinnaker/spinnaker#2035 (spinnaker#2014)

* fix(provider/kubernetes): allows dots in secretNames (spinnaker#2017)

The kubernetes api allows dots in secret names:
https://github.com/kubernetes/kubernetes/blob/e5ac41331119bb8c67004b8efaa0c3d942b31d3a/pkg/api/validation/validation.go#L160-L162
https://github.com/kubernetes/kubernetes/blob/8d7d7a5e0d4d7e75f5a860574346944b8cc0fc43/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go#L126-L142
https://github.com/kubernetes/kubernetes/blob/e5ac41331119bb8c67004b8efaa0c3d942b31d3a/pkg/api/validation/validation.go#L1488
This allows dots in the secretName field of volume source definitions.

* perf(cluster): Avoid prematurely fetching full server groups (spinnaker#2019)

This is an optimization for fetching target server groups by `CURRENT`,
`PREVIOUS`, `OLDEST` and `FAIL`.

For these strategies, the unexpanded server group is sufficient to
narrow down to a match.

Once a match is found, _only_ that server group will be expanded.

This only works for cluster providers that support loading both
expanded and unexpanded server groups (ie. aws). The behavior for other
providers should be unchanged.

* fix(aws): Fix NPE in elb group autocreation (spinnaker#2020)

- fixed NPE due to missing credentials in security group description request

* feat(provider/kubernetes): Enable annotations, labels and secrets for security groups (aka ingress resources) (spinnaker#2000) (spinnaker#2005)

* feat(google): Instrument individual google API calls. (spinnaker#2016)

* fix(cats): Remove unmodifiable collections from modifiable codepaths (spinnaker#2022)

* fix(provider/gce): Fix broken deploys with namedPorts. (spinnaker#2023)

* fix(aws): Only autocreate app elb security group on Create (spinnaker#2025)

- Updated to only auto create <appname>-elb group for new ELBs

* feat(provider/aws): Support specifying explicit subnet ids for deploy (spinnaker#2026)

Expectation is that a `subnetType` will still be provided and that
`subnetIds` will be a subnet of those valid for `subnetType`.

When explicit subnet ids are provided (or inherited), the newly created
server group will be tagged with:

`SPINNAKER_SUBNET_ID_OVERRIDE`: `"comma-separated list of subnet ids"`

* fix(provider/gce): Paginate instance template list in svg caching. (spinnaker#2027)

* fix(eureka): fix instanceId on eureka caching

The instanceId was intended to be the value in dataCenterInfo.metadata but due to some
Jackson behaviour the top level instanceId from the discovery registration was written
over the dataCenterInfo.metadata during deserialization.

This changes to explicitly handle the top level instanceId value in the JsonCreator factory
method to prevent the unhandled property behaviour from kicking in.

* Updating API for IAM role dropdown to work nicely with Deck
dkirillov added a commit to lookout/clouddriver that referenced this pull request Dec 5, 2017
* feat(core): Add provider version to creds controller (spinnaker#1958)

* feat(appengine): Add AppengineStorageController to list accounts (spinnaker#1957)

* chore(provider/kubernetes): Bump client to 1.0.0-beta1 (spinnaker#1961)

* fix(provider/kubernetes): v1 client call to list pods (spinnaker#1963)

* fix(provider/aws): Return load balancers for all target groups associated with an application (spinnaker#1955)

* refactor(provider/kubernetes): V2 deploy 1 manifest at a time (spinnaker#1965)

* feat(provider/gae): Modify deploy description and validators for artifacts. (spinnaker#1966)

* feat(provider/kubernetes): Feature-flag debug mode (spinnaker#1968)

* fix(provider/kubernetes): Don't store-unowned artifacts (spinnaker#1969)

* feat(provider/kuberentes): Application provider (spinnaker#1971)

* fix(provider/aws): fix issue with VPCZoneIdentifier containing deleted subnets (spinnaker#1972)

* chore(provider/docker): Only log trailing whitespace warning during failure (spinnaker#1973)

* feat(provider/kubernetes): V2 cluster provider finishing touches (spinnaker#1974)

* fix(provider/aws): Allow updating healthy threshold count on target groups (spinnaker#1977)

* feat(moniker): Add getServerGroup endpoint that does not require application name. (spinnaker#1967)

* feat(provider/kubernetes): v2 instance counts (spinnaker#1975)

* feat(provider/kuberentes): Register kind mapping using autowired deploy (spinnaker#1978)

* refactor(provider/kubernetes): Move manifest desc. into package (spinnaker#1979)

* refactor(provider/kubernetes): Move ops w/ kind into v1 only (spinnaker#1980)

* feat(provider/kubernetes): Support resize statefulset operation. (spinnaker#1976)

* feat(dynomite): hashtags & dynomite pipelines (spinnaker#1832)

* refactor(provider/google): Rely on cached instance details instead of calling platform MIG.listInstances() api. (spinnaker#1983)

* feat(provider/amazon): Create app elb specific security group for new ELBs (spinnaker#1982)

- Autocreate elb security group and ingress on application security group

* feat(core/search): Improve search speed: faster validation that search keys exists (spinnaker#1984)

* feat(provider/kubernetes): Support resize operations (spinnaker#1981)

* feat(provider/kubernetes): V2 instance state (spinnaker#1986)

* fix(provider/kubernetes): Fix v2 operation converter (spinnaker#1987)

* feat(provider/gce): Replace instanceTemplate get with list call. (spinnaker#1990)

* refactor(provider/kubernetes): use deployed names in result (spinnaker#1989)

* fix(core): Support the eviction of stale cache key identifiers (spinnaker#1985)

This PR attempts to clean up situations where the `:members` set for a
given cached type contains keys that no longer exist.

In particular, a `CachingAgent` can optionally return a pattern glob for
each authoritative type.

Any `:members` key matching the pattern glob BUT not included in the
most recent caching cycle will be evicted.

This has been enabled on a select few `aws` caching agents.

* fix(aws): Do not do stale key evictions of amazon load balancers (spinnaker#1993)

Seeing some mixed results when application/network and classic load
balancers are being used.

* feat(provider/kubernetes): v2 on-demand manifest caching (spinnaker#1988)

* feat(provider/aws): add executionId to user-agent for cloudtrail (spinnaker#1992)

* fix(aws): Enable stale key evictions for amazon load balancers (spinnaker#1994)

Key structures vary between classic and application/networking load
balancers.

* feat(provider/kubernetes): Re-encode api types (spinnaker#1991)

* feat(logging) compile logstashEncoder for json logging (spinnaker#1995)

* fix(provider/gae): Set path correct when application root non-empty. (spinnaker#1970)

* chore(dependencies): Bump spinnaker-dependencies to 0.115.0. (spinnaker#1996)

* fix hidden exception while pulling docker tags (spinnaker#1708)

* fix(provider/kubernetes): reads correct fields from cache refresh (spinnaker#1998)

* feat(provider/kubernetes): v2 delete operation (spinnaker#1999)

* feat(provider/dcos): Adding proxy for marathon-client to make use of spectator. (spinnaker#1960)

* fix(appengine): fix deploy failures (spinnaker#2001)

* feat(provider/kubernetes): Supply app name in attributes (spinnaker#2003)

* feat(provider/kuberentes): implement capacity (spinnaker#2004)

* feat(cats): Adding cache gzip compression (spinnaker#2000)

* feat(provider/kubernetes): Update deployable's patch behavior (spinnaker#2006)

* feat(provider/kubernetes): Show more in the error message (spinnaker#2007)

* feat(provider/kubernetes): V2 Cache services (spinnaker#2009)

* fix(web): Fixing missing property exception (spinnaker#2008)

* fix(cats): Get bytes in consistent chatset during decompress (spinnaker#2010)

* fix(cats): Remove use of unmodifiable collections (spinnaker#2011)

* feat(provider/kubernetes): cache non-obvious relationship (spinnaker#2012)

* feat(provider/kubernetes): load balancer -> sg relationship (spinnaker#2013)

* refactor(aws): Simplified ELB security group autocreation (spinnaker#1997)

- updated code that allows ingress from elb group to app security group

* fix(provider/gae): Delete gcs target directory in deploy. (spinnaker#2015)

* fix(provider/gae): Delete gcs target directory in deploy.

* fix(storage): Change the storage account endpoint to '/storage'.

* feat(provider/kubernetes): Enable setting of labels on k8s Service objects spinnaker/spinnaker#2035 (spinnaker#2014)

* fix(provider/kubernetes): allows dots in secretNames (spinnaker#2017)

The kubernetes api allows dots in secret names:
https://github.com/kubernetes/kubernetes/blob/e5ac41331119bb8c67004b8efaa0c3d942b31d3a/pkg/api/validation/validation.go#L160-L162
https://github.com/kubernetes/kubernetes/blob/8d7d7a5e0d4d7e75f5a860574346944b8cc0fc43/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go#L126-L142
https://github.com/kubernetes/kubernetes/blob/e5ac41331119bb8c67004b8efaa0c3d942b31d3a/pkg/api/validation/validation.go#L1488
This allows dots in the secretName field of volume source definitions.

* perf(cluster): Avoid prematurely fetching full server groups (spinnaker#2019)

This is an optimization for fetching target server groups by `CURRENT`,
`PREVIOUS`, `OLDEST` and `FAIL`.

For these strategies, the unexpanded server group is sufficient to
narrow down to a match.

Once a match is found, _only_ that server group will be expanded.

This only works for cluster providers that support loading both
expanded and unexpanded server groups (ie. aws). The behavior for other
providers should be unchanged.

* fix(aws): Fix NPE in elb group autocreation (spinnaker#2020)

- fixed NPE due to missing credentials in security group description request

* feat(provider/kubernetes): Enable annotations, labels and secrets for security groups (aka ingress resources) (spinnaker#2000) (spinnaker#2005)

* feat(google): Instrument individual google API calls. (spinnaker#2016)

* fix(cats): Remove unmodifiable collections from modifiable codepaths (spinnaker#2022)

* fix(provider/gce): Fix broken deploys with namedPorts. (spinnaker#2023)

* fix(aws): Only autocreate app elb security group on Create (spinnaker#2025)

- Updated to only auto create <appname>-elb group for new ELBs

* feat(provider/aws): Support specifying explicit subnet ids for deploy (spinnaker#2026)

Expectation is that a `subnetType` will still be provided and that
`subnetIds` will be a subnet of those valid for `subnetType`.

When explicit subnet ids are provided (or inherited), the newly created
server group will be tagged with:

`SPINNAKER_SUBNET_ID_OVERRIDE`: `"comma-separated list of subnet ids"`

* fix(provider/gce): Paginate instance template list in svg caching. (spinnaker#2027)

* fix(eureka): fix instanceId on eureka caching

The instanceId was intended to be the value in dataCenterInfo.metadata but due to some
Jackson behaviour the top level instanceId from the discovery registration was written
over the dataCenterInfo.metadata during deserialization.

This changes to explicitly handle the top level instanceId value in the JsonCreator factory
method to prevent the unhandled property behaviour from kicking in.

* feat(provider/kubernetes): use kubectl to handle deploy apply (spinnaker#2031)

* feat(core): Manifest provider (spinnaker#2032)

* fix(provider/kubernetes): fixes ClassCastException on resize operations (spinnaker#2024)

In what appears to be the absence of another v1 resize validator,
KubernetesResizeServerGroupValidator was being picked up which wasn't correctly
declaring its support for v2 only.

* feat(provider/kubernetes): v2 manifest provider (spinnaker#2033)

* chore(dependencies): Bump spinnaker-dependencies version and pin google (spinnaker#2036)

api client lib.

* feat(provider/kubernetes): support delete and update strategies opera… (spinnaker#2021)

* feat(provider/kubernetes): support delete and update strategies operation for new controllers.

* feat(provider/kubernetes): added partition and podManagementPolicy fields.

* feat(provider/kubernetes): added deletion parameters.

* feat(provider/kubernetes): fixed format problem and cleanup texts.

* fix(appengine): remove batch calls, revert client library (spinnaker#2037)

* refactor(provider/kubernetes): ignore api versions (spinnaker#2038)

* feat(provider/kubernetes): moniker status (spinnaker#2039)

* fix(startup): Kubernetes manifest provider autowired ambig bean (spinnaker#2040)

* fix(provider/aws): No-op ami tag update when no tags provided (spinnaker#2045)

The AWS `createTags` API requires at least one tag to be provided.

Rather than error out, let's just skip the update entirely and return
success.

* fix(provider/kubernetes): collectJob status ClassCastException (spinnaker#2029)

* fix(provider/kubernetes): allow to configure uwith service account. (spinnaker#2044)

* feat(provider/kubernetes): depend on kubectl where possible (spinnaker#2041)

* feat(provider/google): Support UHCs in L7 load balancers. (spinnaker#2030)

* fix(provider/gce): Fix GCE destroy backend calls on LB cache misses. (spinnaker#2048)

* Closed spinnaker#2072 - Implement GoogleExecutorTraits and wired in spectator. (spinnaker#2049)

* fix(amazon): do not copy location-specific policy actions cross-account (spinnaker#2046)

* Create README.md (spinnaker#2043)

* feat(provider/kubernetes): v2 load balancer provider (spinnaker#2050)

* fix(provider/kubernetes): v2 expire logical keys (spinnaker#2051)

* feat(provider/kubernetes): instance provider (spinnaker#2053)

* fix(javadoc): Load balancer provider typo (spinnaker#2054)

* fix(amazon/alb): Fix rule comparison so listeners do not get updated when they are the same (spinnaker#2047)

* fix(provider/gce): Fix NPE if no legacy health checks. (spinnaker#2057)

* feat(cats): dynomite version bump to stable (spinnaker#2056)

* fix(aws): Flagging elb security group autocreation (defaults to off)

- made auto creation of <appname>-elb group for new ELBs configurable
- defaulting to off

* refactor(artifacts): artifact config lives under artifacts (spinnaker#2059)

BREAKING CHANGE

* fix(provider/google): Cache and propagate GCE numeric instance id. (spinnaker#2058)

* fix(gce/defaults): instanceType vs. instance-type (spinnaker#2061)

* fix(amazon/alb): Reorder/refactor alb upsert to handle updating port and protocol (spinnaker#2062)

* perf(cluster): Optimize target/LARGEST lookups (spinnaker#2064)

If `ClusterProvider.supportsMinimalClusters()` is true, we can now sort and
filter on the set of unexpanded server groups.

Only the actual LARGEST server group will be expanded.

This offers significant savings for target/LARGEST lookups on
clusters with > 1 server group, particularly those containing _many_
instances.

A target/LARGEST lookup commonly occurs when doing a clone operation
with `useSourceCapacity` set to `true`.

* fix(provider/gce): Update L7 delete for UHCs. (spinnaker#2066)

* fix(provider/kubernetes): allow cache data to be serailized/deserialized (spinnaker#2052)

* fix(config): SpringApplicationBuilder().showBanner() does not exists in Spring Boot 1.4.1.RELEASE (spinnaker#2018)

* feat(cats): Add keyspaces support to dynomite backend (spinnaker#2042)

* feat(provider/ecs): ECS Account Credentials (spinnaker#2034)

* Added EcsCredentialsInitializer and supporting classes to enable the ECS module to have an Amazon ECS account.

* Created NetflixESCredentials.

* Typo in class name fixed.

* Rename EcsAccountMaker to EcsAccountBuilder, as well as the method.

* Test renamed.

* EcsAccountBuilderTest didn't refactor properly - fixed.

* Naming fixed.

* feat(provider/kubernetes): automatically configure caching agents (spinnaker#2067)

* feat(provider/kubernetes): v2 register pod handler (spinnaker#2069)

* feat(provider/kubernetes): register deployment caching agent (spinnaker#2070)

* fix(provider/openstack): Fix type error in LoadBalancerSummary (spinnaker#2071)

* fix(provider/kubernetes): Dedup kind map (spinnaker#2072)

* feat(provider/kubernetes): v2 statefulset support (spinnaker#2074)

* fix(provider/amazon): Only include non-terminating instances (spinnaker#2075)

When building a set of partial instances, only include those
that are not pending or in-service.

* fix(provider/amazon): Include partial instances iff includeDetails = false (spinnaker#2077)

No need to look at partial instances when instance relationships have
been populated.

Loosening the definition of a partial instance to be those that are
`InService` (was Inservice + Pending).

* fix(cats/redis): Don't hash ttl'd keys (spinnaker#2076)

The issue here is that when a key with a ttl is hashed, the hash
persists forever, even after the key disappears. The obvious fix would
be to associate the hash with a ttl as well, but as far as I can tell,
there is no good way to ensure that the hash will always expire
when/before the key does without introducing some subtle race.

There's not a lot of keys that do have a ttl, so I don't see this having
a large performance impact. It feels like the cleanest/most contained
way to deal with the problem described above.

* chore(gradle): Avoid running tests on master/release branch (spinnaker#2078)

* chore(provider/kubernetes): improve v2 cache logging (spinnaker#2079)

* fix(cats/dynomite): Don't hash ttl'd keys (spinnaker#2080)

* fix(provider/kubernetes): use location over namespace in op (spinnaker#2082)

* fix(provider/amazon): Commentary on when includePartialInstances = false (spinnaker#2081)

* fix(provider/gce): Distinguish instance id from gceId. (spinnaker#2084)

* feat(provider/kubernetes): check controller type for disable/enable operation (spinnaker#2068)

* feat(provider/kubernetes): check controller type for disable/enable oepration.

* feat(provider/kubernetes): change function name and minor code refactor.

* feat(provider/kubernetes): v2 ingress support (spinnaker#2085)

* perf(provider/gce): Replace L7 health check and backend service get() with list(). (spinnaker#2073)

* fix(core): Handle potentially null `.instances` when target/LARGEST (spinnaker#2086)

* feat(provider/kubernetes): allow users to skip creating pull secrets (spinnaker#2088)

* feat(provider/ecs): ECS Cache base classes (spinnaker#2065)

* Prep classes for the caching agents to come.

* Changes based on feedback.

* fix(provider/gce):Enable RPS when only RATE or UTILIZATION (spinnaker#2083)

* feat(provider/kubernetes): v2 cache namespaces & relationship (spinnaker#2087)

* feat(provider/kubernetes): V2 enable minimal clusters (spinnaker#2090)

* feat(provider/aws): Enable optional AWS Shield protection on ELB & ALBs (spinnaker#2089)

* feat(provider/amazon): block device config for c5 instance types (spinnaker#2092)

* fix(provider/gce): Ensure referenced instances exist during L4 delete. (spinnaker#2094)

* feat(provider/kubernetes): cache network policies (spinnaker#2095)

* feat(provider/kubernetes): v2 server group manager (spinnaker#2093)

* feat(provider/amazon): Optionally tag server groups w/ app/stack/details (spinnaker#2096)

Set `aws.defaults.addAppStackDetailTags: true` to enable.

When enabled, all created server groups will be tagged with:
- `spinnaker:application`
- `spinnaker:stack`
- `spinnaker:details`

The tag will only be created if the value is non-null.

By default, these tags will be propagated to launched instances.

* fix(provider/kubernetes): fix v2 instance lookup (spinnaker#2098)

* feat(provider/ecs): ECS Cluster caching classes and tests. (spinnaker#2091)

* ECS Cluster caching classes and tests.

* Base abstraction.

* feat(provider/kuberentes): v2 security group provider (spinnaker#2097)

* feat(provider/kubernetes): v2 pod logs (spinnaker#2099)

* fix(provider/kubernetes): security group yaml (spinnaker#2100)

add yaml field to KubernetesV1SecurityGroup so that the
"Show YAML" modal works in deck.

* feat(kubernetes/artifacts): Support deploying images dynamically (spinnaker#2102)

* fix(provider/kubernetes): docker is not a hard-dependency (spinnaker#2106)

* fix(provider/amazon): Do not delete listeners after updating them. Pretty bad idea. (spinnaker#2105)

* feat(provider/kubernetes): split out k8s providers (spinnaker#2107)

Needed to separate the search endpoints for each provider

* feat(provider/kubernetes): v2 search endpoint (spinnaker#2108)

* feat(provider/kubernetes): Allow op to override versioning (spinnaker#2110)

* feat(provider/kubernetes): Add kubectl to Dockerfile. (spinnaker#2104)

* fix(provider/gce): Handle partially-formed L7 LB resources properly. (spinnaker#2111)

* fix(provider/kubernetes): fix application key parsing (spinnaker#2109)

* perf(provider/gce): s/get/list/ in ILB caching agent. (spinnaker#2112)

A few small fixes/guards to the L7 caching agent as well.

* feat(provider/kubernetes): remove dependency on api-client (spinnaker#2113)

* feat(provider/kubernetes): reenable kube monitoring (spinnaker#2115)

* feat(core/search): Add parameter for fetching a batch of servergroups by name (spinnaker#2114)

* fix(provider/gce): Fix TCP LB disabled state calculation. (spinnaker#2116)

* perf(provider/gce): s/get/list/ in TCP/SSL LB caching agents. (spinnaker#2117)

* feat(provider/kubernetes): v2 rollback (undo rollout) (spinnaker#2118)

* feat(provider/kubernetes): scale manifest (spinnaker#2119)

* feat(provider/kubernetes): k8s only search provider (spinnaker#2121)

* fix(docker): Use wget instead of curl (spinnaker#2122)

* fix(provider/kubernetes): read namespace as region (spinnaker#2123)

* feat(provider/kuberentes): pause rollout (spinnaker#2120)

* feat(provider/kuberentes): v2 non-enum k8s kinds (spinnaker#2125)

* feat(provider/kubernetes): search result hydrators (spinnaker#2124)

* feat(provider/kubernetes): resume rollout (spinnaker#2126)

* fix(provider/kubernetes): v2 fix cred validation (spinnaker#2129)

* fix(perf): Avoid manually copying bytes between streams (spinnaker#2127)

* fix(provider/kubernetes): autowire correct objectmapper (spinnaker#2133)

* fix(provider/kubernetes): attach correct op decorators (spinnaker#2130)

* fix(provider/kubernetes): switch access modifiers for KubernetesKind constructors (spinnaker#2128)

* feat(provider/kubernetes): runJob multi-container (spinnaker#2135)

support multiple containers in the run job description. we have to
support both `container` and `containers` until we can deprecate the
`container` field since the current defs are all using `container`.

* feat(entitytags): Support indexing / searching by application (spinnaker#2132)

If `entityRef.application` is not explicitly provided, it will be
parsed from `entityRef.entityId` using frigga conventions.

Searching by application can be accomplished by
`/tags?application=my_application`

* fix(provider/gce): Tolerate named port values as Doubles. (spinnaker#2137)

Pipelines are being persisted with 'port' values of NamedPorts as
Doubles. This is an issue. This change tolerates that behavior in deploys
since users will have pipelines with Double ports in the wild.

* fix(provider/dcos): Use createApp instead of updateApp for deploy (spinnaker#2136)

* fix(provider/dcos): Set container type appropriately.

* fix(provider/dcos): use createApp instead of updateApp for deploy

* fix(provider/dcos): Remove dcos client proxy exception wrapping

* Added tests for Keys. Changed separator. (spinnaker#2101)

* fix(provider/kubernetes): fix security group loading by name (spinnaker#2134)

* fix(kubectl): --to-revision (spinnaker#2140)

* feat(provider/kubernetes): allow OAuth token authentication (spinnaker#2147)

* refactor(provider/openstack): Updated openstack4j to 3.1.0 and removed components that are available upstream (spinnaker#2103)

* fix(elasticsearch): Force refresh when fetching entity tags from Front50 (spinnaker#2149)

`elasticsearch_index_template.json` is the index template that
should be applied in elastic search.

* fix(provider/aws): Fix updating ALB listeners (spinnaker#2148)

* feat(provider/google): Label instances so they can easily be grouped later. (spinnaker#2142)

* feat(provider/kubernetes): more robust status (spinnaker#2152)

* feat(provider/kubernetes): default to frigga (spinnaker#2156)

* feat(provider/kubernetes): v2 configmap support (spinnaker#2157)

* feat(provider/kuberentes): send deployed artifact to orca (spinnaker#2158)

* feat(provider/kubernetes): v2 support secrets (spinnaker#2159)

* feat(provider/kubernetes): register docker image replacers (spinnaker#2160)

* feat(provider/kubernetes): v1 pod logs (spinnaker#2162)

support pod logs for v1 provider. going to be useful when working on run
job logs as well.

* feat(provider/kubernetes): v2 support daemonset (spinnaker#2161)

* fix(provider/gce): Tolerate failed backend service getHealth() calls. (spinnaker#2153)

* fix(provider/gce): Break out labels. (spinnaker#2163)

* fix(provider/aws): Should use edda to lookup target groups by name (spinnaker#2165)

* ECS Container Instance caching classes and tests. (spinnaker#2143)

* fix(provider/aws): Remove invalid `spinnaker:` tags (spinnaker#2168)

Remove any `spinnaker:*` tags that are no longer valid (ie. cloning
across stacks and `spinnaker:stack` no longer points at the correct
stack).

This is necessary as `deck` will _now_ supply existing tags when cloning.

* feat(provider/kubernetes): runJob logs (spinnaker#2164)

add support for capturing logs as part of `collectJob`. logs are added
to the job status. i'm not sure how well this scales as log size grows
so this may not be the best implementation, but it may work for the
short term. since execution details are persisted to volitile storage
storing them with the jobs status is best since the reference to the job
pod is also stored there.

* refactor(cf): Stop building CF provider until maintainer is found (spinnaker#1942)

BREAKING CHANGE: Stops support of CF until maintainer is found

* bug(provider/openstack) - LoadBalancer security groups are optional. (spinnaker#2154)

* chore(dependencies): Bump to 0.123.0 (spinnaker#2169)

* feat(provider/kubernetes): load artifacts alongside manifest (spinnaker#2166)

* refactor(provider/kubernetes): allow api version subclassing (spinnaker#2167)

* chore(jobs): turn down log-level (spinnaker#2171)

* fix(web): Do not throw exception when sg not found (spinnaker#2172)

* feat(provider/ecs): ECS Task Definition caching classes and tests. (spinnaker#2145)

* ECS Task Definition caching classes and tests.

* ObjectMapper is now injected.

* refactor(entitytags): Support for alerts/notices on any entity type (spinnaker#2175)

* feat(cats): Support for selectively enabling agents (spinnaker#2177)

This is an assist to local development when you do not want _all_
agents to run by default.

```
redis:
  agent:
    enabledPattern: .*reservation.*
```

By default `enabledPattern` is `.*` and all agents will be scheduled.

* Use setApiKey when using token from service account (spinnaker#2178)

* fix(provider/kubernetes): v1 add docker registries in all cases (spinnaker#2176)

* bug(provider/openstack) - Display VIP for LBs that do not have Floating IP instead of null.. (spinnaker#2170)

* fix(provider/kubernetes): don't throw on invalid lb op (spinnaker#2184)

* fix(provider/aws): Reservation caching agent, now with less RxJava (spinnaker#2180)

* feat(provider/kubernetes): replace deployed configmap volumes (spinnaker#2183)

* feat(xenial_debians): Add systemd service configuration. (spinnaker#2182)

* feat(xenial_debians): Add systemd service configuration.

* feat(xenial_builds): Fix typo.

* feat(provider/ecs): ECS Service caching classes and tests. (spinnaker#2144)

* ECS Service caching classes and tests.

* Objectmapper is now injected.

* feat(provider/aws): Support expected capacity constraint when resizing (spinnaker#2179)

Support a constraint wherein the server groups' current capacity must
match expected prior to a resize.

There are scenarios wherein a user initiates a resize via the UI at the
same time that an autoscaling event is happening behind the scenes. In
such a scenario, the resize via UI != autoscaling and some churn will
occur.

`deck` will be changed to supply the capacity constraint.

* fix(provider/aws): Retry createAutoScalingGroup() / updateAutoScalingGroup() (spinnaker#2185)

* feat(provider/kubernetes): cache controller revisions (spinnaker#2138)

* fix(provider/kubernetes): fix registry init (spinnaker#2188)

if using the `namespaces` key for kubernetes accounts, reconfigure
registries using those namespaces.

* feat(provider/kubernetes): v2 support labels on delete & scale (spinnaker#2190)

* Xenial builds (spinnaker#2189)

* feat(xenial_debians): Add systemd service configuration.

* fix(provider/kubernetes): fix onDemand cache update in controller agent. (spinnaker#2131)

* chore(dependencies): update to latest spinnaker-dependencies

Also updates gradle to 3.5

* fix(provider/kubernetes): fix registry init 2 (spinnaker#2191)

the previous fix caused sever performance issues. this fix will only
configure hard coded registries once, only reconfiguring failed
registries on the next loop, if any.

* fix(google): Retry on all 5xx errors from the platform. (spinnaker#2193)

* fix(core): fix bean mismatch due to Spring update

removes unnecessary corsfilter bean - clouddriver should not be hit by browser agents

* chore(warnings): fix compiler warnings

* feat(provider/ecs): ECS Task caching classes and tests. (spinnaker#2146)

* ECS Task caching classes and tests.

* ObjectMapper is now injected.

* fix(cats): fix conditional instantiation of EurekaNodeStatusProvider

* fix(build): fix spring-boot plugin usage

* refactor(kubernetes): change OAuth token configuration (spinnaker#2196)

* fix(provider/aws): s/contraints/constraints (spinnaker#2198)

* fix(provider/kubernetes): fix envvar source (spinnaker#2199)

the bump in client library broke the API for configMap and secret envvar
sources. adds an extra property for optional. defaults to true to
preserve backwards compatibility. shoutout major version bumps.

* chore(logging): remove extra logging (spinnaker#2200)

* feat(provider/gce): Support for RMIG zone selection. (spinnaker#2201)

* chore(systemd_logs): Cleanup unneeded logging in systemd config. (spinnaker#2202)

* feat(provider/ecs): ECS IAM Role caching classes and tests. (spinnaker#2150)

* ECS IAM Role caching classes and tests.

* Moved Role and the associated classes into clouddriver-aws.

* AWS' default region is being used. Cleanup.

* refactor(clouddriver-core) Fixed to use const value (spinnaker#2186)

* fix(provider/kubernetes): registry init fix (spinnaker#2205)

for real this time. the previous fix caused registry namespaces to get
set to an empty list the second time the initialization occurred. moving
it down into this method allows us to still use the full list of
namespaces (`allNamespaces`) and setup the affected ones to be
initialized. This would occur if a new namespace was added, for
instance.

* fix(amazon/loadBalancers): Be smarter about updating ALB listeners (spinnaker#2203)

* fix(provider/dcos) Catch the correct exception for the proxy. (spinnaker#2207)

* chore(dependencies): update to 0.128.0 (spinnaker#2208)

* File went missing during merge.

* Missing method added back.

* Files didn't move correctly.

* Test fixed.

* Missing files added. Imports corrected.

* Filed not deleted during merge.

* NetflixAssumeRoleEcsCredentials are now loaded instead of plain NetflixECSCredentials. inferAssumedRoleArn that uses the credentials now handles NetflixAssumeRoleEcsCredentials.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant