
me.snowdrop.istio.client.DefaultIstioClient Maven / Gradle / Ivy
package me.snowdrop.istio.client;
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.*;
import io.fabric8.kubernetes.client.dsl.*;
import io.fabric8.kubernetes.client.dsl.internal.NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableImpl;
import io.fabric8.kubernetes.client.dsl.internal.NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl;
import me.snowdrop.istio.api.IstioResource;
import me.snowdrop.istio.api.networking.v1alpha3.DoneableEnvoyFilter;
import me.snowdrop.istio.api.networking.v1alpha3.EnvoyFilter;
import me.snowdrop.istio.api.networking.v1alpha3.EnvoyFilterList;
import me.snowdrop.istio.api.networking.v1beta1.*;
import me.snowdrop.istio.api.policy.v1beta1.*;
import me.snowdrop.istio.api.rbac.v1alpha1.*;
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;
import me.snowdrop.istio.client.internal.operation.networking.v1beta1.ServiceEntryOperationImpl;
import me.snowdrop.istio.client.internal.operation.networking.v1beta1.VirtualServiceOperationImpl;
import me.snowdrop.istio.client.internal.operation.policy.v1beta1.HandlerOperationImpl;
import me.snowdrop.istio.client.internal.operation.policy.v1beta1.InstanceOperationImpl;
import me.snowdrop.istio.client.internal.operation.rbac.v1alpha1.ServiceRoleBindingOperationImpl;
import me.snowdrop.istio.client.internal.operation.rbac.v1alpha1.ServiceRoleOperationImpl;
import okhttp3.OkHttpClient;
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;
public class DefaultIstioClient extends BaseClient implements NamespacedIstioClient {
public DefaultIstioClient() {
super();
}
public DefaultIstioClient(Config configuration) {
super(configuration);
}
public DefaultIstioClient(OkHttpClient httpClient, Config configuration) {
super(httpClient, configuration);
}
@Override
public NamespacedIstioClient inAnyNamespace() {
return inNamespace(null);
}
@Override
public NamespacedIstioClient inNamespace(String namespace) {
Config updated = new ConfigBuilder(getConfiguration())
.withNamespace(namespace)
.build();
return new DefaultIstioClient(getHttpClient(), updated);
}
@Override
public FunctionCallable withRequestConfig(RequestConfig requestConfig) {
return new WithRequestCallable<>(this, requestConfig);
}
@Override
public MixedOperation> v1beta1DestinationRule() {
return new DestinationRuleOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1alpha3DestinationRule() {
return new me.snowdrop.istio.client.internal.operation.networking.v1alpha3.DestinationRuleOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1alpha3EnvoyFilter() {
return new EnvoyFilterOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1beta1Gateway() {
return new GatewayOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1alpha3Gateway() {
return new me.snowdrop.istio.client.internal.operation.networking.v1alpha3.GatewayOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1beta1ServiceEntry() {
return new ServiceEntryOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1alpha3ServiceEntry() {
return new me.snowdrop.istio.client.internal.operation.networking.v1alpha3.ServiceEntryOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1beta1VirtualService() {
return new VirtualServiceOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1alpha3VirtualService() {
return new me.snowdrop.istio.client.internal.operation.networking.v1alpha3.VirtualServiceOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1alpha1ServiceRoleBinding() {
return new ServiceRoleBindingOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1alpha1ServiceRole() {
return new ServiceRoleOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1beta1Handler() {
return new HandlerOperationImpl(getHttpClient(), getConfiguration());
}
@Override
public MixedOperation> v1beta1Instance() {
return new InstanceOperationImpl(getHttpClient(), getConfiguration());
}
//Generic methods for handling resources
@Override
public ParameterNamespaceListVisitFromServerGetDeleteRecreateWaitApplicable load(InputStream is) {
return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl(httpClient, getConfiguration(), getNamespace(), null, false, false, Collections.emptyList(), (InputStream) is, Collections.emptyMap(), false, DeletionPropagation.FOREGROUND);
}
@Override
public NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable resourceList(KubernetesResourceList item) {
return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl(httpClient, getConfiguration(), getNamespace(), null, false, false, Collections.emptyList(), item, Collections.emptyMap(), DeletionPropagation.FOREGROUND, false);
}
@Override
public NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable resourceList(HasMetadata... items) {
return resourceList(new KubernetesListBuilder().withItems(items).build());
}
@Override
public NamespaceListVisitFromServerGetDeleteRecreateWaitApplicable resourceList(Collection items) {
return resourceList(new KubernetesListBuilder().withItems(new ArrayList<>(items)).build());
}
@Override
public ParameterNamespaceListVisitFromServerGetDeleteRecreateWaitApplicable resourceList(String s) {
return new NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl(httpClient, getConfiguration(), getNamespace(), null, false, false, Collections.emptyList(), s, Collections.emptyMap(), DeletionPropagation.FOREGROUND, false);
}
@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);
}
@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);
}
//Compatibility
public List registerCustomResources(final String specFileAsString) {
return resourceList(specFileAsString).createOrReplace()
.stream()
.filter(r -> r instanceof IstioResource)
.map(r -> (IstioResource) r)
.collect(Collectors.toList());
}
public List registerCustomResources(final InputStream resource) {
return load(resource).createOrReplace()
.stream()
.filter(r -> r instanceof IstioResource)
.map(r -> (IstioResource) r)
.collect(Collectors.toList());
}
public List getResourcesLike(final IstioResource resource) {
throw new UnsupportedOperationException();
}
public IstioResource registerCustomResource(final IstioResource resource) {
return (IstioResource) resource(resource).createOrReplace();
}
public IstioResource registerOrUpdateCustomResource(final IstioResource resource) {
return (IstioResource) resource(resource).createOrReplace();
}
public Boolean unregisterCustomResource(final IstioResource istioResource) {
return resource(istioResource).delete();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy