Skip to content

Commit 1a9af62

Browse files
committed
fix from CR
Signed-off-by: Attila Mészáros <[email protected]>
1 parent e2e5e04 commit 1a9af62

File tree

4 files changed

+39
-15
lines changed

4 files changed

+39
-15
lines changed

flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/reconciler/deployment/ApplicationReconciler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,8 @@ public void deploy(
190190
status.getJobStatus().setState(org.apache.flink.api.common.JobStatus.RECONCILING);
191191
status.setJobManagerDeploymentStatus(JobManagerDeploymentStatus.DEPLOYING);
192192

193-
IngressUtils.reconcileIngress(ctx, spec, deployConfig, ctx.getKubernetesClient());
193+
IngressUtils.reconcileIngress(
194+
ctx, spec, deployConfig, ctx.getKubernetesClient(), eventRecorder);
194195
}
195196

196197
private void setJobIdIfNecessary(

flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/reconciler/deployment/SessionReconciler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ public void deploy(
106106
setOwnerReference(cr, deployConfig);
107107
ctx.getFlinkService().submitSessionCluster(deployConfig);
108108
cr.getStatus().setJobManagerDeploymentStatus(JobManagerDeploymentStatus.DEPLOYING);
109-
IngressUtils.reconcileIngress(ctx, spec, deployConfig, ctx.getKubernetesClient());
109+
IngressUtils.reconcileIngress(
110+
ctx, spec, deployConfig, ctx.getKubernetesClient(), eventRecorder);
110111
}
111112

112113
@Override

flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/IngressUtils.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import io.fabric8.kubernetes.api.model.networking.v1beta1.IngressTLS;
3939
import io.fabric8.kubernetes.client.KubernetesClient;
4040
import io.fabric8.kubernetes.client.dsl.NonDeletingOperation;
41+
import lombok.extern.slf4j.Slf4j;
4142
import org.apache.commons.lang3.StringUtils;
4243
import org.slf4j.Logger;
4344
import org.slf4j.LoggerFactory;
@@ -56,6 +57,7 @@
5657
import static org.apache.flink.kubernetes.operator.utils.EventSourceUtils.LABEL_COMPONENT_INGRESS;
5758

5859
/** Ingress utilities. */
60+
@Slf4j
5961
public class IngressUtils {
6062

6163
private static final Pattern NAME_PTN =
@@ -68,13 +70,28 @@ public class IngressUtils {
6870
private static final String REST_SVC_NAME_SUFFIX = "-rest";
6971

7072
private static final Logger LOG = LoggerFactory.getLogger(IngressUtils.class);
73+
public static final String INGRESS_MANAGEMENT_OFF_BUT_SPEC_SET =
74+
"Ingress management is turned off but ingress set in spec";
75+
public static final String INGRESS_MANAGEMENT = "IngressManagement";
7176

7277
public static void reconcileIngress(
7378
FlinkResourceContext<?> ctx,
7479
FlinkDeploymentSpec spec,
7580
Configuration effectiveConfig,
76-
KubernetesClient client) {
81+
KubernetesClient client,
82+
EventRecorder eventRecorder) {
7783
if (!ctx.getOperatorConfig().isManageIngress()) {
84+
if (spec.getIngress() != null) {
85+
log.warn(INGRESS_MANAGEMENT_OFF_BUT_SPEC_SET);
86+
eventRecorder.triggerEvent(
87+
ctx.getResource(),
88+
EventRecorder.Type.Warning,
89+
INGRESS_MANAGEMENT,
90+
INGRESS_MANAGEMENT_OFF_BUT_SPEC_SET,
91+
EventRecorder.Component.Operator,
92+
client);
93+
}
94+
7895
return;
7996
}
8097
var objectMeta = ctx.getResource().getMetadata();

flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/utils/IngressUtilsTest.java

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.apache.flink.kubernetes.operator.controller.FlinkResourceContext;
2828
import org.apache.flink.kubernetes.operator.exception.ReconciliationException;
2929

30+
import io.fabric8.kubernetes.api.model.Event;
3031
import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
3132
import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
3233
import io.fabric8.kubernetes.api.model.networking.v1.IngressTLS;
@@ -84,7 +85,7 @@ void testIngress() {
8485

8586
// no ingress when ingressDomain is empty
8687
IngressUtils.reconcileIngress(
87-
createResourceContext(appCluster), appCluster.getSpec(), config, client);
88+
createResourceContext(appCluster), appCluster.getSpec(), config, client, null);
8889
if (IngressUtils.ingressInNetworkingV1(client)) {
8990
assertNull(
9091
client.network()
@@ -108,7 +109,7 @@ void testIngress() {
108109
builder.template("{{name}}.{{namespace}}.example.com");
109110
appCluster.getSpec().setIngress(builder.build());
110111
IngressUtils.reconcileIngress(
111-
createResourceContext(appCluster), appCluster.getSpec(), config, client);
112+
createResourceContext(appCluster), appCluster.getSpec(), config, client, null);
112113
Ingress ingress = null;
113114
io.fabric8.kubernetes.api.model.networking.v1beta1.Ingress ingressV1beta1 = null;
114115
if (IngressUtils.ingressInNetworkingV1(client)) {
@@ -157,7 +158,7 @@ void testIngress() {
157158
builder.annotations(Map.of("nginx.ingress.kubernetes.io/rewrite-target", "/$2"));
158159
appCluster.getSpec().setIngress(builder.build());
159160
IngressUtils.reconcileIngress(
160-
createResourceContext(appCluster), appCluster.getSpec(), config, client);
161+
createResourceContext(appCluster), appCluster.getSpec(), config, client, null);
161162
if (IngressUtils.ingressInNetworkingV1(client)) {
162163
ingress =
163164
client.network()
@@ -214,7 +215,7 @@ void testIngress() {
214215
builder.className("nginx");
215216
appCluster.getSpec().setIngress(builder.build());
216217
IngressUtils.reconcileIngress(
217-
createResourceContext(appCluster), appCluster.getSpec(), config, client);
218+
createResourceContext(appCluster), appCluster.getSpec(), config, client, null);
218219
if (IngressUtils.ingressInNetworkingV1(client)) {
219220
ingress =
220221
client.network()
@@ -298,7 +299,7 @@ public void testIngressTls() {
298299
builder.tls(new ArrayList<>());
299300
appCluster.getSpec().setIngress(builder.build());
300301
IngressUtils.reconcileIngress(
301-
createResourceContext(appCluster), appCluster.getSpec(), config, client);
302+
createResourceContext(appCluster), appCluster.getSpec(), config, client, null);
302303
Ingress ingress = null;
303304
io.fabric8.kubernetes.api.model.networking.v1beta1.Ingress ingressV1beta1 = null;
304305
if (IngressUtils.ingressInNetworkingV1(client)) {
@@ -335,7 +336,7 @@ public void testIngressTls() {
335336
builder.tls(List.of(ingressTlsSpecSecretOnly));
336337
appCluster.getSpec().setIngress(builder.build());
337338
IngressUtils.reconcileIngress(
338-
createResourceContext(appCluster), appCluster.getSpec(), config, client);
339+
createResourceContext(appCluster), appCluster.getSpec(), config, client, null);
339340
if (IngressUtils.ingressInNetworkingV1(client)) {
340341
ingress =
341342
client.network()
@@ -373,7 +374,7 @@ public void testIngressTls() {
373374
builder.tls(List.of(ingressTlsSpecHostsOnly));
374375
appCluster.getSpec().setIngress(builder.build());
375376
IngressUtils.reconcileIngress(
376-
createResourceContext(appCluster), appCluster.getSpec(), config, client);
377+
createResourceContext(appCluster), appCluster.getSpec(), config, client, null);
377378
if (IngressUtils.ingressInNetworkingV1(client)) {
378379
ingress =
379380
client.network()
@@ -411,7 +412,7 @@ public void testIngressTls() {
411412
builder.tls(List.of(ingressTlsSpecSingleTLSWithHost));
412413
appCluster.getSpec().setIngress(builder.build());
413414
IngressUtils.reconcileIngress(
414-
createResourceContext(appCluster), appCluster.getSpec(), config, client);
415+
createResourceContext(appCluster), appCluster.getSpec(), config, client, null);
415416
if (IngressUtils.ingressInNetworkingV1(client)) {
416417
ingress =
417418
client.network()
@@ -453,7 +454,7 @@ public void testIngressTls() {
453454
builder.tls(List.of(ingressTlsSpecSingleTLSWithHosts));
454455
appCluster.getSpec().setIngress(builder.build());
455456
IngressUtils.reconcileIngress(
456-
createResourceContext(appCluster), appCluster.getSpec(), config, client);
457+
createResourceContext(appCluster), appCluster.getSpec(), config, client, null);
457458
if (IngressUtils.ingressInNetworkingV1(client)) {
458459
ingress =
459460
client.network()
@@ -500,7 +501,7 @@ public void testIngressTls() {
500501
List.of(ingressTlsSpecMultipleTLSWithHosts1, ingressTlsSpecMultipleTLSWithHosts2));
501502
appCluster.getSpec().setIngress(builder.build());
502503
IngressUtils.reconcileIngress(
503-
createResourceContext(appCluster), appCluster.getSpec(), config, client);
504+
createResourceContext(appCluster), appCluster.getSpec(), config, client, null);
504505
if (IngressUtils.ingressInNetworkingV1(client)) {
505506
ingress =
506507
client.network()
@@ -564,7 +565,7 @@ void testDeletesIngress() {
564565
io.fabric8.kubernetes.api.model.networking.v1beta1.Ingress.class,
565566
List.of(ingress)));
566567

567-
IngressUtils.reconcileIngress(context, appCluster.getSpec(), null, client);
568+
IngressUtils.reconcileIngress(context, appCluster.getSpec(), null, client, null);
568569

569570
var ingressV1beta1 =
570571
client.network()
@@ -578,6 +579,9 @@ void testDeletesIngress() {
578579

579580
@Test
580581
void skipIngressReconciliationIfFeatureFlagOff() {
582+
List<Event> events = new ArrayList<>();
583+
EventRecorder eventRecorder =
584+
new EventRecorder((a, event) -> events.add(event), (a, b) -> {});
581585
FlinkDeployment appCluster = TestUtils.buildApplicationCluster();
582586
FlinkConfigManager manager =
583587
new FlinkConfigManager(
@@ -593,7 +597,7 @@ void skipIngressReconciliationIfFeatureFlagOff() {
593597
builder.tls(new ArrayList<>());
594598
appCluster.getSpec().setIngress(builder.build());
595599

596-
IngressUtils.reconcileIngress(context, appCluster.getSpec(), config, client);
600+
IngressUtils.reconcileIngress(context, appCluster.getSpec(), config, client, eventRecorder);
597601

598602
var ingressV1beta1 =
599603
client.network()
@@ -603,5 +607,6 @@ void skipIngressReconciliationIfFeatureFlagOff() {
603607
.withName(appCluster.getMetadata().getName())
604608
.get();
605609
assertThat(ingressV1beta1).isNull();
610+
assertThat(events).hasSize(1);
606611
}
607612
}

0 commit comments

Comments
 (0)