public static String getURLFromIngressSpec(IngressSpec spec, String serviceName, ServicePort port) { List<IngressRule> ingressRules = spec.getRules(); if(ingressRules != null && !ingressRules.isEmpty()) { for(IngressRule rule : ingressRules) { HTTPIngressRuleValue http = rule.getHttp(); if(http != null && http.getPaths() != null) { return getURLFromIngressRules(http.getPaths(), spec, serviceName, port, rule); } } } return null; }
public static String getURLFromIngressRules(List<HTTPIngressPath> paths, IngressSpec spec, String serviceName, ServicePort port, IngressRule rule) { for(HTTPIngressPath path : paths) { IngressBackend backend = path.getBackend(); if(backend != null) { String backendServiceName = backend.getServiceName(); if(serviceName.equals(backendServiceName) && portsMatch(port, backend.getServicePort())) { String pathPostFix = path.getPath(); if(spec.getTls() != null) { return getURLFromTLSHost(rule, pathPostFix); } String answer = rule.getHost(); if(answer != null && !answer.isEmpty()) { pathPostFix = fixPathPostFixIfEmpty(pathPostFix); return "http://" + URLUtils.pathJoin(answer, pathPostFix); } } } } return null; }
public static String getURLFromIngressList(List<Ingress> ingressList, String namespace, String serviceName, ServicePort port) { for(Ingress item : ingressList) { String ns = getNamespace(item); if(Objects.equals(ns, namespace) && item.getSpec() != null) { return getURLFromIngressSpec(item.getSpec(), serviceName, port); } } return null; }
@Override public void visit(DeploymentBuilder item) { DeploymentFluent.SpecNested<DeploymentBuilder> spec = item.getSpec() == null ? item.withNewSpec() : item.editSpec(); DeploymentSpecFluent.TemplateNested<DeploymentFluent.SpecNested<DeploymentBuilder>> template = spec.getTemplate() == null ? spec.withNewTemplate() : spec.editTemplate(); template.endTemplate().endSpec(); } });
client.extensions().podSecurityPolicies().create(podSecurityPolicy); logger.log(Level.INFO, "PodSecurityPolicy created with Name : " + podSecurityPolicy.getMetadata().getName()); PodSecurityPolicy podSecurityPolicy1 = new PodSecurityPolicyBuilder().withNewMetadata() .withName("example2") .endMetadata() .withNewSpec() .withPrivileged(false) .withNewRunAsUser().withRule("RunAsAny").endRunAsUser() .withNewFsGroup().withRule("RunAsAny").endFsGroup() .withNewSeLinux().withRule("RunAsAny").endSeLinux() .withNewSupplementalGroups().withRule("RunAsAny").endSupplementalGroups() .endSpec() .build(); + podSecurityPolicy1.getMetadata().getName());
@Override public void visit(ReplicaSetBuilder item) { ReplicaSetFluent.SpecNested<ReplicaSetBuilder> spec = item.getSpec() == null ? item.withNewSpec() : item.editSpec(); ReplicaSetSpecFluent.TemplateNested<ReplicaSetFluent.SpecNested<ReplicaSetBuilder>> template = spec.getTemplate() == null ? spec.withNewTemplate() : spec.editTemplate(); template.endTemplate().endSpec(); } });
@Override public void visit(StatefulSetBuilder item) { StatefulSetFluent.SpecNested<StatefulSetBuilder> spec = item.getSpec() == null ? item.withNewSpec() : item.editSpec(); StatefulSetSpecFluent.TemplateNested<StatefulSetFluent.SpecNested<StatefulSetBuilder>> template = spec.getTemplate() == null ? spec.withNewTemplate() : spec.editTemplate(); template.endTemplate().endSpec(); } });
public Deployment build(){ Deployment buildable = new Deployment(fluent.getApiVersion(),fluent.getKind(),fluent.getMetadata(),fluent.getSpec(),fluent.getStatus()); validate(buildable); return buildable; }
public JobStatus build(){ JobStatus buildable = new JobStatus(fluent.getActive(),fluent.getCompletionTime(),fluent.getConditions(),fluent.getFailed(),fluent.getStartTime(),fluent.getSucceeded()); validate(buildable); return buildable; }
public HorizontalPodAutoscalerStatus build(){ HorizontalPodAutoscalerStatus buildable = new HorizontalPodAutoscalerStatus(fluent.getCurrentCPUUtilizationPercentage(),fluent.getCurrentReplicas(),fluent.getDesiredReplicas(),fluent.getLastScaleTime(),fluent.getObservedGeneration()); validate(buildable); return buildable; }
public DeploymentRollback build(){ DeploymentRollback buildable = new DeploymentRollback(fluent.getApiVersion(),fluent.getKind(),fluent.getName(),fluent.getRollbackTo(),fluent.getUpdatedAnnotations()); validate(buildable); return buildable; }
public DaemonSet build(){ DaemonSet buildable = new DaemonSet(fluent.getApiVersion(),fluent.getKind(),fluent.getMetadata(),fluent.getSpec(),fluent.getStatus()); validate(buildable); return buildable; }
public JobList build(){ JobList buildable = new JobList(fluent.getApiVersion(),fluent.getItems(),fluent.getKind(),fluent.getMetadata()); validate(buildable); return buildable; }
public SubresourceReference build(){ SubresourceReference buildable = new SubresourceReference(fluent.getApiVersion(),fluent.getKind(),fluent.getName(),fluent.getSubresource()); validate(buildable); return buildable; }
public IngressSpec build(){ IngressSpec buildable = new IngressSpec(fluent.getBackend(),fluent.getRules(),fluent.getTls()); validate(buildable); return buildable; }
public DaemonSetStatus build(){ DaemonSetStatus buildable = new DaemonSetStatus(fluent.getCurrentNumberScheduled(),fluent.getDesiredNumberScheduled(),fluent.getNumberMisscheduled()); validate(buildable); return buildable; }
public IngressRule build(){ IngressRule buildable = new IngressRule(fluent.getHost(),fluent.getHttp()); validate(buildable); return buildable; }
@Override public String getURL(Service service, String portName, String namespace, KubernetesClient client) { ServicePort port = URLFromServiceUtil.getServicePortByName(service, portName); String serviceName = service.getMetadata().getName(); if(port == null) { throw new RuntimeException("Couldn't find port: " + portName + " for service " + service.getMetadata().getName()); } IngressList ingresses = client.extensions().ingresses().inNamespace(namespace).list(); if(ingresses != null && !ingresses.getItems().isEmpty()) { return URLFromServiceUtil.getURLFromIngressList(ingresses.getItems(), namespace, serviceName, port); } return null; }
public static String getURLFromTLSHost(IngressRule rule, String pathPostFix) { String host = rule.getHost(); if (!host.isEmpty()) { pathPostFix = fixPathPostFixIfEmpty(pathPostFix); return "https://" + URLUtils.pathJoin(host, pathPostFix); } return null; }
public IngressStatus build(){ IngressStatus buildable = new IngressStatus(fluent.getLoadBalancer()); validate(buildable); return buildable; }