Skip to content

Commit

Permalink
ADD SSO
Browse files Browse the repository at this point in the history
  • Loading branch information
carlosthe19916 committed Mar 7, 2023
1 parent 26e24b4 commit 00b8e0e
Show file tree
Hide file tree
Showing 12 changed files with 224 additions and 40 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Start minikube

```shell
minikube start
minikube start --cpus=8 --memory=10g
minikube addons enable ingress
```

Expand Down
11 changes: 11 additions & 0 deletions src/main/java/org/jboss/windup/operator/AppServerConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.jboss.windup.operator;

import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class AppServerConfig {
private String[] webLivenessProbeCmd;
private String[] webReadinessProbeCmd;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.jboss.windup.operator;

import io.quarkus.arc.DefaultBean;
import io.quarkus.arc.profile.IfBuildProfile;

import javax.enterprise.context.Dependent;
import javax.enterprise.inject.Produces;

@Dependent
public class AppServerConfigProducer {

@Produces
@DefaultBean
public AppServerConfig wildflyConfig() {
return AppServerConfig.builder()
.webLivenessProbeCmd(new String[]{"/bin/sh", "-c", "${JBOSS_HOME}/bin/jboss-cli.sh --connect --commands=ls | grep 'server-state=running'"})
.webReadinessProbeCmd(new String[]{"/bin/sh", "-c", "${JBOSS_HOME}/bin/jboss-cli.sh --connect --commands='ls deployment' | grep 'api.war'"})
.build();
}

@Produces
@IfBuildProfile("eap")
public AppServerConfig eapConfig() {
return AppServerConfig.builder()
.webLivenessProbeCmd(new String[]{"/bin/sh", "-c", "/opt/eap/bin/livenessProbe.sh"})
.webReadinessProbeCmd(new String[]{"/bin/sh", "-c", "/opt/eap/bin/readinessProbe.sh"})
.build();
}

}
24 changes: 11 additions & 13 deletions src/main/java/org/jboss/windup/operator/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,45 +26,43 @@ public class Constants {
public static final String CONTEXT_CONFIG_KEY = "config";
public static final String CONTEXT_K8S_CLIENT_KEY = "k8sClient";

//
public static final String WINDUP_NAME = "windup";
public static final String WINDUP_WEB_NAME = "windup-web";
public static final String WINDUP_EXECUTOR_NAME = "windup-executor";
public static final String WINDUP_DB_NAME = "windup-db";
public static final String WINDUP_DB_NAME = "postgresql";

//
public static final Map<String, String> DB_SELECTOR_LABELS = Map.of(
"openubl-operator/group", "db"
);
public static final Map<String, String> WEB_SELECTOR_LABELS = Map.of(
"openubl-operator/group", "web"
);

public static final Map<String, String> DEFAULT_DIST_CONFIG = Map.of();

//
public static final Integer HTTP_PORT = 8080;
public static final Integer HTTPS_PORT = 8443;
public static final String SERVICE_PROTOCOL = "TCP";

public static final String WEB_SERVICE_SUFFIX = "-" + WINDUP_WEB_NAME + "-service";
public static final String INGRESS_SUFFIX = "-" + WINDUP_WEB_NAME + "-ingress";
public static final String SECRET_SUFFIX = "-" + WINDUP_WEB_NAME + "-secret";
public static final String WEB_DEPLOYMENT_SUFFIX = "-" + WINDUP_WEB_NAME + "-deployment";

//
public static final String DB_PVC_SUFFIX = "-" + WINDUP_DB_NAME + "-pvc";
public static final String DB_SECRET_SUFFIX = "-" + WINDUP_DB_NAME + "-secret";
public static final String DB_DEPLOYMENT_SUFFIX = "-" + WINDUP_DB_NAME + "-deployment";
public static final String DB_SERVICE_SUFFIX = "-" + WINDUP_DB_NAME + "-service";

public static final String WEB_PVC_SUFFIX = "-" + WINDUP_WEB_NAME + "-pvc";
public static final String WEB_DEPLOYMENT_SUFFIX = "-" + WINDUP_WEB_NAME + "-deployment";
public static final String WEB_SERVICE_SUFFIX = "-" + WINDUP_WEB_NAME + "-service";

public static final String EXECUTOR_DEPLOYMENT_SUFFIX = "-" + WINDUP_EXECUTOR_NAME + "-deployment";
public static final String EXECUTOR_SERVICE_SUFFIX = "-" + WINDUP_EXECUTOR_NAME + "-service";

public static final String INGRESS_SUFFIX = "-" + WINDUP_WEB_NAME + "-ingress";

//
public static final String DB_SECRET_USERNAME = "username";
public static final String DB_SECRET_PASSWORD = "password";
public static final String DB_SECRET_DATABASE_NAME = "database";

public static final String CERTIFICATES_FOLDER = "/mnt/certificates";
public static final String WORKSPACES_FOLDER = "/mnt/workspace";

public static final String POSTGRESQL_PVC_SIZE = "1G";
public static final String POSTGRESQL_PVC_SIZE = "10G";
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,23 @@
import io.fabric8.kubernetes.api.model.PodSpecBuilder;
import io.fabric8.kubernetes.api.model.PodTemplateSpecBuilder;
import io.fabric8.kubernetes.api.model.ProbeBuilder;
import io.fabric8.kubernetes.api.model.Quantity;
import io.fabric8.kubernetes.api.model.ResourceRequirementsBuilder;
import io.fabric8.kubernetes.api.model.VolumeBuilder;
import io.fabric8.kubernetes.api.model.VolumeMountBuilder;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
import io.fabric8.kubernetes.api.model.apps.DeploymentSpec;
import io.fabric8.kubernetes.api.model.apps.DeploymentSpecBuilder;
import io.fabric8.kubernetes.api.model.apps.DeploymentStrategyBuilder;
import io.javaoperatorsdk.operator.api.reconciler.Context;
import io.javaoperatorsdk.operator.processing.dependent.Matcher;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition;
import org.jboss.windup.operator.Config;
import org.jboss.windup.operator.Constants;
import org.jboss.windup.operator.utils.CRDUtils;

import javax.enterprise.context.ApplicationScoped;
import java.util.Arrays;
Expand Down Expand Up @@ -114,7 +118,14 @@ private DeploymentSpec getDeploymentSpec(Windup cr, Context<Windup> context) {
String image = config.windup().dbImage();
String imagePullPolicy = config.windup().imagePullPolicy();

WindupSpec.ResourcesLimitSpec resourcesLimitSpec = CRDUtils.getValueFromSubSpec(cr.getSpec().getDatabaseSpec(), WindupSpec.DatabaseSpec::getResourceLimitSpec)
.orElse(null);

return new DeploymentSpecBuilder()
.withStrategy(new DeploymentStrategyBuilder()
.withType("Recreate")
.build()
)
.withReplicas(1)
.withSelector(new LabelSelectorBuilder()
.withMatchLabels(selectorLabels)
Expand All @@ -138,7 +149,7 @@ private DeploymentSpec getDeploymentSpec(Windup cr, Context<Windup> context) {
.withEnv(getEnvVars(cr, config))
.withPorts(new ContainerPortBuilder()
.withName("tcp")
.withProtocol("TCP")
.withProtocol(Constants.SERVICE_PROTOCOL)
.withContainerPort(5432)
.build()
)
Expand Down Expand Up @@ -171,6 +182,17 @@ private DeploymentSpec getDeploymentSpec(Windup cr, Context<Windup> context) {
.withMountPath("/var/lib/pgsql/data")
.build()
)
.withResources(new ResourceRequirementsBuilder()
.withRequests(Map.of(
"cpu", new Quantity(CRDUtils.getValueFromSubSpec(resourcesLimitSpec, WindupSpec.ResourcesLimitSpec::getCpuRequest).orElse("0.5")),
"memory", new Quantity(CRDUtils.getValueFromSubSpec(resourcesLimitSpec, WindupSpec.ResourcesLimitSpec::getMemoryRequest).orElse("0.5Gi"))
))
.withLimits(Map.of(
"cpu", new Quantity(CRDUtils.getValueFromSubSpec(resourcesLimitSpec, WindupSpec.ResourcesLimitSpec::getCpuLimit).orElse("2")),
"memory", new Quantity(CRDUtils.getValueFromSubSpec(resourcesLimitSpec, WindupSpec.ResourcesLimitSpec::getMemoryLimit).orElse("2Gi"))
))
.build()
)
.build()
)
.withVolumes(new VolumeBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ protected PersistentVolumeClaim desired(Windup cr, Context<Windup> context) {
return newPersistentVolumeClaim(cr, context);
}

@SuppressWarnings("unchecked")
private PersistentVolumeClaim newPersistentVolumeClaim(Windup cr, Context<Windup> context) {
final var labels = (Map<String, String>) context.managedDependentResourceContext()
.getMandatory(Constants.CONTEXT_LABELS_KEY, Map.class);
Expand Down Expand Up @@ -73,12 +74,11 @@ private PersistentVolumeClaim newPersistentVolumeClaim(Windup cr, Context<Windup
@Override
public Matcher.Result<PersistentVolumeClaim> match(PersistentVolumeClaim actual, Windup cr, Context<Windup> context) {
final var desiredPersistentVolumeClaimName = getPersistentVolumeClaimName(cr);
Matcher.Result<PersistentVolumeClaim> objectResult = Matcher.Result.nonComputed(actual
return Matcher.Result.nonComputed(actual
.getMetadata()
.getName()
.equals(desiredPersistentVolumeClaimName)
);
return objectResult;
}

public static String getPersistentVolumeClaimName(Windup cr) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
import io.fabric8.kubernetes.api.model.PodSpecBuilder;
import io.fabric8.kubernetes.api.model.PodTemplateSpecBuilder;
import io.fabric8.kubernetes.api.model.ProbeBuilder;
import io.fabric8.kubernetes.api.model.Quantity;
import io.fabric8.kubernetes.api.model.ResourceRequirementsBuilder;
import io.fabric8.kubernetes.api.model.VolumeBuilder;
import io.fabric8.kubernetes.api.model.VolumeMountBuilder;
import io.fabric8.kubernetes.api.model.apps.Deployment;
Expand All @@ -39,6 +41,7 @@
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
import org.jboss.windup.operator.Config;
import org.jboss.windup.operator.Constants;
import org.jboss.windup.operator.utils.CRDUtils;

import javax.enterprise.context.ApplicationScoped;
import java.util.Arrays;
Expand Down Expand Up @@ -99,6 +102,9 @@ private DeploymentSpec getDeploymentSpec(Windup cr, Context<Windup> context) {
String image = config.windup().executorImage();
String imagePullPolicy = config.windup().imagePullPolicy();

WindupSpec.ResourcesLimitSpec resourcesLimitSpec = CRDUtils.getValueFromSubSpec(cr.getSpec(), WindupSpec::getExecutorResourceLimitSpec)
.orElse(null);

return new DeploymentSpecBuilder()
.withStrategy(new DeploymentStrategyBuilder()
.withType("Recreate")
Expand Down Expand Up @@ -164,6 +170,17 @@ private DeploymentSpec getDeploymentSpec(Windup cr, Context<Windup> context) {
.withMountPath("/opt/windup/data")
.build()
)
.withResources(new ResourceRequirementsBuilder()
.withRequests(Map.of(
"cpu", new Quantity(CRDUtils.getValueFromSubSpec(resourcesLimitSpec, WindupSpec.ResourcesLimitSpec::getCpuRequest).orElse("0.5")),
"memory", new Quantity(CRDUtils.getValueFromSubSpec(resourcesLimitSpec, WindupSpec.ResourcesLimitSpec::getMemoryRequest).orElse("0.5Gi"))
))
.withLimits(Map.of(
"cpu", new Quantity(CRDUtils.getValueFromSubSpec(resourcesLimitSpec, WindupSpec.ResourcesLimitSpec::getCpuLimit).orElse("4")),
"memory", new Quantity(CRDUtils.getValueFromSubSpec(resourcesLimitSpec, WindupSpec.ResourcesLimitSpec::getMemoryLimit).orElse("4Gi"))
))
.build()
)
.build()
)
.withVolumes(new VolumeBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ protected PersistentVolumeClaim desired(Windup cr, Context<Windup> context) {
return newPersistentVolumeClaim(cr, context);
}

@SuppressWarnings("unchecked")
private PersistentVolumeClaim newPersistentVolumeClaim(Windup cr, Context<Windup> context) {
final var labels = (Map<String, String>) context.managedDependentResourceContext()
.getMandatory(Constants.CONTEXT_LABELS_KEY, Map.class);
Expand Down
Loading

0 comments on commit 00b8e0e

Please sign in to comment.