@Override default Map<String, Object> buildRollbackPipeline(AccountDeploymentDetails<KubernetesAccount> details, SpinnakerRuntimeSettings runtimeSettings) { ServiceSettings settings = runtimeSettings.getServiceSettings(getService()); Map<String, Object> pipeline = DistributedService.super.buildRollbackPipeline(details, runtimeSettings); List<Map<String, Object>> stages = (List<Map<String, Object>>) pipeline.get("stages"); assert(stages != null && !stages.isEmpty()); for (Map<String, Object> stage : stages) { stage.put("namespaces", Collections.singletonList(getNamespace(settings))); stage.put("interestingHealthProviderNames", Collections.singletonList("KubernetesService")); stage.remove("region"); } return pipeline; }
default String connectCommand(AccountDeploymentDetails<KubernetesAccount> details, SpinnakerRuntimeSettings runtimeSettings, int localPort) { ServiceSettings settings = runtimeSettings.getServiceSettings(getService()); RunningServiceDetails runningServiceDetails = getRunningServiceDetails(details, runtimeSettings); Map<Integer, List<Instance>> instances = runningServiceDetails.getInstances(); Integer latest = runningServiceDetails.getLatestEnabledVersion(); String namespace = getNamespace(settings); List<Instance> latestInstances = instances.get(latest); if (latestInstances == null || latestInstances.isEmpty()) { throw new HalException(Problem.Severity.FATAL, "No instances running in latest server group for service " + getServiceName() + " in namespace " + namespace); } return Strings.join(KubernetesV1ProviderUtils.kubectlPortForwardCommand(details, namespace, latestInstances.get(0).getId(), settings.getPort(), localPort), " "); }
default String connectCommand(AccountDeploymentDetails<KubernetesAccount> details, SpinnakerRuntimeSettings runtimeSettings, int localPort) { ServiceSettings settings = runtimeSettings.getServiceSettings(getService()); RunningServiceDetails runningServiceDetails = getRunningServiceDetails(details, runtimeSettings); Map<Integer, List<Instance>> instances = runningServiceDetails.getInstances(); Integer latest = runningServiceDetails.getLatestEnabledVersion(); String namespace = getNamespace(settings); List<Instance> latestInstances = instances.get(latest); if (latestInstances == null || latestInstances.isEmpty()) { throw new HalException(Problem.Severity.FATAL, "No instances running in latest server group for service " + getServiceName() + " in namespace " + namespace); } return Strings.join(KubernetesV1ProviderUtils.kubectlPortForwardCommand(details, namespace, latestInstances.get(0).getId(), settings.getPort(), localPort), " "); }
@Override default Map<String, Object> buildRollbackPipeline(AccountDeploymentDetails<KubernetesAccount> details, SpinnakerRuntimeSettings runtimeSettings) { ServiceSettings settings = runtimeSettings.getServiceSettings(getService()); Map<String, Object> pipeline = DistributedService.super.buildRollbackPipeline(details, runtimeSettings); List<Map<String, Object>> stages = (List<Map<String, Object>>) pipeline.get("stages"); assert(stages != null && !stages.isEmpty()); for (Map<String, Object> stage : stages) { stage.put("namespaces", Collections.singletonList(getNamespace(settings))); stage.put("interestingHealthProviderNames", Collections.singletonList("KubernetesService")); stage.remove("region"); } return pipeline; }
default List<ConfigSource> stageProfiles( AccountDeploymentDetails<KubernetesAccount> details, GenerateService.ResolvedConfiguration resolvedConfiguration) { SpinnakerService thisService = getService(); ServiceSettings thisServiceSettings = resolvedConfiguration.getServiceSettings(thisService); SpinnakerRuntimeSettings runtimeSettings = resolvedConfiguration.getRuntimeSettings();
default String connectCommand(AccountDeploymentDetails<KubernetesAccount> details, SpinnakerRuntimeSettings runtimeSettings) { return connectCommand(details, runtimeSettings, runtimeSettings.getServiceSettings(getService()).getPort()); }
default List<ConfigSource> stageProfiles( AccountDeploymentDetails<KubernetesAccount> details, GenerateService.ResolvedConfiguration resolvedConfiguration) { SpinnakerService thisService = getService(); ServiceSettings thisServiceSettings = resolvedConfiguration.getServiceSettings(thisService); SpinnakerRuntimeSettings runtimeSettings = resolvedConfiguration.getRuntimeSettings();
default String connectCommand(AccountDeploymentDetails<KubernetesAccount> details, SpinnakerRuntimeSettings runtimeSettings) { return connectCommand(details, runtimeSettings, runtimeSettings.getServiceSettings(getService()).getPort()); }
@Override default RunningServiceDetails getRunningServiceDetails(AccountDeploymentDetails<KubernetesAccount> details, SpinnakerRuntimeSettings runtimeSettings) { ServiceSettings settings = runtimeSettings.getServiceSettings(getService()); RunningServiceDetails res = new RunningServiceDetails();
@Override default RunningServiceDetails getRunningServiceDetails(AccountDeploymentDetails<KubernetesAccount> details, SpinnakerRuntimeSettings runtimeSettings) { ServiceSettings settings = runtimeSettings.getServiceSettings(getService()); RunningServiceDetails res = new RunningServiceDetails();
default Map<String, Object> getLoadBalancerDescription(AccountDeploymentDetails<KubernetesAccount> details, SpinnakerRuntimeSettings runtimeSettings) { ServiceSettings settings = runtimeSettings.getServiceSettings(getService()); int port = settings.getPort(); String accountName = details.getAccount().getName(); KubernetesLoadBalancerDescription description = new KubernetesLoadBalancerDescription(); String namespace = getNamespace(settings); String name = getServiceName(); Names parsedName = Names.parseName(name); description.setApp(parsedName.getApp()); description.setStack(parsedName.getStack()); description.setDetail(parsedName.getDetail()); description.setName(name); description.setNamespace(namespace); description.setAccount(accountName); KubernetesNamedServicePort servicePort = new KubernetesNamedServicePort(); servicePort.setPort(port); servicePort.setTargetPort(port); servicePort.setName("http"); servicePort.setProtocol("TCP"); KubernetesNamedServicePort monitoringPort = new KubernetesNamedServicePort(); monitoringPort.setPort(8008); monitoringPort.setTargetPort(8008); monitoringPort.setName("monitoring"); monitoringPort.setProtocol("TCP"); List<KubernetesNamedServicePort> servicePorts = new ArrayList<>(); servicePorts.add(servicePort); servicePorts.add(monitoringPort); description.setPorts(servicePorts); return getObjectMapper().convertValue(description, new TypeReference<Map<String, Object>>() { }); }
DeployKubernetesAtomicOperationDescription description = new DeployKubernetesAtomicOperationDescription(); SpinnakerMonitoringDaemonService monitoringService = getMonitoringDaemonService(); ServiceSettings settings = runtimeSettings.getServiceSettings(getService()); DeploymentEnvironment deploymentEnvironment = details .getDeploymentConfiguration() ServiceSettings serviceSettings = runtimeSettings.getServiceSettings(getService()); KubernetesContainerDescription container = buildContainer(name, serviceSettings, configSources, deploymentEnvironment, description); containers.add(container);
default Map<String, Object> getLoadBalancerDescription(AccountDeploymentDetails<KubernetesAccount> details, SpinnakerRuntimeSettings runtimeSettings) { ServiceSettings settings = runtimeSettings.getServiceSettings(getService()); int port = settings.getPort(); String accountName = details.getAccount().getName(); KubernetesLoadBalancerDescription description = new KubernetesLoadBalancerDescription(); String namespace = getNamespace(settings); String name = getServiceName(); Names parsedName = Names.parseName(name); description.setApp(parsedName.getApp()); description.setStack(parsedName.getStack()); description.setDetail(parsedName.getDetail()); description.setName(name); description.setNamespace(namespace); description.setAccount(accountName); KubernetesNamedServicePort servicePort = new KubernetesNamedServicePort(); servicePort.setPort(port); servicePort.setTargetPort(port); servicePort.setName("http"); servicePort.setProtocol("TCP"); KubernetesNamedServicePort monitoringPort = new KubernetesNamedServicePort(); monitoringPort.setPort(8008); monitoringPort.setTargetPort(8008); monitoringPort.setName("monitoring"); monitoringPort.setProtocol("TCP"); List<KubernetesNamedServicePort> servicePorts = new ArrayList<>(); servicePorts.add(servicePort); servicePorts.add(monitoringPort); description.setPorts(servicePorts); return getObjectMapper().convertValue(description, new TypeReference<Map<String, Object>>() { }); }
DeployKubernetesAtomicOperationDescription description = new DeployKubernetesAtomicOperationDescription(); SpinnakerMonitoringDaemonService monitoringService = getMonitoringDaemonService(); ServiceSettings settings = runtimeSettings.getServiceSettings(getService()); DeploymentEnvironment deploymentEnvironment = details .getDeploymentConfiguration() ServiceSettings serviceSettings = runtimeSettings.getServiceSettings(getService()); KubernetesContainerDescription container = buildContainer(name, serviceSettings, configSources, deploymentEnvironment, description); containers.add(container);
List<ConfigSource> configSources, boolean recreate) { ServiceSettings settings = resolvedConfiguration.getServiceSettings(getService()); SpinnakerRuntimeSettings runtimeSettings = resolvedConfiguration.getRuntimeSettings(); String namespace = getNamespace(settings);
List<ConfigSource> configSources, boolean recreate) { ServiceSettings settings = resolvedConfiguration.getServiceSettings(getService()); SpinnakerRuntimeSettings runtimeSettings = resolvedConfiguration.getRuntimeSettings(); String namespace = getNamespace(settings);