Search in sources :

Example 1 with OpenshiftConfig

use of io.dekorate.openshift.config.OpenshiftConfig in project dekorate by dekorateio.

the class OpenshiftSessionListener method onClosed.

@Override
public void onClosed() {
    Session session = getSession();
    Project project = getProject();
    // We ned to set the TTCL, becuase the KubenretesClient used in this part of
    // code, needs TTCL so that java.util.ServiceLoader can work.
    ClassLoader tccl = Thread.currentThread().getContextClassLoader();
    List<ProjectHook> hooks = new ArrayList<>();
    try {
        Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
        Optional<OpenshiftConfig> optionalAppConfig = session.getConfigurationRegistry().get(OpenshiftConfig.class);
        Optional<ImageConfiguration> optionalImageConfig = session.getConfigurationRegistry().getImageConfig(BuildServiceFactories.supplierMatches(project));
        if (!optionalAppConfig.isPresent() || !optionalImageConfig.isPresent()) {
            return;
        }
        OpenshiftConfig openshiftConfig = optionalAppConfig.get();
        ImageConfiguration imageConfig = optionalImageConfig.get();
        String name = session.getConfigurationRegistry().get(OpenshiftConfig.class).map(c -> c.getName()).orElse(getProject().getBuildInfo().getName());
        BuildService buildService = null;
        boolean s2iEnabled = imageConfig instanceof S2iBuildConfig && ((S2iBuildConfig) imageConfig).isEnabled();
        if (imageConfig.isAutoBuildEnabled() || imageConfig.isAutoPushEnabled() || openshiftConfig.isAutoDeployEnabled()) {
            KubernetesList list = session.getGeneratedResources().get("openshift");
            List<HasMetadata> generated = list != null ? list.getItems() : Collections.emptyList();
            try {
                buildService = optionalImageConfig.map(BuildServiceFactories.create(getProject(), generated)).orElseThrow(() -> new IllegalStateException("No applicable BuildServiceFactory found."));
            } catch (Exception e) {
                BuildServiceFactories.log(project, session.getConfigurationRegistry().getAll(ImageConfiguration.class));
                throw DekorateException.launderThrowable("Failed to lookup BuildService.", e);
            }
            hooks.add(new ImageBuildHook(getProject(), buildService));
        }
        if (imageConfig.isAutoPushEnabled() && !s2iEnabled) {
            hooks.add(new ImagePushHook(getProject(), buildService));
        }
        if (openshiftConfig.isAutoDeployEnabled()) {
            hooks.add(new ResourcesApplyHook(getProject(), OPENSHIFT, "oc"));
        }
    } finally {
        Thread.currentThread().setContextClassLoader(tccl);
        if (!hooks.isEmpty()) {
            OrderedHook hook = OrderedHook.create(hooks.toArray(new ProjectHook[hooks.size()]));
            hook.register();
        }
    }
}
Also used : DekorateException(io.dekorate.DekorateException) WithProject(io.dekorate.WithProject) KubernetesList(io.fabric8.kubernetes.api.model.KubernetesList) ImageBuildHook(io.dekorate.hook.ImageBuildHook) ProjectHook(io.dekorate.hook.ProjectHook) Project(io.dekorate.project.Project) BuildServiceFactories(io.dekorate.BuildServiceFactories) BuildService(io.dekorate.BuildService) HasMetadata(io.fabric8.kubernetes.api.model.HasMetadata) ArrayList(java.util.ArrayList) List(java.util.List) OrderedHook(io.dekorate.hook.OrderedHook) Session(io.dekorate.Session) ResourcesApplyHook(io.dekorate.hook.ResourcesApplyHook) ImageConfiguration(io.dekorate.kubernetes.config.ImageConfiguration) OpenshiftConfig(io.dekorate.openshift.config.OpenshiftConfig) Optional(java.util.Optional) S2iBuildConfig(io.dekorate.s2i.config.S2iBuildConfig) WithSession(io.dekorate.WithSession) ImagePushHook(io.dekorate.hook.ImagePushHook) Collections(java.util.Collections) SessionListener(io.dekorate.SessionListener) S2iBuildConfig(io.dekorate.s2i.config.S2iBuildConfig) HasMetadata(io.fabric8.kubernetes.api.model.HasMetadata) ProjectHook(io.dekorate.hook.ProjectHook) BuildService(io.dekorate.BuildService) ArrayList(java.util.ArrayList) KubernetesList(io.fabric8.kubernetes.api.model.KubernetesList) OpenshiftConfig(io.dekorate.openshift.config.OpenshiftConfig) OrderedHook(io.dekorate.hook.OrderedHook) DekorateException(io.dekorate.DekorateException) WithProject(io.dekorate.WithProject) Project(io.dekorate.project.Project) ResourcesApplyHook(io.dekorate.hook.ResourcesApplyHook) ImageConfiguration(io.dekorate.kubernetes.config.ImageConfiguration) ImageBuildHook(io.dekorate.hook.ImageBuildHook) ImagePushHook(io.dekorate.hook.ImagePushHook) Session(io.dekorate.Session) WithSession(io.dekorate.WithSession)

