Signed-off-by: Michal Vala <mvala@redhat.com>7.20.x
parent
e5475206db
commit
f09caebba4
|
|
@ -72,8 +72,8 @@ import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.Exter
|
|||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.ExternalServiceExposureStrategy;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.GatewayServerExposer;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.IngressServerExposer;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.IngressServiceExposureStrategyProvider;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.MultiHostExternalServiceExposureStrategy;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.ServiceExposureStrategyProvider;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.SingleHostExternalServiceExposureStrategy;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.secure.SecureServerExposer;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.secure.SecureServerExposerFactory;
|
||||
|
|
@ -158,8 +158,7 @@ public class KubernetesInfraModule extends AbstractModule {
|
|||
ingressStrategies
|
||||
.addBinding(DEFAULT_HOST_STRATEGY)
|
||||
.to(DefaultHostExternalServiceExposureStrategy.class);
|
||||
bind(ExternalServiceExposureStrategy.class)
|
||||
.toProvider(IngressServiceExposureStrategyProvider.class);
|
||||
bind(ExternalServiceExposureStrategy.class).toProvider(ServiceExposureStrategyProvider.class);
|
||||
|
||||
MapBinder<WorkspaceExposureType, ExternalServerExposer<KubernetesEnvironment>>
|
||||
exposureStrategies =
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
package org.eclipse.che.workspace.infrastructure.kubernetes.server.external;
|
||||
|
||||
import static java.lang.String.format;
|
||||
import static org.eclipse.che.workspace.infrastructure.kubernetes.server.external.IngressServiceExposureStrategyProvider.STRATEGY_PROPERTY;
|
||||
import static org.eclipse.che.workspace.infrastructure.kubernetes.server.external.ServiceExposureStrategyProvider.STRATEGY_PROPERTY;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import javax.inject.Inject;
|
||||
|
|
|
|||
|
|
@ -21,15 +21,14 @@ import javax.inject.Singleton;
|
|||
import org.eclipse.che.inject.ConfigurationException;
|
||||
|
||||
@Singleton
|
||||
public class IngressServiceExposureStrategyProvider
|
||||
implements Provider<ExternalServiceExposureStrategy> {
|
||||
public class ServiceExposureStrategyProvider implements Provider<ExternalServiceExposureStrategy> {
|
||||
|
||||
public static final String STRATEGY_PROPERTY = "che.infra.kubernetes.server_strategy";
|
||||
|
||||
private final ExternalServiceExposureStrategy namingStrategy;
|
||||
|
||||
@Inject
|
||||
public IngressServiceExposureStrategyProvider(
|
||||
public ServiceExposureStrategyProvider(
|
||||
@Named(STRATEGY_PROPERTY) String strategy,
|
||||
Map<String, ExternalServiceExposureStrategy> strategies) {
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ import java.util.function.BiFunction;
|
|||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.IngressServiceExposureStrategyProvider;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.ServiceExposureStrategyProvider;
|
||||
|
||||
/**
|
||||
* The cookie path for the access token cookie is server-strategy dependent. This class represents
|
||||
|
|
@ -42,7 +42,7 @@ public class CookiePathStrategy {
|
|||
|
||||
@Inject
|
||||
public CookiePathStrategy(
|
||||
@Named(IngressServiceExposureStrategyProvider.STRATEGY_PROPERTY) String serverStrategy) {
|
||||
@Named(ServiceExposureStrategyProvider.STRATEGY_PROPERTY) String serverStrategy) {
|
||||
switch (serverStrategy) {
|
||||
case MULTI_HOST_STRATEGY:
|
||||
getCookiePath = (__, ___) -> "/";
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import org.eclipse.che.workspace.infrastructure.kubernetes.namespace.pvc.Workspa
|
|||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.AsyncStoragePodInterceptor;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.AsyncStorageProvisioner;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.CertificateProvisioner;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.GatewayRouterProvisioner;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.GitConfigProvisioner;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.ImagePullSecretProvisioner;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.LogsVolumeMachineProvisioner;
|
||||
|
|
@ -80,6 +81,7 @@ public class OpenShiftEnvironmentProvisioner
|
|||
private final GitConfigProvisioner gitConfigProvisioner;
|
||||
private final PreviewUrlExposer<OpenShiftEnvironment> previewUrlExposer;
|
||||
private final VcsSslCertificateProvisioner vcsSslCertificateProvisioner;
|
||||
private final GatewayRouterProvisioner gatewayRouterProvisioner;
|
||||
|
||||
@Inject
|
||||
public OpenShiftEnvironmentProvisioner(
|
||||
|
|
@ -103,7 +105,8 @@ public class OpenShiftEnvironmentProvisioner
|
|||
SshKeysProvisioner sshKeysProvisioner,
|
||||
GitConfigProvisioner gitConfigProvisioner,
|
||||
OpenShiftPreviewUrlExposer previewUrlEndpointsProvisioner,
|
||||
VcsSslCertificateProvisioner vcsSslCertificateProvisioner) {
|
||||
VcsSslCertificateProvisioner vcsSslCertificateProvisioner,
|
||||
GatewayRouterProvisioner gatewayRouterProvisioner) {
|
||||
this.pvcEnabled = pvcEnabled;
|
||||
this.volumesStrategy = volumesStrategy;
|
||||
this.uniqueNamesProvisioner = uniqueNamesProvisioner;
|
||||
|
|
@ -125,6 +128,7 @@ public class OpenShiftEnvironmentProvisioner
|
|||
this.gitConfigProvisioner = gitConfigProvisioner;
|
||||
this.previewUrlExposer = previewUrlEndpointsProvisioner;
|
||||
this.vcsSslCertificateProvisioner = vcsSslCertificateProvisioner;
|
||||
this.gatewayRouterProvisioner = gatewayRouterProvisioner;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -164,6 +168,7 @@ public class OpenShiftEnvironmentProvisioner
|
|||
sshKeysProvisioner.provision(osEnv, identity);
|
||||
vcsSslCertificateProvisioner.provision(osEnv, identity);
|
||||
gitConfigProvisioner.provision(osEnv, identity);
|
||||
gatewayRouterProvisioner.provision(osEnv, identity);
|
||||
LOG.debug(
|
||||
"Provisioning OpenShift environment done for workspace '{}'", identity.getWorkspaceId());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ import static org.eclipse.che.api.workspace.server.devfile.Constants.OPENSHIFT_C
|
|||
import static org.eclipse.che.workspace.infrastructure.kubernetes.namespace.pvc.CommonPVCStrategy.COMMON_STRATEGY;
|
||||
import static org.eclipse.che.workspace.infrastructure.kubernetes.namespace.pvc.PerWorkspacePVCStrategy.PER_WORKSPACE_STRATEGY;
|
||||
import static org.eclipse.che.workspace.infrastructure.kubernetes.namespace.pvc.UniqueWorkspacePVCStrategy.UNIQUE_STRATEGY;
|
||||
import static org.eclipse.che.workspace.infrastructure.kubernetes.server.external.MultiHostExternalServiceExposureStrategy.MULTI_HOST_STRATEGY;
|
||||
import static org.eclipse.che.workspace.infrastructure.kubernetes.server.external.SingleHostExternalServiceExposureStrategy.SINGLE_HOST_STRATEGY;
|
||||
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.inject.TypeLiteral;
|
||||
|
|
@ -72,6 +74,8 @@ import org.eclipse.che.workspace.infrastructure.kubernetes.server.WorkspaceExpos
|
|||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.ExternalServerExposer;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.ExternalServiceExposureStrategy;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.GatewayServerExposer;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.ServiceExposureStrategyProvider;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.external.SingleHostExternalServiceExposureStrategy;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.secure.SecureServerExposer;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.secure.SecureServerExposerFactory;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.server.secure.SecureServerExposerFactoryProvider;
|
||||
|
|
@ -250,7 +254,13 @@ public class OpenShiftInfraModule extends AbstractModule {
|
|||
KubernetesDevfileBindings.addAllowedEnvironmentTypeUpgradeBindings(
|
||||
binder(), OpenShiftEnvironment.TYPE, KubernetesEnvironment.TYPE);
|
||||
|
||||
bind(ExternalServiceExposureStrategy.class).to(OpenShiftServerExposureStrategy.class);
|
||||
MapBinder<String, ExternalServiceExposureStrategy> ingressStrategies =
|
||||
MapBinder.newMapBinder(binder(), String.class, ExternalServiceExposureStrategy.class);
|
||||
ingressStrategies.addBinding(MULTI_HOST_STRATEGY).to(OpenShiftServerExposureStrategy.class);
|
||||
ingressStrategies
|
||||
.addBinding(SINGLE_HOST_STRATEGY)
|
||||
.to(SingleHostExternalServiceExposureStrategy.class);
|
||||
bind(ExternalServiceExposureStrategy.class).toProvider(ServiceExposureStrategyProvider.class);
|
||||
bind(CookiePathStrategy.class).to(OpenShiftCookiePathStrategy.class);
|
||||
bind(NonTlsDistributedClusterModeNotifier.class);
|
||||
bind(AsyncStorageProvisioner.class);
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import org.eclipse.che.workspace.infrastructure.kubernetes.namespace.pvc.Workspa
|
|||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.AsyncStoragePodInterceptor;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.AsyncStorageProvisioner;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.CertificateProvisioner;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.GatewayRouterProvisioner;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.GitConfigProvisioner;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.ImagePullSecretProvisioner;
|
||||
import org.eclipse.che.workspace.infrastructure.kubernetes.provision.LogsVolumeMachineProvisioner;
|
||||
|
|
@ -76,6 +77,7 @@ public class OpenShiftEnvironmentProvisionerTest {
|
|||
@Mock private OpenShiftPreviewUrlExposer previewUrlEndpointsProvisioner;
|
||||
@Mock private VcsSslCertificateProvisioner vcsSslCertificateProvisioner;
|
||||
@Mock private NodeSelectorProvisioner nodeSelectorProvisioner;
|
||||
@Mock private GatewayRouterProvisioner gatewayRouterProvisioner;
|
||||
|
||||
private OpenShiftEnvironmentProvisioner osInfraProvisioner;
|
||||
|
||||
|
|
@ -106,7 +108,8 @@ public class OpenShiftEnvironmentProvisionerTest {
|
|||
sshKeysProvisioner,
|
||||
gitConfigProvisioner,
|
||||
previewUrlEndpointsProvisioner,
|
||||
vcsSslCertificateProvisioner);
|
||||
vcsSslCertificateProvisioner,
|
||||
gatewayRouterProvisioner);
|
||||
provisionOrder =
|
||||
inOrder(
|
||||
logsVolumeMachineProvisioner,
|
||||
|
|
@ -126,7 +129,8 @@ public class OpenShiftEnvironmentProvisionerTest {
|
|||
sshKeysProvisioner,
|
||||
vcsSslCertificateProvisioner,
|
||||
gitConfigProvisioner,
|
||||
previewUrlEndpointsProvisioner);
|
||||
previewUrlEndpointsProvisioner,
|
||||
gatewayRouterProvisioner);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -152,6 +156,7 @@ public class OpenShiftEnvironmentProvisionerTest {
|
|||
provisionOrder.verify(sshKeysProvisioner).provision(eq(osEnv), eq(runtimeIdentity));
|
||||
provisionOrder.verify(vcsSslCertificateProvisioner).provision(eq(osEnv), eq(runtimeIdentity));
|
||||
provisionOrder.verify(gitConfigProvisioner).provision(eq(osEnv), eq(runtimeIdentity));
|
||||
provisionOrder.verify(gatewayRouterProvisioner).provision(eq(osEnv), eq(runtimeIdentity));
|
||||
provisionOrder.verifyNoMoreInteractions();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue