public static Class<? extends BakeryDefaults> translateBakeryDefaultsType(String providerName) { Class<? extends Provider> providerClass = translateProviderType(providerName); String bakeryDefaultsClassName = providerClass.getName().replaceAll("Provider", "BakeryDefaults"); try { return (Class<? extends BakeryDefaults>) Class.forName(bakeryDefaultsClassName); } catch (ClassNotFoundException e) { throw new IllegalArgumentException("No bakeryDefaults for class \"" + bakeryDefaultsClassName + "\" found", e); } }
private void disableAllProviders(Providers providers) { NodeIterator providerNodes = providers.getChildren(); Provider provider; while ((provider = (Provider) providerNodes.getNext()) != null) { provider.setEnabled(false); } } }
protected List<String> dockerRegistriesOptions(ConfigProblemSetBuilder psBuilder) { DeploymentConfiguration context = parentOfType(DeploymentConfiguration.class); DockerRegistryProvider dockerRegistryProvider = context.getProviders().getDockerRegistry(); if (dockerRegistryProvider != null) { return dockerRegistryProvider .getAccounts() .stream() .map(Account::getName) .collect(Collectors.toList()); } else { return null; } }
KubernetesProvider kubernetesProvider = deploymentConfiguration.getProviders().getKubernetes(); bindings.put("kubernetes.default.account", kubernetesProvider.getPrimaryAccount()); bindings.put("kubernetes.default.namespace", "default"); GoogleProvider googleProvider = deploymentConfiguration.getProviders().getGoogle(); bindings.put("google.default.account", googleProvider.getPrimaryAccount()); bindings.put("google.default.region", "us-central1"); AzureProvider azureProvider = deploymentConfiguration.getProviders().getAzure(); bindings.put("azure.default.account", azureProvider.getPrimaryAccount()); bindings.put("azure.default.region", "westus"); AppengineProvider appengineProvider = deploymentConfiguration.getProviders().getAppengine(); bindings.put("appengine.default.account", appengineProvider.getPrimaryAccount()); bindings.put("appengine.enabled", Boolean.toString(appengineProvider.getPrimaryAccount() != null)); final DCOSProvider dcosProvider = deploymentConfiguration.getProviders().getDcos(); bindings.put("dcos.default.account", dcosProvider.getPrimaryAccount()); OpenstackProvider openstackProvider = deploymentConfiguration.getProviders().getOpenstack(); bindings.put("openstack.default.account", openstackProvider.getPrimaryAccount()); if (openstackProvider.getPrimaryAccount() != null) { AwsProvider awsProvider = deploymentConfiguration.getProviders().getAws(); bindings.put("aws.default.account", awsProvider.getPrimaryAccount()); if (awsProvider.getPrimaryAccount() != null) { EcsProvider ecsProvider = deploymentConfiguration.getProviders().getEcs(); bindings.put("ecs.default.account", ecsProvider.getPrimaryAccount());
Providers originalProviders = deploymentConfiguration.getProviders().cloneNode(Providers.class); Providers modifiedProviders = deploymentConfiguration.getProviders(); .collect(Collectors.toList()); DockerRegistryProvider dockerProvider = modifiedProviders.getDockerRegistry(); dockerProvider.setEnabled(true); dockerProvider.setAccounts(bootstrapRegistries);
public static Supplier<Account> getAccount(String deploymentName, String providerName, String accountName, boolean validate) { return () -> { Object rawAccount = ResponseUnwrapper.get(getService().getAccount(deploymentName, providerName, accountName, validate)); return getObjectMapper().convertValue(rawAccount, Providers.translateAccountType(providerName)); }; }
public static Supplier<Cluster> getCluster(String deploymentName, String providerName, String clusterName, boolean validate) { return () -> { Object rawCluster = ResponseUnwrapper.get(getService().getCluster(deploymentName, providerName, clusterName, validate)); return getObjectMapper().convertValue(rawCluster, Providers.translateClusterType(providerName)); }; }
public static Supplier<BaseImage> getBaseImage(String deploymentName, String providerName, String baseImageId, boolean validate) { return () -> { Object rawBaseImage = ResponseUnwrapper.get(getService().getBaseImage(deploymentName, providerName, baseImageId, validate)); return getObjectMapper().convertValue(rawBaseImage, Providers.translateBaseImageType(providerName)); }; }
public static Supplier<BakeryDefaults> getBakeryDefaults(String deploymentName, String providerName, boolean validate) { return () -> { Object rawBakeryDefaults = ResponseUnwrapper.get(getService().getBakeryDefaults(deploymentName, providerName, validate)); return getObjectMapper().convertValue(rawBakeryDefaults, Providers.translateBakeryDefaultsType(providerName)); }; }
protected Optional<Profile> generateAwsProfile(DeploymentConfiguration deploymentConfiguration, SpinnakerRuntimeSettings endpoints, String spinnakerHome) { String name = "aws/clouddriver-credentials" + spinnakerHome.replace("/", "_"); AwsProvider awsProvider = deploymentConfiguration.getProviders().getAws(); if (awsProvider.isEnabled() && !StringUtils.isEmpty(awsProvider.getAccessKeyId()) && !StringUtils.isEmpty(awsProvider.getSecretAccessKey())) { String outputFile = awsCredentialsProfileFactoryBuilder.getOutputFile(spinnakerHome); return Optional.of(awsCredentialsProfileFactoryBuilder .setArtifact(SpinnakerArtifact.CLOUDDRIVER) .setAccessKeyId(awsProvider.getAccessKeyId()) .setSecretAccessKey(awsProvider.getSecretAccessKey()) .build() .getProfile(name, outputFile, deploymentConfiguration, endpoints)); } else { return Optional.empty(); } }
@Override protected void setProfile(Profile profile, DeploymentConfiguration deploymentConfiguration, SpinnakerRuntimeSettings endpoints) { super.setProfile(profile, deploymentConfiguration, endpoints); // We need to make modifications to this deployment configuration, but can't use helpful objects // like the accountService on a clone. Therefore, we'll make the modifications in place and // restore to the original state when the modifications are written out. Providers originalProviders = deploymentConfiguration.getProviders().cloneNode(Providers.class); Providers modifiedProviders = deploymentConfiguration.getProviders(); DeploymentEnvironment deploymentEnvironment = deploymentConfiguration.getDeploymentEnvironment(); if (deploymentEnvironment.getBootstrapOnly() != null && deploymentEnvironment.getBootstrapOnly()) { String bootstrapAccountName = deploymentEnvironment.getAccountName(); removeBootstrapOnlyAccount(modifiedProviders, deploymentConfiguration.getName(), bootstrapAccountName); } Artifacts artifacts = deploymentConfiguration.getArtifacts(); List<String> files = backupRequiredFiles(modifiedProviders, deploymentConfiguration.getName()); files.addAll(backupRequiredFiles(artifacts, deploymentConfiguration.getName())); if (deploymentConfiguration.getProviders() != null) { processProviders(deploymentConfiguration.getProviders()); } profile.appendContents(yamlToString(modifiedProviders)) .appendContents(yamlToString(new ArtifactWrapper(artifacts))) .appendContents(profile.getBaseContents()) .setRequiredFiles(files); deploymentConfiguration.setProviders(originalProviders); }
KubernetesProvider kubernetesProvider = deploymentConfiguration.getProviders().getKubernetes(); bindings.put("kubernetes.default.account", kubernetesProvider.getPrimaryAccount()); bindings.put("kubernetes.default.namespace", "default"); GoogleProvider googleProvider = deploymentConfiguration.getProviders().getGoogle(); bindings.put("google.default.account", googleProvider.getPrimaryAccount()); bindings.put("google.default.region", "us-central1"); AzureProvider azureProvider = deploymentConfiguration.getProviders().getAzure(); bindings.put("azure.default.account", azureProvider.getPrimaryAccount()); bindings.put("azure.default.region", "westus"); AppengineProvider appengineProvider = deploymentConfiguration.getProviders().getAppengine(); bindings.put("appengine.default.account", appengineProvider.getPrimaryAccount()); bindings.put("appengine.enabled", Boolean.toString(appengineProvider.getPrimaryAccount() != null)); final DCOSProvider dcosProvider = deploymentConfiguration.getProviders().getDcos(); bindings.put("dcos.default.account", dcosProvider.getPrimaryAccount()); OpenstackProvider openstackProvider = deploymentConfiguration.getProviders().getOpenstack(); bindings.put("openstack.default.account", openstackProvider.getPrimaryAccount()); if (openstackProvider.getPrimaryAccount() != null) { AwsProvider awsProvider = deploymentConfiguration.getProviders().getAws(); bindings.put("aws.default.account", awsProvider.getPrimaryAccount()); if (awsProvider.getPrimaryAccount() != null) { EcsProvider ecsProvider = deploymentConfiguration.getProviders().getEcs(); bindings.put("ecs.default.account", ecsProvider.getPrimaryAccount());
Providers originalProviders = deploymentConfiguration.getProviders().cloneNode(Providers.class); Providers modifiedProviders = deploymentConfiguration.getProviders(); .collect(Collectors.toList()); DockerRegistryProvider dockerProvider = modifiedProviders.getDockerRegistry(); dockerProvider.setEnabled(true); dockerProvider.setAccounts(bootstrapRegistries);
public static Supplier<Account> getAccount(String deploymentName, String providerName, String accountName, boolean validate) { return () -> { Object rawAccount = ResponseUnwrapper.get(getService().getAccount(deploymentName, providerName, accountName, validate)); return getObjectMapper().convertValue(rawAccount, Providers.translateAccountType(providerName)); }; }
public static Supplier<Cluster> getCluster(String deploymentName, String providerName, String clusterName, boolean validate) { return () -> { Object rawCluster = ResponseUnwrapper.get(getService().getCluster(deploymentName, providerName, clusterName, validate)); return getObjectMapper().convertValue(rawCluster, Providers.translateClusterType(providerName)); }; }
public static Supplier<BaseImage> getBaseImage(String deploymentName, String providerName, String baseImageId, boolean validate) { return () -> { Object rawBaseImage = ResponseUnwrapper.get(getService().getBaseImage(deploymentName, providerName, baseImageId, validate)); return getObjectMapper().convertValue(rawBaseImage, Providers.translateBaseImageType(providerName)); }; }
public static Supplier<BakeryDefaults> getBakeryDefaults(String deploymentName, String providerName, boolean validate) { return () -> { Object rawBakeryDefaults = ResponseUnwrapper.get(getService().getBakeryDefaults(deploymentName, providerName, validate)); return getObjectMapper().convertValue(rawBakeryDefaults, Providers.translateBakeryDefaultsType(providerName)); }; }
protected Optional<Profile> generateAwsProfile(DeploymentConfiguration deploymentConfiguration, SpinnakerRuntimeSettings endpoints, String spinnakerHome) { String name = "aws/clouddriver-credentials" + spinnakerHome.replace("/", "_"); AwsProvider awsProvider = deploymentConfiguration.getProviders().getAws(); if (awsProvider.isEnabled() && !StringUtils.isEmpty(awsProvider.getAccessKeyId()) && !StringUtils.isEmpty(awsProvider.getSecretAccessKey())) { String outputFile = awsCredentialsProfileFactoryBuilder.getOutputFile(spinnakerHome); return Optional.of(awsCredentialsProfileFactoryBuilder .setArtifact(SpinnakerArtifact.CLOUDDRIVER) .setAccessKeyId(awsProvider.getAccessKeyId()) .setSecretAccessKey(awsProvider.getSecretAccessKey()) .build() .getProfile(name, outputFile, deploymentConfiguration, endpoints)); } else { return Optional.empty(); } }
@Override protected void setProfile(Profile profile, DeploymentConfiguration deploymentConfiguration, SpinnakerRuntimeSettings endpoints) { super.setProfile(profile, deploymentConfiguration, endpoints); // We need to make modifications to this deployment configuration, but can't use helpful objects // like the accountService on a clone. Therefore, we'll make the modifications in place and // restore to the original state when the modifications are written out. Providers originalProviders = deploymentConfiguration.getProviders().cloneNode(Providers.class); Providers modifiedProviders = deploymentConfiguration.getProviders(); DeploymentEnvironment deploymentEnvironment = deploymentConfiguration.getDeploymentEnvironment(); if (deploymentEnvironment.getBootstrapOnly() != null && deploymentEnvironment.getBootstrapOnly()) { String bootstrapAccountName = deploymentEnvironment.getAccountName(); removeBootstrapOnlyAccount(modifiedProviders, deploymentConfiguration.getName(), bootstrapAccountName); } Artifacts artifacts = deploymentConfiguration.getArtifacts(); List<String> files = backupRequiredFiles(modifiedProviders, deploymentConfiguration.getName()); files.addAll(backupRequiredFiles(artifacts, deploymentConfiguration.getName())); if (deploymentConfiguration.getProviders() != null) { processProviders(deploymentConfiguration.getProviders()); } profile.appendContents(yamlToString(modifiedProviders)) .appendContents(yamlToString(new ArtifactWrapper(artifacts))) .appendContents(profile.getBaseContents()) .setRequiredFiles(files); deploymentConfiguration.setProviders(originalProviders); }
public static Class<? extends Account> translateAccountType(String providerName) { Class<? extends Provider> providerClass = translateProviderType(providerName); String accountClassName = providerClass.getName().replaceAll("Provider", "Account"); try { return (Class<? extends Account>) Class.forName(accountClassName); } catch (ClassNotFoundException e) { throw new IllegalArgumentException("No account for class \"" + accountClassName + "\" found", e); } }