Example 2 with OpenshiftConfig

use of io.dekorate.openshift.config.OpenshiftConfig in project dekorate by dekorateio.

the class OpenshiftManifestGenerator method generate.

public void generate(OpenshiftConfig config) {
    LOGGER.info("Processing openshift configuration.");
    ImageConfiguration imageConfig = getImageConfiguration(getProject(), config, configurationRegistry);
    Optional<DeploymentConfig> existingDeploymentConfig = resourceRegistry.groups().getOrDefault(OPENSHIFT, new KubernetesListBuilder()).buildItems().stream().filter(i -> i instanceof DeploymentConfig).map(i -> (DeploymentConfig) i).filter(i -> i.getMetadata().getName().equals(config.getName())).findAny();
    if (!existingDeploymentConfig.isPresent()) {
        resourceRegistry.add(OPENSHIFT, createDeploymentConfig(config, imageConfig));
    }
    if (config.isHeadless()) {
        resourceRegistry.decorate(OPENSHIFT, new ApplyHeadlessDecorator(config.getName()));
    }
    for (Container container : config.getInitContainers()) {
        resourceRegistry.decorate(OPENSHIFT, new AddInitContainerDecorator(config.getName(), container));
    }
    if (config.getPorts().length > 0) {
        resourceRegistry.decorate(OPENSHIFT, new AddServiceResourceDecorator(config));
    }
    addDecorators(OPENSHIFT, config, imageConfig);
}
Also used : KubernetesListBuilder(io.fabric8.kubernetes.api.model.KubernetesListBuilder) WithProject(io.dekorate.WithProject) ApplyDeploymentTriggerDecorator(io.dekorate.openshift.decorator.ApplyDeploymentTriggerDecorator) Strings(io.dekorate.utils.Strings) Images(io.dekorate.utils.Images) EditableOpenshiftConfig(io.dekorate.openshift.config.EditableOpenshiftConfig) Project(io.dekorate.project.Project) AbstractKubernetesManifestGenerator(io.dekorate.AbstractKubernetesManifestGenerator) ApplyProjectInfo(io.dekorate.project.ApplyProjectInfo) PodTemplateSpec(io.fabric8.kubernetes.api.model.PodTemplateSpec) AddVcsUrlAnnotationDecorator(io.dekorate.kubernetes.decorator.AddVcsUrlAnnotationDecorator) OpenshiftLabels(io.dekorate.openshift.OpenshiftLabels) Label(io.dekorate.kubernetes.config.Label) ApplyDeployToApplicationConfiguration(io.dekorate.kubernetes.configurator.ApplyDeployToApplicationConfiguration) PodSpecBuilder(io.fabric8.kubernetes.api.model.PodSpecBuilder) PodSpec(io.fabric8.kubernetes.api.model.PodSpec) DeploymentConfigBuilder(io.fabric8.openshift.api.model.DeploymentConfigBuilder) OpenshiftConfig(io.dekorate.openshift.config.OpenshiftConfig) Labels(io.dekorate.utils.Labels) ConfigurationSupplier(io.dekorate.config.ConfigurationSupplier) AddLabelDecorator(io.dekorate.kubernetes.decorator.AddLabelDecorator) AddServiceResourceDecorator(io.dekorate.kubernetes.decorator.AddServiceResourceDecorator) PodTemplateSpecBuilder(io.fabric8.kubernetes.api.model.PodTemplateSpecBuilder) ConfigKey(io.dekorate.kubernetes.config.ConfigKey) Logger(io.dekorate.Logger) ApplyReplicasDecorator(io.dekorate.openshift.decorator.ApplyReplicasDecorator) KubernetesListBuilder(io.fabric8.kubernetes.api.model.KubernetesListBuilder) Annotations(io.dekorate.utils.Annotations) Configuration(io.dekorate.kubernetes.config.Configuration) ConfigurationRegistry(io.dekorate.ConfigurationRegistry) LoggerFactory(io.dekorate.LoggerFactory) BuildServiceFactories(io.dekorate.BuildServiceFactories) DeploymentConfig(io.fabric8.openshift.api.model.DeploymentConfig) AddInitContainerDecorator(io.dekorate.kubernetes.decorator.AddInitContainerDecorator) VcsConfig(io.dekorate.option.config.VcsConfig) ImageConfigurationBuilder(io.dekorate.kubernetes.config.ImageConfigurationBuilder) Container(io.dekorate.kubernetes.config.Container) AddRouteDecorator(io.dekorate.openshift.decorator.AddRouteDecorator) OpenshiftConfigBuilder(io.dekorate.openshift.config.OpenshiftConfigBuilder) ImageConfiguration(io.dekorate.kubernetes.config.ImageConfiguration) ResourceRegistry(io.dekorate.ResourceRegistry) Optional(java.util.Optional) ApplyHeadlessDecorator(io.dekorate.kubernetes.decorator.ApplyHeadlessDecorator) OpenshiftAnnotations(io.dekorate.openshift.OpenshiftAnnotations) AddCommitIdAnnotationDecorator(io.dekorate.kubernetes.decorator.AddCommitIdAnnotationDecorator) RemoveAnnotationDecorator(io.dekorate.kubernetes.decorator.RemoveAnnotationDecorator) Git(io.dekorate.utils.Git) Container(io.dekorate.kubernetes.config.Container) ImageConfiguration(io.dekorate.kubernetes.config.ImageConfiguration) AddServiceResourceDecorator(io.dekorate.kubernetes.decorator.AddServiceResourceDecorator) ApplyHeadlessDecorator(io.dekorate.kubernetes.decorator.ApplyHeadlessDecorator) DeploymentConfig(io.fabric8.openshift.api.model.DeploymentConfig) AddInitContainerDecorator(io.dekorate.kubernetes.decorator.AddInitContainerDecorator)

