Skip to content
This repository has been archived by the owner on Jun 19, 2024. It is now read-only.

Added ingress support for fabric8:resource #1631

Merged
merged 3 commits into from
Jun 18, 2019
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
*/
package io.fabric8.maven.core.config;

import java.util.Properties;

import org.apache.maven.plugins.annotations.Parameter;

import java.util.Properties;

/**
* Configuration for labels or annotations
*
Expand Down Expand Up @@ -57,6 +57,12 @@ public class MetaDataConfig {
@Parameter
private Properties deployment;

/**
* Labels or annotations for deployment or deployment configs
*/
@Parameter
private Properties ingress;

public Properties getPod() {
return pod;
}
Expand All @@ -76,4 +82,8 @@ public Properties getAll() {
public Properties getDeployment() {
return deployment;
}

public Properties getIngress() {
return ingress;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.fabric8.maven.core.config;

import io.fabric8.kubernetes.api.model.extensions.IngressRule;
import org.apache.maven.plugins.annotations.Parameter;

import java.util.List;
Expand Down Expand Up @@ -91,6 +92,8 @@ public class ResourceConfig {
@Parameter
private List<ServiceAccountConfig> serviceAccounts;

private List<IngressRule> ingressRules;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dev-gaur : Why are you using a kuberenetes model class instead of a custom config class used in other xml config resources here?


public Optional<Map<String, String>> getEnv() {
return Optional.ofNullable(env);
}
Expand Down Expand Up @@ -164,9 +167,9 @@ public ConfigMap getConfigMap() {
public List<String> getRemotes() {
return remotes;
}

public List<String> getCrdContexts() { return customResourceDefinitions; }

public List<IngressRule> getIngressRules() { return ingressRules; }
// =============================================================================================

public static class Builder {
Expand Down Expand Up @@ -194,6 +197,7 @@ public Builder(ResourceConfig config) {
this.config.metrics = config.getMetrics();
this.config.namespace = config.getNamespace();
this.config.remotes = config.remotes;
this.config.ingressRules = config.getIngressRules();
}
}

Expand Down Expand Up @@ -252,6 +256,11 @@ public Builder withRemotes(List<String> remotes) {
return this;
}

public Builder withIngressRules(List<IngressRule> ingressRules) {
config.ingressRules = ingressRules;
return this;
}

public Builder withNamespace(String s) {
config.namespace = s;
return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,33 +15,6 @@
*/
package io.fabric8.maven.core.util.kubernetes;

import io.fabric8.maven.core.config.PlatformMode;
import io.fabric8.maven.core.model.GroupArtifactVersion;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.UnknownHostException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
Expand Down Expand Up @@ -69,12 +42,22 @@
import io.fabric8.kubernetes.api.model.PodTemplateSpec;
import io.fabric8.kubernetes.api.model.ReplicationController;
import io.fabric8.kubernetes.api.model.ReplicationControllerSpec;
import io.fabric8.kubernetes.api.model.apps.*;
import io.fabric8.kubernetes.api.model.apps.DaemonSet;
import io.fabric8.kubernetes.api.model.apps.DaemonSetSpec;
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.ReplicaSet;
import io.fabric8.kubernetes.api.model.apps.ReplicaSetSpec;
import io.fabric8.kubernetes.api.model.apps.StatefulSet;
import io.fabric8.kubernetes.api.model.apps.StatefulSetSpec;
import io.fabric8.kubernetes.api.model.batch.Job;
import io.fabric8.kubernetes.api.model.batch.JobSpec;
import io.fabric8.kubernetes.client.KubernetesClientException;
import io.fabric8.kubernetes.internal.HasMetadataComparator;
import io.fabric8.maven.core.util.FileUtil;
import io.fabric8.maven.core.config.PlatformMode;
import io.fabric8.maven.core.model.GroupArtifactVersion;
import io.fabric8.maven.core.util.MapUtil;
import io.fabric8.maven.core.util.ResourceUtil;
import io.fabric8.maven.core.util.ResourceVersioning;
Expand All @@ -90,6 +73,31 @@
import org.apache.maven.plugin.MojoExecutionException;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.UnknownHostException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import static io.fabric8.maven.core.util.Constants.RESOURCE_APP_CATALOG_ANNOTATION;
import static io.fabric8.maven.core.util.Constants.RESOURCE_SOURCE_URL_ANNOTATION;

Expand Down Expand Up @@ -275,7 +283,7 @@ private static Map<String, Object> readAndEnrichFragment(PlatformMode platformMo
addKind(fragment, kind, file.getName());

String apiVersion = apiVersions.getCoreVersion();
if (Objects.equals(kind, "Ingress")) {
if (Objects.equals(kind, "Ingress") && platformMode == PlatformMode.kubernetes) {
apiVersion = apiVersions.getExtensionsVersion();
} else if (Objects.equals(kind, "StatefulSet") || Objects.equals(kind, "Deployment")) {
apiVersion = apiVersions.getAppsVersion();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@
|ImageStreamTag
|`istag`, `imagestreamtag`

|Ingress
|`ingress`

|Job
|`job`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ public enum Kind {
JOB,
POD_SPEC,
BUILD_CONFIG,
BUILD;
BUILD,
INGRESS;

/**
* Returns true if the kind is a controller
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,17 @@
*/
package io.fabric8.maven.enricher.api.visitor;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import io.fabric8.kubernetes.api.builder.TypedVisitor;
import io.fabric8.kubernetes.api.model.*;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.PodTemplateSpecBuilder;
import io.fabric8.kubernetes.api.model.ReplicationControllerBuilder;
import io.fabric8.kubernetes.api.model.ServiceBuilder;
import io.fabric8.kubernetes.api.model.apps.DaemonSetBuilder;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
import io.fabric8.kubernetes.api.model.apps.ReplicaSetBuilder;
import io.fabric8.kubernetes.api.model.apps.StatefulSetBuilder;
import io.fabric8.kubernetes.api.model.batch.JobBuilder;
import io.fabric8.kubernetes.api.model.extensions.IngressBuilder;
import io.fabric8.maven.core.config.MetaDataConfig;
import io.fabric8.maven.core.config.ProcessorConfig;
import io.fabric8.maven.core.config.ResourceConfig;
Expand All @@ -37,6 +36,11 @@
import io.fabric8.openshift.api.model.DeploymentConfigBuilder;
import io.fabric8.openshift.api.model.ImageStreamBuilder;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

/**
* Visitor which adds labels and annotations
*
Expand Down Expand Up @@ -107,6 +111,8 @@ private Map<String, String> getMapFromConfiguration(MetaDataConfig config, Kind
ret = propertiesToMap(config.getReplicaSet());
} else if (kind == Kind.POD_SPEC) {
ret = propertiesToMap(config.getPod());
} else if (kind == Kind.INGRESS) {
ret = propertiesToMap(config.getIngress());
} else {
ret = new HashMap<>();
}
Expand Down Expand Up @@ -340,4 +346,20 @@ protected ObjectMeta getOrCreateMetadata(BuildBuilder item) {
return item.hasMetadata() ? item.buildMetadata() : item.withNewMetadata().endMetadata().buildMetadata();
}
}

public static class IngressBuilderVisitor extends MetadataVisitor<IngressBuilder> {
public IngressBuilderVisitor(ResourceConfig resourceConfig) {
super(resourceConfig);
}

@Override
protected Kind getKind() {
return Kind.BUILD;
}

@Override
protected ObjectMeta getOrCreateMetadata(IngressBuilder item) {
return item.hasMetadata() ? item.buildMetadata() : item.withNewMetadata().endMetadata().buildMetadata();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ private void init() {
new MetadataVisitor.ImageStreamBuilderVisitor(resourceConfig),
new MetadataVisitor.BuildConfigBuilderVisitor(resourceConfig),
new MetadataVisitor.BuildBuilderVisitor(resourceConfig),
new MetadataVisitor.IngressBuilderVisitor(resourceConfig)
};
}

Expand Down
Loading