use of io.fabric8.kubernetes.client.dsl.Resource in project docker-maven-plugin by fabric8io.
the class CopyMojoTest method copyWithCreateContainersButExceptionWhenCopying.
@Test
public void copyWithCreateContainersButExceptionWhenCopying() throws IOException, MojoExecutionException {
final String containerPath = "/any/container/resource";
final ImageConfiguration image = singleImageWithCopy(singleCopyEntry(containerPath, null));
final String containerNamePattern = "constant-container-name";
final String temporaryContainerId = "some-container-id";
final Exception copyException = new RuntimeException("Test exception when copying from container");
givenProjectWithResolvedImage(image);
givenCreateContainersIsTrue();
givenContainerNamePattern(containerNamePattern);
givenCreatedContainerId(temporaryContainerId);
givenExceptionWhenCopyingArchiveFromContainer(temporaryContainerId, copyException);
try {
whenMojoExecutes();
fail();
} catch (MojoExecutionException e) {
assertEquals(copyException, e.getCause());
} catch (Exception e) {
assertEquals(copyException, e);
}
thenExistingImageIsPulled(image, copyMojo.getPullRegistry());
thenContainerIsCreated(image, containerNamePattern);
thenContainerIsRemoved(temporaryContainerId);
}
use of io.fabric8.kubernetes.client.dsl.Resource in project docker-maven-plugin by fabric8io.
the class CopyMojoTest method copyWithCreateContainersAndUndefinedHostDirectory.
@Test
public void copyWithCreateContainersAndUndefinedHostDirectory() throws IOException, MojoExecutionException {
final String containerPath = "/absolute/path/to/some/container/filesystem/resource";
final ImageConfiguration image = singleImageWithCopy(singleCopyEntry(containerPath, null));
final String containerNamePattern = ContainerNamingUtil.DEFAULT_CONTAINER_NAME_PATTERN;
final String temporaryContainerId = "another-test-container";
givenProjectWithResolvedImage(image);
givenCreateContainersIsTrue();
givenContainerNamePattern(containerNamePattern);
givenCreatedContainerId(temporaryContainerId);
whenMojoExecutes();
thenExistingImageIsPulled(image, copyMojo.getPullRegistry());
thenContainerIsCreated(image, containerNamePattern);
thenContainerPathIsCopied(temporaryContainerId, containerPath, new File(projectBaseDirectory));
thenContainerIsRemoved(temporaryContainerId);
}
use of io.fabric8.kubernetes.client.dsl.Resource in project fabric8 by jboss-fuse.
the class Controller method applyEntity.
/**
* Applies the given DTOs onto the Kubernetes master
*/
public void applyEntity(Object dto, String sourceName) throws Exception {
if (dto instanceof Pod) {
applyPod((Pod) dto, sourceName);
} else if (dto instanceof ReplicationController) {
applyReplicationController((ReplicationController) dto, sourceName);
} else if (dto instanceof Service) {
applyService((Service) dto, sourceName);
} else if (dto instanceof Namespace) {
applyNamespace((Namespace) dto);
} else if (dto instanceof Route) {
applyRoute((Route) dto, sourceName);
} else if (dto instanceof BuildConfig) {
applyBuildConfig((BuildConfig) dto, sourceName);
} else if (dto instanceof DeploymentConfig) {
DeploymentConfig resource = (DeploymentConfig) dto;
OpenShiftClient openShiftClient = getOpenShiftClientOrNull();
if (openShiftClient != null && openShiftClient.supportsOpenShiftAPIGroup(OpenShiftAPIGroups.APPS)) {
applyResource(resource, sourceName, openShiftClient.deploymentConfigs());
} else {
LOG.warn("Not connected to OpenShift cluster so cannot apply entity " + dto);
}
} else if (dto instanceof PolicyBinding) {
applyPolicyBinding((PolicyBinding) dto, sourceName);
} else if (dto instanceof RoleBinding) {
applyRoleBinding((RoleBinding) dto, sourceName);
} else if (dto instanceof Role) {
Role resource = (Role) dto;
OpenShiftClient openShiftClient = getOpenShiftClientOrNull();
if (openShiftClient != null && openShiftClient.supportsOpenShiftAPIGroup(OpenShiftAPIGroups.AUTHORIZATION)) {
applyResource(resource, sourceName, openShiftClient.roles());
} else {
LOG.warn("Not connected to OpenShift cluster so cannot apply entity " + dto);
}
} else if (dto instanceof ImageStream) {
applyImageStream((ImageStream) dto, sourceName);
} else if (dto instanceof OAuthClient) {
applyOAuthClient((OAuthClient) dto, sourceName);
} else if (dto instanceof Template) {
applyTemplate((Template) dto, sourceName);
} else if (dto instanceof ServiceAccount) {
applyServiceAccount((ServiceAccount) dto, sourceName);
} else if (dto instanceof Secret) {
applySecret((Secret) dto, sourceName);
} else if (dto instanceof ConfigMap) {
applyResource((ConfigMap) dto, sourceName, kubernetesClient.configMaps());
} else if (dto instanceof DaemonSet) {
applyResource((DaemonSet) dto, sourceName, kubernetesClient.extensions().daemonSets());
} else if (dto instanceof Deployment) {
applyResource((Deployment) dto, sourceName, kubernetesClient.extensions().deployments());
} else if (dto instanceof ReplicaSet) {
applyResource((ReplicaSet) dto, sourceName, kubernetesClient.extensions().replicaSets());
} else if (dto instanceof StatefulSet) {
applyResource((StatefulSet) dto, sourceName, kubernetesClient.apps().statefulSets());
} else if (dto instanceof Ingress) {
applyResource((Ingress) dto, sourceName, kubernetesClient.extensions().ingresses());
} else if (dto instanceof PersistentVolumeClaim) {
applyPersistentVolumeClaim((PersistentVolumeClaim) dto, sourceName);
} else if (dto instanceof HasMetadata) {
HasMetadata entity = (HasMetadata) dto;
try {
String namespace = getNamespace();
String resourceNamespace = getNamespace(entity);
if (Strings.isNotBlank(namespace) && Strings.isNullOrBlank(resourceNamespace)) {
getOrCreateMetadata(entity).setNamespace(namespace);
}
LOG.info("Applying " + getKind(entity) + " " + getName(entity) + " from " + sourceName);
kubernetesClient.resource(entity).inNamespace(namespace).createOrReplace();
} catch (Exception e) {
onApplyError("Failed to create " + getKind(entity) + " from " + sourceName + ". " + e, e);
}
} else {
throw new IllegalArgumentException("Unknown entity type " + dto);
}
}
use of io.fabric8.kubernetes.client.dsl.Resource in project fabric8 by jboss-fuse.
the class KubernetesHelper method summaryText.
/**
* Returns a short summary text message for the given kubernetes resource
*/
public static String summaryText(Template entity) {
StringBuilder buffer = new StringBuilder();
List<Parameter> parameters = entity.getParameters();
if (parameters != null) {
for (Parameter parameter : parameters) {
String name = parameter.getName();
appendText(buffer, name);
}
}
return "parameters: " + buffer;
}
use of io.fabric8.kubernetes.client.dsl.Resource in project fabric8 by jboss-fuse.
the class KubernetesHelper method summaryText.
/**
* Returns a short summary text message for the given kubernetes resource
*/
public static String summaryText(DeploymentConfig entity) {
StringBuilder buffer = new StringBuilder();
DeploymentConfigSpec spec = entity.getSpec();
if (spec != null) {
buffer.append("replicas: " + spec.getReplicas());
PodTemplateSpec podTemplateSpec = spec.getTemplate();
if (podTemplateSpec != null) {
appendSummaryText(buffer, podTemplateSpec);
}
}
return buffer.toString();
}
Aggregations