Example 3 with OpenshiftConfig

use of io.dekorate.openshift.config.OpenshiftConfig in project dekorate by dekorateio.

the class OpenshiftConfigGeneratorTest method shouldGenerateOpenshiftAndWriteToTheFilesystem.

@Test
public void shouldGenerateOpenshiftAndWriteToTheFilesystem() {
    WithProject withProject = new WithProject() {
    };
    withProject.setProject(FileProjectFactory.create(new File(".")).withDekorateOutputDir(tempDir.toAbsolutePath().toString()).withDekorateMetaDir(tempDir.toAbsolutePath().toString()));
    SessionWriter writer = new SimpleFileWriter(withProject.getProject());
    Session session = Session.getSession();
    session.setWriter(writer);
    OpenshiftConfigGenerator generator = new DefaultOpenshiftConfigGenerator(session.getConfigurationRegistry());
    Map<String, Object> openshiftConfig = new HashMap<String, Object>() {

        {
            put(OpenshiftConfig.class.getName(), new HashMap<String, Object>() {

                {
                    put("name", "generator-test");
                    put("version", "latest");
                    put("replicas", 2);
                }
            });
        }
    };
    generator.addPropertyConfiguration(openshiftConfig);
    final Map<String, String> result = session.close();
    KubernetesList list = session.getGeneratedResources().get("openshift");
    assertThat(list).isNotNull();
    assertThat(list.getItems()).filteredOn(i -> "DeploymentConfig".equals(i.getKind())).filteredOn(i -> ((DeploymentConfig) i).getSpec().getReplicas() == 2).isNotEmpty();
    assertThat(tempDir.resolve("openshift.json")).exists();
    assertThat(tempDir.resolve("openshift.yml")).exists();
    assertThat(result).hasSize(5);
}
Also used : WithProject(io.dekorate.WithProject) KubernetesList(io.fabric8.kubernetes.api.model.KubernetesList) Files(java.nio.file.Files) SimpleFileWriter(io.dekorate.processor.SimpleFileWriter) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) DeploymentConfig(io.fabric8.openshift.api.model.DeploymentConfig) IOException(java.io.IOException) HashMap(java.util.HashMap) File(java.io.File) Test(org.junit.jupiter.api.Test) DefaultOpenshiftConfigGenerator(io.dekorate.openshift.config.DefaultOpenshiftConfigGenerator) FileProjectFactory(io.dekorate.project.FileProjectFactory) Session(io.dekorate.Session) BeforeAll(org.junit.jupiter.api.BeforeAll) Map(java.util.Map) OpenshiftConfig(io.dekorate.openshift.config.OpenshiftConfig) OpenshiftConfigGenerator(io.dekorate.openshift.config.OpenshiftConfigGenerator) SessionWriter(io.dekorate.SessionWriter) Path(java.nio.file.Path) HashMap(java.util.HashMap) KubernetesList(io.fabric8.kubernetes.api.model.KubernetesList) OpenshiftConfig(io.dekorate.openshift.config.OpenshiftConfig) WithProject(io.dekorate.WithProject) SessionWriter(io.dekorate.SessionWriter) DefaultOpenshiftConfigGenerator(io.dekorate.openshift.config.DefaultOpenshiftConfigGenerator) DeploymentConfig(io.fabric8.openshift.api.model.DeploymentConfig) File(java.io.File) DefaultOpenshiftConfigGenerator(io.dekorate.openshift.config.DefaultOpenshiftConfigGenerator) OpenshiftConfigGenerator(io.dekorate.openshift.config.OpenshiftConfigGenerator) SimpleFileWriter(io.dekorate.processor.SimpleFileWriter) Session(io.dekorate.Session) Test(org.junit.jupiter.api.Test)

