diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 80911a80..4ce275b8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,9 +33,9 @@ jobs: - name: KinD (Kubernetes in Docker) Action - uses: engineerd/setup-kind@v0.3.0 + uses: engineerd/setup-kind@v0.5.0 with: - version: v0.8.0 + version: v0.11.1 - name: Kubernetes CLI - kubectl uses: steebchen/kubectl@v1.0.0 diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index 00d32aab..d34f59c2 100755 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -1 +1,2 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip \ No newline at end of file +downloadUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip \ No newline at end of file diff --git a/go.mod b/go.mod index cf65665c..db31f75d 100644 --- a/go.mod +++ b/go.mod @@ -1,14 +1,14 @@ module github.com/snowdrop/istio-java-api - go 1.13 + go 1.13 - require ( - github.com/ghodss/yaml v1.0.0 - github.com/gogo/protobuf v1.3.1 - github.com/openshift/api v3.9.1-0.20191008181517-e4fd21196097+incompatible // indirect - gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e // indirect - istio.io/api v0.0.0-20210128181506-0c4b8e54850f - istio.io/istio v0.0.0-20210129021145-dcbb9a567ff4 - sigs.k8s.io/structured-merge-diff v0.0.0-20190817042607-6149e4549fca // indirect - sigs.k8s.io/testing_frameworks v0.1.2 // indirect - ) + require ( + github.com/ghodss/yaml v1.0.0 + github.com/gogo/protobuf v1.3.1 + github.com/openshift/api v3.9.1-0.20191008181517-e4fd21196097+incompatible // indirect + gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e // indirect + istio.io/api v0.0.0-20210128181506-0c4b8e54850f + istio.io/istio v0.0.0-20210223230603-30e54dcb8a1c + sigs.k8s.io/structured-merge-diff v0.0.0-20190817042607-6149e4549fca // indirect + sigs.k8s.io/testing_frameworks v0.1.2 // indirect + ) diff --git a/go.sum b/go.sum index 34503394..475772ec 100644 --- a/go.sum +++ b/go.sum @@ -1067,6 +1067,8 @@ istio.io/istio v0.0.0-20201116194644-63ddfef22d6a h1:WhYsDWaYUpA0Q1GbsLobNz93qqS istio.io/istio v0.0.0-20201116194644-63ddfef22d6a/go.mod h1:+aqm8IKB5PPuf0evN4PL610ueGC/3YkTr7hUgfQSJTg= istio.io/istio v0.0.0-20210129021145-dcbb9a567ff4 h1:Pklx4cjR6XRaWApkRJWpAqgYKgXEowD39v5Ey0t6AKE= istio.io/istio v0.0.0-20210129021145-dcbb9a567ff4/go.mod h1:HOQAPYUj6hCen/Hpe/yxqYb+PrdI+XOvcutoytMKvsI= +istio.io/istio v0.0.0-20210223230603-30e54dcb8a1c h1:J0Mo4V7SZixhsm5WOaLvi6HaNkhWaxa4ldabiAyfePA= +istio.io/istio v0.0.0-20210223230603-30e54dcb8a1c/go.mod h1:HOQAPYUj6hCen/Hpe/yxqYb+PrdI+XOvcutoytMKvsI= istio.io/pkg v0.0.0-20200511212725-7bfbbf968c23 h1:1GMOTQs9yVdNEBmVKxDlq6ios80gIAOMO1WfKYKYjZo= istio.io/pkg v0.0.0-20200511212725-7bfbbf968c23/go.mod h1:pwGaxLUDLobzL/WvWV94z72LvBbB1dr2UUUyPuasfIU= istio.io/pkg v0.0.0-20200807181912-d97bc429be20 h1:ayjyPYnvRHl1ojG357PQlUEi1sPPC6zPdcllevOwjz0= diff --git a/istio-client/pom.xml b/istio-client/pom.xml index 6c0565b3..72b18156 100644 --- a/istio-client/pom.xml +++ b/istio-client/pom.xml @@ -47,6 +47,11 @@ transform-annotations provided + + io.sundr + sundr-codegen-velocity-nodeps + provided + me.snowdrop istio-model diff --git a/istio-client/src/main/java/me/snowdrop/istio/client/CodeGen.java b/istio-client/src/main/java/me/snowdrop/istio/client/CodeGen.java index f18c561e..9ce6511e 100644 --- a/istio-client/src/main/java/me/snowdrop/istio/client/CodeGen.java +++ b/istio-client/src/main/java/me/snowdrop/istio/client/CodeGen.java @@ -1,14 +1,15 @@ package me.snowdrop.istio.client; -import io.sundr.codegen.annotations.ResourceSelector; -import io.sundr.transform.annotations.VelocityTransformation; -import io.sundr.transform.annotations.VelocityTransformations; +import io.sundr.transform.annotations.ResourceSelector; +import io.sundr.transform.annotations.TemplateTransformation; +import io.sundr.transform.annotations.TemplateTransformations; -@VelocityTransformations( +@TemplateTransformations( value = { - @VelocityTransformation("/resource-operation.vm"), - @VelocityTransformation("/resource-handler.vm"), - @VelocityTransformation(value = "/resource-handler-services.vm", gather = true, outputPath = "META-INF/services/io.fabric8.kubernetes.client.ResourceHandler") + @TemplateTransformation("/resource-operation.vm"), +// @TemplateTransformation("/resource-handler.vm"), + /*@TemplateTransformation(value = "/resource-handler-services.vm", gather = true, outputPath = "META-INF/services/io.fabric8.kubernetes.client.ResourceHandler"),*/ + @TemplateTransformation(value = "/handler-registration.vm", gather = true, outputPath = "me/snowdrop/istio/client/internal/HandlersRegistration.java") }, resources = { @ResourceSelector("crd.properties") diff --git a/istio-client/src/main/java/me/snowdrop/istio/client/DefaultIstioClient.java b/istio-client/src/main/java/me/snowdrop/istio/client/DefaultIstioClient.java index 5559b03d..2aad0408 100644 --- a/istio-client/src/main/java/me/snowdrop/istio/client/DefaultIstioClient.java +++ b/istio-client/src/main/java/me/snowdrop/istio/client/DefaultIstioClient.java @@ -1,50 +1,22 @@ package me.snowdrop.istio.client; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import io.fabric8.kubernetes.api.model.DeletionPropagation; import io.fabric8.kubernetes.api.model.HasMetadata; import io.fabric8.kubernetes.api.model.KubernetesListBuilder; import io.fabric8.kubernetes.api.model.KubernetesResourceList; -import io.fabric8.kubernetes.client.BaseClient; -import io.fabric8.kubernetes.client.Config; -import io.fabric8.kubernetes.client.ConfigBuilder; -import io.fabric8.kubernetes.client.RequestConfig; -import io.fabric8.kubernetes.client.WithRequestCallable; -import io.fabric8.kubernetes.client.dsl.FunctionCallable; -import io.fabric8.kubernetes.client.dsl.MixedOperation; -import io.fabric8.kubernetes.client.dsl.NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable; -import io.fabric8.kubernetes.client.dsl.NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicable; -import io.fabric8.kubernetes.client.dsl.ParameterNamespaceListVisitFromServerGetDeleteRecreateWaitApplicable; -import io.fabric8.kubernetes.client.dsl.Resource; +import io.fabric8.kubernetes.client.*; +import io.fabric8.kubernetes.client.dsl.*; import io.fabric8.kubernetes.client.dsl.internal.NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableImpl; import io.fabric8.kubernetes.client.dsl.internal.NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl; +import io.fabric8.kubernetes.client.utils.Serialization; import me.snowdrop.istio.api.IstioResource; import me.snowdrop.istio.api.networking.v1alpha3.EnvoyFilter; import me.snowdrop.istio.api.networking.v1alpha3.EnvoyFilterList; -import me.snowdrop.istio.api.networking.v1beta1.DestinationRule; -import me.snowdrop.istio.api.networking.v1beta1.DestinationRuleList; -import me.snowdrop.istio.api.networking.v1beta1.Gateway; -import me.snowdrop.istio.api.networking.v1beta1.GatewayList; -import me.snowdrop.istio.api.networking.v1beta1.ServiceEntry; -import me.snowdrop.istio.api.networking.v1beta1.ServiceEntryList; -import me.snowdrop.istio.api.networking.v1beta1.VirtualService; -import me.snowdrop.istio.api.networking.v1beta1.VirtualServiceList; +import me.snowdrop.istio.api.networking.v1beta1.*; import me.snowdrop.istio.api.policy.v1beta1.Handler; import me.snowdrop.istio.api.policy.v1beta1.HandlerList; import me.snowdrop.istio.api.policy.v1beta1.Instance; import me.snowdrop.istio.api.policy.v1beta1.InstanceList; -import me.snowdrop.istio.api.security.v1beta1.AuthorizationPolicy; -import me.snowdrop.istio.api.security.v1beta1.AuthorizationPolicyList; -import me.snowdrop.istio.api.security.v1beta1.PeerAuthentication; -import me.snowdrop.istio.api.security.v1beta1.PeerAuthenticationList; -import me.snowdrop.istio.api.security.v1beta1.RequestAuthentication; -import me.snowdrop.istio.api.security.v1beta1.RequestAuthenticationList; +import me.snowdrop.istio.api.security.v1beta1.*; import me.snowdrop.istio.client.internal.operation.networking.v1alpha3.EnvoyFilterOperationImpl; import me.snowdrop.istio.client.internal.operation.networking.v1beta1.DestinationRuleOperationImpl; import me.snowdrop.istio.client.internal.operation.networking.v1beta1.GatewayOperationImpl; @@ -57,6 +29,12 @@ import me.snowdrop.istio.client.internal.operation.security.v1beta1.RequestAuthenticationOperationImpl; import okhttp3.OkHttpClient; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + public class DefaultIstioClient extends BaseClient implements NamespacedIstioClient { public DefaultIstioClient() { @@ -160,12 +138,12 @@ public MixedOperation load(InputStream is) { - return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl(httpClient, getConfiguration(), getNamespace(), null, false, false, Collections.emptyList(), (InputStream) is, Collections.emptyMap(), false, DeletionPropagation.FOREGROUND); + return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl(getHttpClient(), getConfiguration(), Serialization.unmarshal(is)); } @Override public NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable resourceList(KubernetesResourceList item) { - return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl(httpClient, getConfiguration(), getNamespace(), null, false, false, Collections.emptyList(), item, Collections.emptyMap(), DeletionPropagation.FOREGROUND, false); + return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl(getHttpClient(), getConfiguration(), item); } @Override @@ -180,18 +158,18 @@ public NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable @Override public ParameterNamespaceListVisitFromServerGetDeleteRecreateWaitApplicable resourceList(String s) { - return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl(httpClient, getConfiguration(), getNamespace(), null, false, false, Collections.emptyList(), s, Collections.emptyMap(), DeletionPropagation.FOREGROUND, false); + return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl(getHttpClient(), getConfiguration(), Serialization.unmarshal(s)); } @Override public NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicable resource(HasMetadata item) { - return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableImpl(httpClient, getConfiguration(), getNamespace(), null, false, false, Collections.emptyList(), item, -1L, DeletionPropagation.FOREGROUND, false, 200L, 1.5d); + return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableImpl(getHttpClient(), getConfiguration(), item); } @Override public NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicable resource(String s) { - return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableImpl(httpClient, getConfiguration(), getNamespace(), null, false, false, Collections.emptyList(), s, -1L, DeletionPropagation.FOREGROUND, false, 200L, 1.5d); + return resource((HasMetadata) Serialization.unmarshal(s)); } diff --git a/istio-client/src/main/resources/handler-registration.vm b/istio-client/src/main/resources/handler-registration.vm new file mode 100644 index 00000000..87fb4b09 --- /dev/null +++ b/istio-client/src/main/resources/handler-registration.vm @@ -0,0 +1,19 @@ +package me.snowdrop.istio.client.internal; + + +import io.fabric8.kubernetes.client.Handlers; + +public class HandlersRegistration { + static { +#foreach ($m in ${model.values()}) + #set ($pkg = $m.packageName) + #set ($pkgParts = $pkg.split("\.")) + #set ($pkgVersionIndex = $pkgParts.size() - 1) + #set ($pkgGroupIndex = $pkgParts.size() - 2) + #set ($pkgVersion = $pkgParts[$pkgVersionIndex]) + #set ($pkgGroup = $pkgParts[$pkgGroupIndex]) + #set ($package = "me.snowdrop.istio.client.internal.operation.${pkgGroup}.${pkgVersion}") + Handlers.register(${pkg}.${m.name}.class, ${package}.${m.name}OperationImpl::new); +#end + } +} diff --git a/istio-client/src/main/resources/resource-handler.vm b/istio-client/src/main/resources/resource-handler.vm index fd90dd6c..7a22d8e8 100644 --- a/istio-client/src/main/resources/resource-handler.vm +++ b/istio-client/src/main/resources/resource-handler.vm @@ -38,64 +38,11 @@ import java.util.function.Predicate; public class ${model.name}Handler implements ResourceHandler<${model.name}, ${model.name}Builder> { - @Override - public String getKind() { - return ${model.name}.class.getSimpleName(); - } - - @Override - public String getApiVersion() { - #if (${apiGroup} != "") - return "${apiGroup}/${apiVersion}"; - #else - return "${apiVersion}"; - #end - } - - @Override -public ${model.name} create(OkHttpClient client, Config config, String namespace, ${model.name} item) { -return new ${model.name}OperationImpl(client, config).withItem(item).inNamespace(namespace).create(); -} - -@Override -public ${model.name} replace(OkHttpClient client, Config config, String namespace, ${model.name} item) { -return new ${model.name}OperationImpl(client, config).withItem(item).inNamespace(namespace).withName(item.getMetadata().getName()).replace(item); -} - -@Override -public ${model.name} reload(OkHttpClient client, Config config, String namespace, ${model.name} item) { -return new ${model.name}OperationImpl(client, config).withItem(item).inNamespace(namespace).withName(item.getMetadata().getName()).fromServer().get(); -} - @Override public ${model.name}Builder edit(${model.name} item) { return new ${model.name}Builder(item); } -@Override -public Boolean delete(OkHttpClient client, Config config, String namespace, DeletionPropagation propagationPolicy, ${model.name} item) { -return new ${model.name}OperationImpl(client, config).withItem(item).inNamespace(namespace).delete(item); -} - -@Override -public Watch watch(OkHttpClient client, Config config, String namespace, ${model.name} item, Watcher<${model.name}> watcher) { -return new ${model.name}OperationImpl(client, config).withItem(item).inNamespace(namespace).withName(item.getMetadata().getName()).watch(watcher); -} - -@Override -public Watch watch(OkHttpClient client, Config config, String namespace, ${model.name} item, String resourceVersion, Watcher<${model.name}> watcher) { -return new ${model.name}OperationImpl(client, config).withItem(item).inNamespace(namespace).withName(item.getMetadata().getName()).watch(resourceVersion, watcher); -} - -@Override -public Watch watch(OkHttpClient client, Config config, String namespace, ${model.name} item, ListOptions listOptions, final Watcher<${model.name}> watcher) { -return new ${model.name}OperationImpl(client, config).withItem(item).inNamespace(namespace).withName(item.getMetadata().getName()).watch(listOptions, watcher); -} - -@Override -public ${model.name} waitUntilReady(OkHttpClient client, Config config, String namespace, ${model.name} item, long amount, TimeUnit timeUnit) throws InterruptedException { -return new ${model.name}OperationImpl(client, config).withItem(item).inNamespace(namespace).withName(item.getMetadata().getName()).waitUntilReady(amount, timeUnit); -} @Override public ${model.name} waitUntilCondition(OkHttpClient client, Config config, String namespace, ${model.name} item, Predicate<${model.name}> condition, long amount, TimeUnit timeUnit) throws InterruptedException { diff --git a/istio-client/src/main/resources/resource-operation.vm b/istio-client/src/main/resources/resource-operation.vm index acb2d630..0e8187be 100644 --- a/istio-client/src/main/resources/resource-operation.vm +++ b/istio-client/src/main/resources/resource-operation.vm @@ -43,9 +43,7 @@ public class ${model.name}OperationImpl extends HasMetadataOperation<${model.nam public ${model.name}OperationImpl(OperationContext context) { super(context.withApiGroupName("$apiGroup") .withApiGroupVersion("$apiVersion") - .withPlural("$plural")); - this.type = ${model.name}.class; - this.listType = ${model.name}List.class; + .withPlural("$plural"), ${model.name}.class, ${model.name}List.class); } public ${model.name}OperationImpl newInstance(OperationContext context) { diff --git a/istio-model-annotator/pom.xml b/istio-model-annotator/pom.xml index 599c9318..b1cb9450 100644 --- a/istio-model-annotator/pom.xml +++ b/istio-model-annotator/pom.xml @@ -31,7 +31,10 @@ io.sundr transform-annotations - compile + + + io.sundr + sundr-codegen-velocity-nodeps org.jsonschema2pojo diff --git a/istio-model-annotator/src/main/java/me/snowdrop/istio/annotator/IstioTypeAnnotator.java b/istio-model-annotator/src/main/java/me/snowdrop/istio/annotator/IstioTypeAnnotator.java index 2618d92b..c9230f3d 100644 --- a/istio-model-annotator/src/main/java/me/snowdrop/istio/annotator/IstioTypeAnnotator.java +++ b/istio-model-annotator/src/main/java/me/snowdrop/istio/annotator/IstioTypeAnnotator.java @@ -9,44 +9,25 @@ import com.fasterxml.jackson.annotation.JsonUnwrapped; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.sun.codemodel.JAnnotationArrayMember; -import com.sun.codemodel.JAnnotationUse; -import com.sun.codemodel.JClass; -import com.sun.codemodel.JClassAlreadyExistsException; -import com.sun.codemodel.JCodeModel; -import com.sun.codemodel.JDefinedClass; -import com.sun.codemodel.JExpr; -import com.sun.codemodel.JFieldVar; -import com.sun.codemodel.JMethod; -import com.sun.codemodel.JMod; -import com.sun.codemodel.JPackage; +import com.sun.codemodel.*; import io.fabric8.kubernetes.model.annotation.Group; import io.fabric8.kubernetes.model.annotation.Plural; import io.fabric8.kubernetes.model.annotation.Version; import io.sundr.builder.annotations.Buildable; import io.sundr.builder.annotations.BuildableReference; -import io.sundr.transform.annotations.VelocityTransformation; -import io.sundr.transform.annotations.VelocityTransformations; -import java.io.Serializable; -import java.nio.file.Paths; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import io.sundr.transform.annotations.TemplateTransformation; +import io.sundr.transform.annotations.TemplateTransformations; import lombok.EqualsAndHashCode; import lombok.ToString; import me.snowdrop.istio.api.IstioSpec; -import me.snowdrop.istio.api.internal.ClassWithInterfaceFieldsDeserializer; -import me.snowdrop.istio.api.internal.IstioApiVersion; -import me.snowdrop.istio.api.internal.IstioKind; -import me.snowdrop.istio.api.internal.IstioSpecRegistry; -import me.snowdrop.istio.api.internal.MixerAdapter; -import me.snowdrop.istio.api.internal.MixerResourceDeserializer; -import me.snowdrop.istio.api.internal.MixerTemplate; +import me.snowdrop.istio.api.internal.*; import org.jsonschema2pojo.GenerationConfig; import org.jsonschema2pojo.Jackson2Annotator; +import java.io.Serializable; +import java.nio.file.Paths; +import java.util.*; + /** * @author Christophe Laprun */ @@ -176,12 +157,12 @@ public void propertyOrder(JDefinedClass clazz, JsonNode propertiesNode) { } } else if (clazz.name().endsWith("Spec")) { - JAnnotationArrayMember arrayMember = clazz.annotate(VelocityTransformations.class).paramArray("value"); - arrayMember.annotate(VelocityTransformation.class).param("value", "/istio-resource.vm"); - arrayMember.annotate(VelocityTransformation.class).param("value", "/istio-resource-list.vm"); - arrayMember.annotate(VelocityTransformation.class).param("value", "/istio-manifest.vm") + JAnnotationArrayMember arrayMember = clazz.annotate(TemplateTransformations.class).paramArray("value"); + arrayMember.annotate(TemplateTransformation.class).param("value", "/istio-resource.vm"); + arrayMember.annotate(TemplateTransformation.class).param("value", "/istio-resource-list.vm"); + arrayMember.annotate(TemplateTransformation.class).param("value", "/istio-manifest.vm") .param("outputPath", "crd.properties").param("gather", true); - arrayMember.annotate(VelocityTransformation.class).param("value", "/istio-mappings-provider.vm") + arrayMember.annotate(TemplateTransformation.class).param("value", "/istio-mappings-provider.vm") .param("outputPath", Paths.get("me", "snowdrop", "istio", "api", "model", "IstioResourceMappingsProvider.java").toString()) .param("gather", true); diff --git a/istio-model/pom.xml b/istio-model/pom.xml index ff74faf5..b6a1465f 100644 --- a/istio-model/pom.xml +++ b/istio-model/pom.xml @@ -68,26 +68,31 @@ com.sun - tools + tools - - io.sundr - transform-annotations - provided - - - org.projectlombok - lombok - provided - - - com.fasterxml.jackson.dataformat - jackson-dataformat-yaml - - - junit + + io.sundr + transform-annotations + provided + + + io.sundr + sundr-codegen-velocity-nodeps + provided + + + org.projectlombok + lombok + provided + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + + + junit junit test diff --git a/istio-model/src/main/resources/istio-resource-list.vm b/istio-model/src/main/resources/istio-resource-list.vm index 9dd811ca..858390f3 100644 --- a/istio-model/src/main/resources/istio-resource-list.vm +++ b/istio-model/src/main/resources/istio-resource-list.vm @@ -51,8 +51,7 @@ import io.fabric8.kubernetes.api.model.ListMeta; @ToString @EqualsAndHashCode @Buildable(editableEnabled = false, generateBuilderPackage = true, builderPackage = "io.fabric8.kubernetes.api.builder") -public class ${resource}List implements KubernetesResource, KubernetesResourceList<${resource}> -{ +public class ${resource}List implements KubernetesResource, KubernetesResourceList<${resource}> { /** * diff --git a/istio-model/src/main/resources/istio-resource.vm b/istio-model/src/main/resources/istio-resource.vm index 136bc807..281a9f06 100644 --- a/istio-model/src/main/resources/istio-resource.vm +++ b/istio-model/src/main/resources/istio-resource.vm @@ -83,8 +83,7 @@ import me.snowdrop.istio.api.internal.IstioKind; @ToString @EqualsAndHashCode @Buildable(editableEnabled = false, generateBuilderPackage = true, builderPackage = "io.fabric8.kubernetes.api.builder" ) -public class $resource implements IstioResource -{ +public class $resource implements IstioResource { /** * diff --git a/pom.xml b/pom.xml index e8f1a375..6e2acde6 100644 --- a/pom.xml +++ b/pom.xml @@ -164,13 +164,14 @@ 1.3.2 1.0.2 5 - 1 - ${k8s-client.majorVersion}.${k8s-client.minorVersion}.0 + 10 + ${k8s-client.majorVersion}.${k8s-client.minorVersion}.1 + 4.13.1 2.13.0 3.9.0 - 0.21.0 - 1.18.2 + 0.60.0 + 1.18.20 @@ -203,6 +204,11 @@ kubernetes-model ${kubernetes-client.version} + + io.fabric8 + kubernetes-model-core + ${kubernetes-client.version} + io.fabric8 kubernetes-model-common @@ -224,26 +230,31 @@ javax.annotation javax.annotation-api - ${javax-annotations-api.version} - - - io.sundr - builder-annotations - ${sundrio.version} + ${javax-annotations-api.version} - - io.sundr - transform-annotations - ${sundrio.version} - - - org.projectlombok - lombok - ${lombok.version} - - - junit - junit + + io.sundr + builder-annotations + ${sundrio.version} + + + io.sundr + transform-annotations + ${sundrio.version} + + + io.sundr + sundr-codegen-velocity-nodeps + ${sundrio.version} + + + org.projectlombok + lombok + ${lombok.version} + + + junit + junit ${junit.version} test