From b45a4ee52c6556c67b60842994097b3e1ce7df85 Mon Sep 17 00:00:00 2001 From: Joon Lim Date: Mon, 15 Oct 2018 17:13:33 -0400 Subject: [PATCH] fix(deploy/ha): Orca reads should point to clouddriver-ro. (#1068) --- .../deploy/spinnaker/v1/service/OrcaService.java | 5 +++++ .../v2/KubernetesV2ClouddriverCachingService.java | 2 ++ .../v2/KubernetesV2ClouddriverRoService.java | 2 ++ .../v2/KubernetesV2ClouddriverRwService.java | 2 ++ .../kubernetes/v2/KubernetesV2OrcaService.java | 13 +++++++++++++ 5 files changed, 24 insertions(+) diff --git a/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/OrcaService.java b/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/OrcaService.java index f4654cadd9..f36a089b76 100644 --- a/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/OrcaService.java +++ b/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/OrcaService.java @@ -57,6 +57,9 @@ public Class getEndpointClass() { return Orca.class; } + protected void appendReadonlyClouddriver(Profile profile, DeploymentConfiguration deploymentConfiguration, SpinnakerRuntimeSettings endpoints) { + } + @Override public List getProfiles(DeploymentConfiguration deploymentConfiguration, SpinnakerRuntimeSettings endpoints) { List profiles = super.getProfiles(deploymentConfiguration, endpoints); @@ -65,6 +68,8 @@ public List getProfiles(DeploymentConfiguration deploymentConfiguration String path = Paths.get(getConfigOutputPath(), filename).toString(); Profile profile = orcaProfileFactory.getProfile(filename, path, deploymentConfiguration, endpoints); + appendReadonlyClouddriver(profile, deploymentConfiguration, endpoints); + profiles.add(profile); return profiles; } diff --git a/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverCachingService.java b/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverCachingService.java index 1691294815..3935d537ce 100644 --- a/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverCachingService.java +++ b/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverCachingService.java @@ -55,11 +55,13 @@ public List getProfiles(DeploymentConfiguration deploymentConfiguration return profiles; } + @Override protected boolean hasServiceOverrides(DeploymentConfiguration deploymentConfiguration) { HaServices haServices = deploymentConfiguration.getDeploymentEnvironment().getHaServices(); return haServices.getClouddriver().getRedisMasterEndpoint() != null; } + @Override protected SpinnakerRuntimeSettings getServiceOverrides(DeploymentConfiguration deploymentConfiguration, SpinnakerRuntimeSettings endpoints) { SpinnakerRuntimeSettings serviceOverrides = super.getServiceOverrides(deploymentConfiguration, endpoints); diff --git a/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverRoService.java b/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverRoService.java index ed94b9b0f2..3e3c19fe06 100644 --- a/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverRoService.java +++ b/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverRoService.java @@ -54,11 +54,13 @@ public List getProfiles(DeploymentConfiguration deploymentConfiguration return profiles; } + @Override protected boolean hasServiceOverrides(DeploymentConfiguration deploymentConfiguration) { HaServices haServices = deploymentConfiguration.getDeploymentEnvironment().getHaServices(); return haServices.getClouddriver().getRedisSlaveEndpoint() != null; } + @Override protected SpinnakerRuntimeSettings getServiceOverrides(DeploymentConfiguration deploymentConfiguration, SpinnakerRuntimeSettings endpoints) { SpinnakerRuntimeSettings serviceOverrides = super.getServiceOverrides(deploymentConfiguration, endpoints); diff --git a/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverRwService.java b/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverRwService.java index e8dce948ff..bb275c5000 100644 --- a/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverRwService.java +++ b/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2ClouddriverRwService.java @@ -55,11 +55,13 @@ public List getProfiles(DeploymentConfiguration deploymentConfiguration return profiles; } + @Override protected boolean hasServiceOverrides(DeploymentConfiguration deploymentConfiguration) { HaServices haServices = deploymentConfiguration.getDeploymentEnvironment().getHaServices(); return haServices.getClouddriver().getRedisMasterEndpoint() != null; } + @Override protected SpinnakerRuntimeSettings getServiceOverrides(DeploymentConfiguration deploymentConfiguration, SpinnakerRuntimeSettings endpoints) { SpinnakerRuntimeSettings serviceOverrides = super.getServiceOverrides(deploymentConfiguration, endpoints); diff --git a/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2OrcaService.java b/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2OrcaService.java index 41ff5c24f8..5d94bb56c2 100644 --- a/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2OrcaService.java +++ b/halyard-deploy/src/main/java/com/netflix/spinnaker/halyard/deploy/spinnaker/v1/service/distributed/kubernetes/v2/KubernetesV2OrcaService.java @@ -27,7 +27,9 @@ import com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.ServiceSettings; import com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.distributed.DistributedService.DeployPriority; import java.util.Arrays; +import java.util.Collections; import java.util.List; +import java.util.Map; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Delegate; @@ -83,4 +85,15 @@ protected List overrideServiceEndpoints() { Type.ECHO_WORKER ); } + + @Override + protected void appendReadonlyClouddriver(Profile profile, DeploymentConfiguration deploymentConfiguration, SpinnakerRuntimeSettings endpoints) { + if (hasServiceOverrides(deploymentConfiguration)) { + Map>> clouddriver = Collections.singletonMap( + "clouddriver", Collections.singletonMap( + "readonly", Collections.singletonMap( + "baseUrl", endpoints.getServiceSettings(Type.CLOUDDRIVER_RO).getBaseUrl()))); + profile.appendContents("\n" + getYamlParser().dump(clouddriver)); + } + } }