Example 4 with OpenshiftConfig

use of io.dekorate.openshift.config.OpenshiftConfig in project dekorate by dekorateio.

the class OpenshiftExtension method startProject.

private void startProject(ExtensionContext context, Project project) throws InterruptedException {
    LOGGER.info("Starting project at " + project.getRoot());
    OpenshiftIntegrationTestConfig config = getOpenshiftIntegrationTestConfig(context);
    KubernetesClient client = getKubernetesClient(context);
    KubernetesList list = getOpenshiftResources(context, project);
    OpenshiftConfig openshiftConfig = getOpenshiftConfig(project);
    ImageConfiguration imageConfiguration = ImageConfiguration.from(openshiftConfig);
    BuildService buildService = null;
    try {
        BuildServiceFactory buildServiceFactory = BuildServiceFactories.find(project, imageConfiguration).orElseThrow(() -> new IllegalStateException("No applicable BuildServiceFactory found."));
        buildService = buildServiceFactory.create(project, imageConfiguration, list.getItems());
    } catch (Exception e) {
        throw DekorateException.launderThrowable("Failed to lookup BuildService.", e);
    }
    if (config.isPushEnabled()) {
        buildService.prepare();
        buildService.build();
        buildService.push();
    } else if (config.isBuildEnabled()) {
        buildService.prepare();
        buildService.build();
    }
    if (config.isDeployEnabled()) {
        // Create the remaining resources.
        list.getItems().stream().filter(i -> !(i instanceof BuildConfig)).forEach(i -> {
            try {
                HasMetadata r = client.resource(i).fromServer().get();
                if (r == null) {
                    client.resource(i).apply();
                } else if (r instanceof ImageStream) {
                // let's not delete image streams at this point
                } else if (deleteAndWait(context, i, 1, TimeUnit.MINUTES)) {
                    client.resource(i).apply();
                }
            } catch (Exception e) {
                e.printStackTrace(System.err);
            }
            LOGGER.info("Created: " + i.getKind() + " name:" + i.getMetadata().getName() + ".");
        });
        List<HasMetadata> waitables = list.getItems().stream().filter(i -> i instanceof Deployment || i instanceof DeploymentConfig || i instanceof Pod || i instanceof ReplicaSet || i instanceof ReplicationController).collect(Collectors.toList());
        long started = System.currentTimeMillis();
        LOGGER.info("Waiting until ready (" + config.getReadinessTimeout() + " ms)...");
        waitUntilCondition(context, waitables, i -> OpenshiftReadiness.isReady(i), config.getReadinessTimeout(), TimeUnit.MILLISECONDS);
        long ended = System.currentTimeMillis();
        LOGGER.info("Waited: " + (ended - started) + " ms.");
        // Display the item status
        waitables.stream().map(r -> client.resource(r).fromServer().get()).forEach(i -> {
            if (!OpenshiftReadiness.isReady(i)) {
                readinessFailed(context);
                LOGGER.warning(i.getKind() + ":" + i.getMetadata().getName() + " not ready!");
            }
        });
        if (hasReadinessFailed(context)) {
            throw new IllegalStateException("Readiness Failed");
        }
    }
}
Also used : WithEvents(io.dekorate.testing.WithEvents) WithProject(io.dekorate.testing.WithProject) ReplicaSet(io.fabric8.kubernetes.api.model.apps.ReplicaSet) Arrays(java.util.Arrays) Project(io.dekorate.project.Project) OpenshiftIntegrationTestConfig(io.dekorate.testing.openshift.config.OpenshiftIntegrationTestConfig) WithKubernetesClient(io.dekorate.testing.WithKubernetesClient) ExtensionContext(org.junit.jupiter.api.extension.ExtensionContext) OpenshiftConfig(io.dekorate.openshift.config.OpenshiftConfig) VersionInfo(io.fabric8.kubernetes.client.VersionInfo) TestWatcher(org.junit.jupiter.api.extension.TestWatcher) ImageStream(io.fabric8.openshift.api.model.ImageStream) DekorateException(io.dekorate.DekorateException) Logger(io.dekorate.Logger) KubernetesList(io.fabric8.kubernetes.api.model.KubernetesList) WithPod(io.dekorate.testing.WithPod) Internal(io.dekorate.kubernetes.annotation.Internal) LoggerFactory(io.dekorate.LoggerFactory) ReplicationController(io.fabric8.kubernetes.api.model.ReplicationController) BuildServiceFactories(io.dekorate.BuildServiceFactories) Pod(io.fabric8.kubernetes.api.model.Pod) DeploymentConfig(io.fabric8.openshift.api.model.DeploymentConfig) BuildService(io.dekorate.BuildService) OpenShiftClient(io.fabric8.openshift.client.OpenShiftClient) Collectors(java.util.stream.Collectors) HasMetadata(io.fabric8.kubernetes.api.model.HasMetadata) TimeUnit(java.util.concurrent.TimeUnit) BuildConfig(io.fabric8.openshift.api.model.BuildConfig) List(java.util.List) ConditionEvaluationResult(org.junit.jupiter.api.extension.ConditionEvaluationResult) BeforeAllCallback(org.junit.jupiter.api.extension.BeforeAllCallback) ExecutionCondition(org.junit.jupiter.api.extension.ExecutionCondition) AfterAllCallback(org.junit.jupiter.api.extension.AfterAllCallback) ImageConfiguration(io.dekorate.kubernetes.config.ImageConfiguration) BuildServiceFactory(io.dekorate.BuildServiceFactory) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Deployment(io.fabric8.kubernetes.api.model.apps.Deployment) WithKubernetesClient(io.dekorate.testing.WithKubernetesClient) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) HasMetadata(io.fabric8.kubernetes.api.model.HasMetadata) WithPod(io.dekorate.testing.WithPod) Pod(io.fabric8.kubernetes.api.model.Pod) BuildService(io.dekorate.BuildService) ImageStream(io.fabric8.openshift.api.model.ImageStream) Deployment(io.fabric8.kubernetes.api.model.apps.Deployment) KubernetesList(io.fabric8.kubernetes.api.model.KubernetesList) OpenshiftConfig(io.dekorate.openshift.config.OpenshiftConfig) DekorateException(io.dekorate.DekorateException) OpenshiftIntegrationTestConfig(io.dekorate.testing.openshift.config.OpenshiftIntegrationTestConfig) ImageConfiguration(io.dekorate.kubernetes.config.ImageConfiguration) BuildServiceFactory(io.dekorate.BuildServiceFactory) ReplicationController(io.fabric8.kubernetes.api.model.ReplicationController) BuildConfig(io.fabric8.openshift.api.model.BuildConfig) DeploymentConfig(io.fabric8.openshift.api.model.DeploymentConfig) ReplicaSet(io.fabric8.kubernetes.api.model.apps.ReplicaSet)

