use of com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.distributed.kubernetes.v2.KubectlServiceProvider in project halyard by spinnaker.
the class KubectlDeployer method deploy.
@Override
public RemoteAction deploy(KubectlServiceProvider serviceProvider, AccountDeploymentDetails<KubernetesAccount> deploymentDetails, GenerateService.ResolvedConfiguration resolvedConfiguration, List<SpinnakerService.Type> serviceTypes) {
List<KubernetesV2Service> services = serviceProvider.getServicesByPriority(serviceTypes);
services.stream().forEach((service) -> {
ServiceSettings settings = resolvedConfiguration.getServiceSettings((SpinnakerService) service);
if (settings.getEnabled() != null && !settings.getEnabled()) {
return;
}
if (settings.getSkipLifeCycleManagement() != null && settings.getSkipLifeCycleManagement()) {
return;
}
DaemonTaskHandler.newStage("Deploying " + service.getServiceName() + " with kubectl");
KubernetesAccount account = deploymentDetails.getAccount();
String namespaceDefinition = service.getNamespaceYaml(resolvedConfiguration);
String serviceDefinition = service.getServiceYaml(resolvedConfiguration);
if (!KubernetesV2Utils.exists(account, namespaceDefinition)) {
KubernetesV2Utils.apply(account, namespaceDefinition);
}
if (!KubernetesV2Utils.exists(account, serviceDefinition)) {
KubernetesV2Utils.apply(account, serviceDefinition);
}
String resourceDefinition = service.getResourceYaml(deploymentDetails, resolvedConfiguration);
DaemonTaskHandler.message("Running kubectl apply on the resource definition...");
KubernetesV2Utils.apply(account, resourceDefinition);
});
return new RemoteAction();
}
use of com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.distributed.kubernetes.v2.KubectlServiceProvider in project halyard by spinnaker.
the class ServiceProviderFactory method createDeployableServiceProvider.
private SpinnakerServiceProvider createDeployableServiceProvider(DeploymentConfiguration deploymentConfiguration) {
DeploymentEnvironment deploymentEnvironment = deploymentConfiguration.getDeploymentEnvironment();
String accountName = deploymentEnvironment.getAccountName();
if (accountName == null || accountName.isEmpty()) {
throw new HalException(new ConfigProblemBuilder(Problem.Severity.FATAL, "An account name must be " + "specified as the desired place to run your simple clustered deployment.").build());
}
Account account = accountService.getAnyProviderAccount(deploymentConfiguration.getName(), accountName);
Provider.ProviderType providerType = ((Provider) account.getParent()).providerType();
switch(providerType) {
case KUBERNETES:
switch(account.getProviderVersion()) {
case V1:
return kubernetesV1DistributedServiceProvider;
case V2:
return kubectlServiceProvider;
default:
return kubernetesV1DistributedServiceProvider;
}
case GOOGLE:
return googleDistributedServiceProvider;
default:
throw new IllegalArgumentException("No Clustered Simple Deployment for " + providerType.getName());
}
}
Aggregations