generated from quarkiverse/quarkiverse-template
-
Notifications
You must be signed in to change notification settings - Fork 49
/
ServiceDependent.java
38 lines (31 loc) · 1.3 KB
/
ServiceDependent.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package io.halkyon;
import static io.halkyon.ExposedAppReconciler.LABELS_CONTEXT_KEY;
import static io.halkyon.ExposedAppReconciler.createMetadata;
import java.util.Map;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServiceBuilder;
import io.javaoperatorsdk.operator.api.reconciler.Context;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
public class ServiceDependent extends CRUDKubernetesDependentResource<Service, ExposedApp> {
public ServiceDependent() {
super(Service.class);
}
@Override
@SuppressWarnings("unchecked")
public Service desired(ExposedApp exposedApp, Context context) {
final var labels = (Map<String, String>) context.managedDependentResourceContext()
.getMandatory(LABELS_CONTEXT_KEY, Map.class);
return new ServiceBuilder()
.withMetadata(createMetadata(exposedApp, labels))
.withNewSpec()
.addNewPort()
.withName("http")
.withPort(8080)
.withNewTargetPort().withValue(8080).endTargetPort()
.endPort()
.withSelector(labels)
.withType("ClusterIP")
.endSpec()
.build();
}
}