Example 5 with OpenshiftConfig

use of io.dekorate.openshift.config.OpenshiftConfig in project dekorate by dekorateio.

the class OpenshiftExtension method deleteProject.

private void deleteProject(ExtensionContext context, Project project, OpenShiftClient client) {
    getOpenshiftResources(context, project).getItems().stream().filter(r -> !(r instanceof ImageStream)).forEach(r -> {
        try {
            LOGGER.info("Deleting: " + r.getKind() + " name:" + r.getMetadata().getName() + ". Deleted:" + client.resource(r).delete());
        } catch (Exception e) {
        }
    });
    OpenshiftConfig openshiftConfig = getOpenshiftConfig(project);
    List<HasMetadata> buildPods = client.pods().list().getItems().stream().filter(i -> i.getMetadata().getName().matches(openshiftConfig.getName() + "-\\d-build")).collect(Collectors.toList());
    try {
        client.resourceList(buildPods).delete();
        client.deploymentConfigs().withName(openshiftConfig.getName()).delete();
    } catch (Exception e) {
    }
}
Also used : WithEvents(io.dekorate.testing.WithEvents) WithProject(io.dekorate.testing.WithProject) ReplicaSet(io.fabric8.kubernetes.api.model.apps.ReplicaSet) Arrays(java.util.Arrays) Project(io.dekorate.project.Project) OpenshiftIntegrationTestConfig(io.dekorate.testing.openshift.config.OpenshiftIntegrationTestConfig) WithKubernetesClient(io.dekorate.testing.WithKubernetesClient) ExtensionContext(org.junit.jupiter.api.extension.ExtensionContext) OpenshiftConfig(io.dekorate.openshift.config.OpenshiftConfig) VersionInfo(io.fabric8.kubernetes.client.VersionInfo) TestWatcher(org.junit.jupiter.api.extension.TestWatcher) ImageStream(io.fabric8.openshift.api.model.ImageStream) DekorateException(io.dekorate.DekorateException) Logger(io.dekorate.Logger) KubernetesList(io.fabric8.kubernetes.api.model.KubernetesList) WithPod(io.dekorate.testing.WithPod) Internal(io.dekorate.kubernetes.annotation.Internal) LoggerFactory(io.dekorate.LoggerFactory) ReplicationController(io.fabric8.kubernetes.api.model.ReplicationController) BuildServiceFactories(io.dekorate.BuildServiceFactories) Pod(io.fabric8.kubernetes.api.model.Pod) DeploymentConfig(io.fabric8.openshift.api.model.DeploymentConfig) BuildService(io.dekorate.BuildService) OpenShiftClient(io.fabric8.openshift.client.OpenShiftClient) Collectors(java.util.stream.Collectors) HasMetadata(io.fabric8.kubernetes.api.model.HasMetadata) TimeUnit(java.util.concurrent.TimeUnit) BuildConfig(io.fabric8.openshift.api.model.BuildConfig) List(java.util.List) ConditionEvaluationResult(org.junit.jupiter.api.extension.ConditionEvaluationResult) BeforeAllCallback(org.junit.jupiter.api.extension.BeforeAllCallback) ExecutionCondition(org.junit.jupiter.api.extension.ExecutionCondition) AfterAllCallback(org.junit.jupiter.api.extension.AfterAllCallback) ImageConfiguration(io.dekorate.kubernetes.config.ImageConfiguration) BuildServiceFactory(io.dekorate.BuildServiceFactory) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Deployment(io.fabric8.kubernetes.api.model.apps.Deployment) HasMetadata(io.fabric8.kubernetes.api.model.HasMetadata) ImageStream(io.fabric8.openshift.api.model.ImageStream) OpenshiftConfig(io.dekorate.openshift.config.OpenshiftConfig) DekorateException(io.dekorate.DekorateException)

