use of io.fabric8.kubernetes.api.model.HasMetadata in project syndesis-qe by syndesisio.
the class Syndesis method deployOperator.
public void deployOperator() {
List<HasMetadata> resourceList = getOperatorResources();
final String operatorResourcesName = "syndesis-operator";
Optional<HasMetadata> serviceAccount = resourceList.stream().filter(resource -> "ServiceAccount".equals(resource.getKind()) && operatorResourcesName.equals(resource.getMetadata().getName())).findFirst();
if (serviceAccount.isPresent()) {
((ServiceAccount) serviceAccount.get()).getImagePullSecrets().add(new LocalObjectReference(TestConfiguration.syndesisPullSecretName()));
} else {
log.error("Service account not found in resources");
}
OpenShiftUtils.getInstance().serviceAccounts().withName("default").edit().addToImagePullSecrets(new LocalObjectReference(TestConfiguration.syndesisPullSecretName())).done();
List<EnvVar> envVarsToAdd = new ArrayList<>();
envVarsToAdd.add(new EnvVar("TEST_SUPPORT", "true", null));
// For upgrade, we want to override images only for "current" version
if (operatorImage.equals(TestConfiguration.syndesisOperatorImage())) {
Set<Image> images = EnumSet.allOf(Image.class);
for (Image image : images) {
if (TestConfiguration.image(image) != null) {
// override image, e.g. from BUILD_PROPERTIES
log.info("Overriding " + image.name().toLowerCase() + " image with " + TestConfiguration.image(image));
envVarsToAdd.add(new EnvVar("RELATED_IMAGE_" + image.name(), TestConfiguration.image(image), null));
} else {
// use images from Quay instead of DockerHub for Syndesis components
switch(image) {
case META:
case S2I:
case UI:
case SERVER:
case UPGRADE:
log.info("Overriding " + image.name().toLowerCase() + " image with quay variant");
String version = TestConfiguration.syndesisInstallVersion() != null ? TestConfiguration.syndesisInstallVersion() : "latest";
envVarsToAdd.add(new EnvVar("RELATED_IMAGE_" + image.name(), String.format("%s/syndesis/syndesis-%s:%s", TestConfiguration.get().readValue(SYNDESIS_DOCKER_REGISTRY), image.name().toLowerCase(), version), null));
}
}
}
}
if ((TestUtils.isProdBuild() && getOperatorImage().contains("1.8")) || getOperatorImage().contains("1.11")) {
// apply this hotfix for 1.8 prod version, needs for OSD because it doesn't see proxy eng repo
if (TestUtils.isProdBuild()) {
envVarsToAdd.add(new EnvVar("RELATED_IMAGE_PSQL_EXPORTER", "registry.redhat.io/fuse7/fuse-postgres-exporter-rhel7:1.8", null));
}
// needs for upgrade test when previous version is 1.11
DeploymentConfig dc = (DeploymentConfig) resourceList.stream().filter(r -> "DeploymentConfig".equals(r.getKind()) && operatorResourcesName.equals(r.getMetadata().getName())).findFirst().orElseThrow(() -> new RuntimeException("Unable to find deployment config in operator resources"));
dc.getSpec().getTemplate().getSpec().getContainers().get(0).getEnv().addAll(envVarsToAdd);
} else {
Deployment deployment = (Deployment) resourceList.stream().filter(r -> "Deployment".equals(r.getKind()) && operatorResourcesName.equals(r.getMetadata().getName())).findFirst().orElseThrow(() -> new RuntimeException("Unable to find deployment in operator resources"));
deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getEnv().addAll(envVarsToAdd);
}
OpenShiftUtils.asRegularUser(() -> OpenShiftUtils.getInstance().resourceList(resourceList).createOrReplace());
log.info("Waiting for syndesis-operator to be ready");
try {
OpenShiftUtils.getInstance().waiters().areExactlyNPodsReady(1, "syndesis.io/component", operatorResourcesName).interval(TimeUnit.SECONDS, 20).timeout(TimeUnit.MINUTES, 10).waitFor();
} catch (WaiterException e) {
InfraFail.fail("Unable to find operator pod in 10 minutes");
}
}
use of io.fabric8.kubernetes.api.model.HasMetadata in project syndesis-qe by syndesisio.
the class Jaeger method processResources.
private void processResources() {
for (String jaegerResource : JAEGER_RESOURCES) {
// version 1.20.0 ==> repo v1.20.0
jaegerResource = String.format(jaegerResource, "v" + TestConfiguration.jaegerVersion());
log.info("Processing " + jaegerResource);
try (InputStream is = new URL(jaegerResource).openStream()) {
List<HasMetadata> resources = OpenShiftUtils.getInstance().load(is).get();
// Change the namespace in the resources to the current
for (HasMetadata resource : resources) {
if (resource instanceof ClusterRoleBinding) {
for (Subject subject : ((ClusterRoleBinding) resource).getSubjects()) {
subject.setNamespace(TestConfiguration.openShiftNamespace());
}
}
resource.getMetadata().setNamespace(TestConfiguration.openShiftNamespace());
processedResources.add(resource);
// change docker image to quay
if (resource instanceof Deployment) {
((Deployment) resource).getSpec().getTemplate().getSpec().getContainers().get(0).setImage("quay.io/jaegertracing/jaeger-operator:" + TestConfiguration.jaegerVersion());
}
}
} catch (IOException e) {
fail("Unable to process Jaeger resource " + jaegerResource, e);
}
}
}
use of io.fabric8.kubernetes.api.model.HasMetadata in project kie-wb-common by kiegroup.
the class OpenShiftClient method createFromUri.
private void createFromUri(String prjName, String uri) throws OpenShiftClientException {
URL url = toUrl(uri);
if (url != null) {
KubernetesList kubeList = delegate.lists().load(url).get();
List<HasMetadata> items = kubeList.getItems();
if (items.size() > 0) {
for (HasMetadata item : items) {
String name = item.getMetadata().getName();
if (item instanceof ServiceAccount) {
if (delegate.serviceAccounts().inNamespace(prjName).withName(name).get() == null) {
setGuvnorAlaGenerated(item);
}
} else if (item instanceof Secret) {
if (delegate.secrets().inNamespace(prjName).withName(name).get() == null) {
setGuvnorAlaGenerated(item);
}
} else if (item instanceof ImageStream) {
if (delegate.imageStreams().inNamespace(prjName).withName(name).get() == null) {
setGuvnorAlaGenerated(item);
}
}
}
delegate.lists().inNamespace(prjName).create(kubeList);
}
}
}
use of io.fabric8.kubernetes.api.model.HasMetadata in project kie-wb-common by kiegroup.
the class OpenShiftClient method setGuvnorAlaGenerated.
private void setGuvnorAlaGenerated(HasMetadata item) {
if (item != null) {
ObjectMeta metadata = item.getMetadata();
Map<String, String> annotations = metadata.getAnnotations();
if (annotations == null) {
annotations = new HashMap<String, String>();
metadata.setAnnotations(annotations);
}
annotations.put(GUVNOR_ALA_GENERATED, Boolean.TRUE.toString());
}
}
use of io.fabric8.kubernetes.api.model.HasMetadata in project kie-wb-common by kiegroup.
the class OpenShiftClient method getDeploymentConfig.
private DeploymentConfig getDeploymentConfig(KubernetesList list, String svcName) {
if (list != null) {
List<HasMetadata> items = list.getItems();
String dcName = null;
for (HasMetadata item : items) {
if (item instanceof Service && item.getMetadata().getName().equals(svcName)) {
Map<String, String> selector = ((Service) item).getSpec().getSelector();
dcName = selector.get("deploymentconfig");
if (dcName == null) {
dcName = selector.get("deploymentConfig");
}
break;
}
}
if (dcName != null) {
for (HasMetadata item : items) {
if (item instanceof DeploymentConfig && item.getMetadata().getName().equals(dcName)) {
return (DeploymentConfig) item;
}
}
}
}
return null;
}
Aggregations