Search in sources :

Example 1 with DockerAuthConfigs

use of org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs in project che-server by eclipse-che.

the class ImagePullSecretProvisioner method provision.

@Override
@Traced
public void provision(KubernetesEnvironment k8sEnv, RuntimeIdentity identity) throws InfrastructureException {
    TracingTags.WORKSPACE_ID.set(identity::getWorkspaceId);
    DockerAuthConfigs credentials = credentialsProvider.getCredentials();
    if (credentials == null) {
        return;
    }
    Map<String, DockerAuthConfig> authConfigs = credentials.getConfigs();
    if (authConfigs == null || authConfigs.isEmpty()) {
        return;
    }
    String encodedConfig = Base64.getEncoder().encodeToString(generateDockerCfg(authConfigs).getBytes());
    Secret secret = new SecretBuilder().addToData(".dockercfg", encodedConfig).withType("kubernetes.io/dockercfg").withNewMetadata().withName(identity.getWorkspaceId() + SECRET_NAME_SUFFIX).endMetadata().build();
    k8sEnv.getSecrets().put(secret.getMetadata().getName(), secret);
    k8sEnv.getPodsData().values().forEach(p -> addImagePullSecret(secret.getMetadata().getName(), p.getSpec()));
}
Also used : Secret(io.fabric8.kubernetes.api.model.Secret) SecretBuilder(io.fabric8.kubernetes.api.model.SecretBuilder) DockerAuthConfig(org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfig) DockerAuthConfigs(org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs) Traced(org.eclipse.che.commons.annotation.Traced)

Example 2 with DockerAuthConfigs

use of org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs in project che-server by eclipse-che.

the class UserSpecificDockerRegistryCredentialsProviderTest method shouldParseCredentialsFromUserPreferences.

@Test
public void shouldParseCredentialsFromUserPreferences() throws ServerException {
    String base64encodedCredentials = "eyJyZWdpc3RyeS5jb206NTAwMCI6eyJ1c2VybmFtZSI6ImxvZ2luIiwicGFzc3dvcmQiOiJwYXNzIn19";
    setCredentialsIntoPreferences(base64encodedCredentials);
    String registry = "registry.com:5000";
    DockerAuthConfig dockerAuthConfig = DtoFactory.newDto(DockerAuthConfig.class).withUsername("login").withPassword("pass");
    DockerAuthConfigs parsedDockerAuthConfigs = dockerCredentials.getCredentials();
    DockerAuthConfig parsedDockerAuthConfig = parsedDockerAuthConfigs.getConfigs().get(registry);
    assertNotNull(parsedDockerAuthConfig);
    assertEquals(parsedDockerAuthConfig.getUsername(), dockerAuthConfig.getUsername());
    assertEquals(parsedDockerAuthConfig.getPassword(), dockerAuthConfig.getPassword());
}
Also used : DockerAuthConfig(org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfig) DockerAuthConfigs(org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs) Test(org.testng.annotations.Test)

Example 3 with DockerAuthConfigs

use of org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs in project che-server by eclipse-che.

the class UserSpecificDockerRegistryCredentialsProviderTest method shouldReturnNullIfDataFormatIsCorruptedInPreferences.

@Test
public void shouldReturnNullIfDataFormatIsCorruptedInPreferences() throws ServerException {
    String base64encodedCredentials = "sdJfpwJwkek59kafj239lFfkHjhek5l1";
    setCredentialsIntoPreferences(base64encodedCredentials);
    DockerAuthConfigs parsedDockerAuthConfigs = dockerCredentials.getCredentials();
    assertNull(parsedDockerAuthConfigs);
}
Also used : DockerAuthConfigs(org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs) Test(org.testng.annotations.Test)

Example 4 with DockerAuthConfigs

use of org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs in project che-server by eclipse-che.

the class UserSpecificDockerRegistryCredentialsProviderTest method shouldReturnNullIfDataFormatIsWrong.

@Test
public void shouldReturnNullIfDataFormatIsWrong() throws ServerException {
    String base64encodedCredentials = "eyJpbnZhbGlkIjoianNvbiJ9";
    setCredentialsIntoPreferences(base64encodedCredentials);
    DockerAuthConfigs parsedDockerAuthConfigs = dockerCredentials.getCredentials();
    assertNull(parsedDockerAuthConfigs);
}
Also used : DockerAuthConfigs(org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs) Test(org.testng.annotations.Test)

Example 5 with DockerAuthConfigs

use of org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs in project devspaces-images by redhat-developer.

the class UserSpecificDockerRegistryCredentialsProviderTest method shouldReturnNullIfDataFormatIsWrong.

@Test
public void shouldReturnNullIfDataFormatIsWrong() throws ServerException {
    String base64encodedCredentials = "eyJpbnZhbGlkIjoianNvbiJ9";
    setCredentialsIntoPreferences(base64encodedCredentials);
    DockerAuthConfigs parsedDockerAuthConfigs = dockerCredentials.getCredentials();
    assertNull(parsedDockerAuthConfigs);
}
Also used : DockerAuthConfigs(org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs) Test(org.testng.annotations.Test)

Aggregations

DockerAuthConfigs (org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfigs)10 Test (org.testng.annotations.Test)8 DockerAuthConfig (org.eclipse.che.workspace.infrastructure.kubernetes.api.shared.dto.DockerAuthConfig)4 Secret (io.fabric8.kubernetes.api.model.Secret)2 SecretBuilder (io.fabric8.kubernetes.api.model.SecretBuilder)2 Traced (org.eclipse.che.commons.annotation.Traced)2