Aggregations

OpenshiftConfig (io.dekorate.openshift.config.OpenshiftConfig)5 BuildServiceFactories (io.dekorate.BuildServiceFactories)4 ImageConfiguration (io.dekorate.kubernetes.config.ImageConfiguration)4 Project (io.dekorate.project.Project)4 BuildService (io.dekorate.BuildService)3 DekorateException (io.dekorate.DekorateException)3 Logger (io.dekorate.Logger)3 LoggerFactory (io.dekorate.LoggerFactory)3 WithProject (io.dekorate.WithProject)3 KubernetesList (io.fabric8.kubernetes.api.model.KubernetesList)3 DeploymentConfig (io.fabric8.openshift.api.model.DeploymentConfig)3 BuildServiceFactory (io.dekorate.BuildServiceFactory)2 Session (io.dekorate.Session)2 Internal (io.dekorate.kubernetes.annotation.Internal)2 WithEvents (io.dekorate.testing.WithEvents)2 WithKubernetesClient (io.dekorate.testing.WithKubernetesClient)2 WithPod (io.dekorate.testing.WithPod)2 WithProject (io.dekorate.testing.WithProject)2 OpenshiftIntegrationTestConfig (io.dekorate.testing.openshift.config.OpenshiftIntegrationTestConfig)2 HasMetadata (io.fabric8.kubernetes.api.model.HasMetadata)2