IngressService.java
package org.entando.kubernetes.service;
import io.fabric8.kubernetes.api.model.extensions.DoneableIngress;
import io.fabric8.kubernetes.api.model.extensions.Ingress;
import io.fabric8.kubernetes.api.model.extensions.IngressList;
import io.fabric8.kubernetes.client.dsl.MixedOperation;
import io.fabric8.kubernetes.client.dsl.Resource;
import java.util.List;
import java.util.Optional;
import lombok.extern.slf4j.Slf4j;
import org.entando.kubernetes.model.app.EntandoApp;
import org.entando.kubernetes.model.plugin.EntandoPlugin;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class IngressService {
private KubernetesUtils kubernetesUtils;
public IngressService(KubernetesUtils kubernetesUtils) {
this.kubernetesUtils = kubernetesUtils;
}
public Optional<Ingress> findByEntandoApp(EntandoApp app) {
List<Ingress> appIngresses = getIngressOperations()
.inNamespace(app.getMetadata().getNamespace())
.withLabel(app.getKind(), app.getMetadata().getName())
.list().getItems();
return appIngresses.stream().findFirst();
}
public Optional<Ingress> findByEntandoPlugin(EntandoPlugin plugin) {
List<Ingress> appIngresses = getIngressOperations()
.inNamespace(plugin.getMetadata().getNamespace())
.withLabel(plugin.getKind(), plugin.getMetadata().getName())
.list().getItems();
return appIngresses.stream().findFirst();
}
//CHECKSTYLE:OFF
private MixedOperation<Ingress, IngressList, DoneableIngress, Resource<Ingress, DoneableIngress>> getIngressOperations() {
//CHECKSTYLE:ON
return kubernetesUtils.getCurrentKubernetesClient().extensions().ingresses();
}
}