Skip to content

Commit bf92e46

Browse files
committed
release 1.1.1-B7
1 parent bfc51c2 commit bf92e46

File tree

3 files changed

+74
-35
lines changed

3 files changed

+74
-35
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = 1.1.1-B6
1+
version = 1.1.1-B7

java-operator/src/main/java/com/enonic/kubernetes/operator/ingress/OperatorIngressLabel.java

Lines changed: 55 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,24 @@
77
import com.enonic.kubernetes.kubernetes.Searchers;
88
import com.enonic.kubernetes.kubernetes.commands.K8sLogHelper;
99
import com.enonic.kubernetes.operator.helpers.InformerEventHandler;
10+
1011
import io.fabric8.kubernetes.api.model.networking.v1.HTTPIngressPath;
1112
import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
1213
import io.fabric8.kubernetes.api.model.networking.v1.IngressRule;
1314
import io.quarkus.runtime.StartupEvent;
15+
1416
import org.slf4j.Logger;
1517
import org.slf4j.LoggerFactory;
1618

1719
import javax.enterprise.context.ApplicationScoped;
1820
import javax.enterprise.event.Observes;
1921
import javax.inject.Inject;
22+
2023
import java.util.HashMap;
2124
import java.util.Map;
2225
import java.util.stream.Collectors;
2326

27+
import static com.enonic.kubernetes.operator.xp7deployment.Predicates.running;
2428
import static com.enonic.kubernetes.common.Configuration.cfgStr;
2529
import static com.enonic.kubernetes.kubernetes.Predicates.inSameNamespaceAs;
2630
import static com.enonic.kubernetes.kubernetes.Predicates.isDeleted;
@@ -63,9 +67,9 @@ public void onUpdate( final Xp7Config oldR, final Xp7Config newR )
6367
{
6468
// Only handle if this is a vhost config and it is loaded
6569
onCondition( newR, c -> {
66-
log.debug("onUpdate Xp7Config: {} in {}", newR.getMetadata().getNamespace(), newR.getMetadata().getName());
67-
this.handle(c);
68-
}, this::isVHostConfig, ( c ) -> c.getStatus().getState() == Xp7ConfigStatus.State.READY );
70+
log.debug( "onUpdate Xp7Config: {} in {}", newR.getMetadata().getNamespace(), newR.getMetadata().getName() );
71+
this.handle( c );
72+
}, this::isVHostConfig, ( c ) -> c.getStatus().getState() == Xp7ConfigStatus.State.READY, this::isDeploymentRunning );
6973
}
7074

7175
@Override
@@ -79,58 +83,72 @@ public void run()
7983
{
8084
log.debug( "Resync Ingress status" );
8185

82-
searchers.ingress().stream().
83-
filter( isDeleted().negate() ).
84-
filter( matchLabel( cfgStr( "operator.charts.values.labelKeys.ingressVhostLoaded" ), "false" ) ).
85-
forEach( this::setStatus );
86+
searchers.ingress()
87+
.stream()
88+
.filter( isDeleted().negate() )
89+
.filter( matchLabel( cfgStr( "operator.charts.values.labelKeys.ingressVhostLoaded" ), "false" ) )
90+
.forEach( this::setStatus );
8691
}
8792

8893
private void handle( final Xp7Config xp7Config )
8994
{
90-
searchers.ingress().stream().
91-
filter( inSameNamespaceAs( xp7Config ) ).
92-
filter( isDeleted().negate() ).
93-
filter( matchLabel( cfgStr( "operator.charts.values.labelKeys.ingressVhostLoaded" ), "false" ) ).
94-
forEach( this::setStatus );
95+
searchers.ingress()
96+
.stream()
97+
.filter( inSameNamespaceAs( xp7Config ) )
98+
.filter( isDeleted().negate() )
99+
.filter( matchLabel( cfgStr( "operator.charts.values.labelKeys.ingressVhostLoaded" ), "false" ) )
100+
.forEach( this::setStatus );
95101
}
96102

97103
private void setStatus( final Ingress ingress )
98104
{
99105
// Collect all nodegroup vhost states
100-
Map<String, Xp7ConfigStatus.State> states = searchers.xp7Config().stream().
101-
filter( inSameNamespaceAs( ingress ) ).
102-
filter( isDeleted().negate() ).
103-
filter( this::isVHostConfig ).
104-
collect( Collectors.toMap( c -> c.getSpec().getNodeGroup(), c -> c.getStatus().getState() ) );
106+
Map<String, Xp7ConfigStatus.State> states = searchers.xp7Config()
107+
.stream()
108+
.filter( inSameNamespaceAs( ingress ) )
109+
.filter( isDeleted().negate() )
110+
.filter( this::isVHostConfig )
111+
.collect( Collectors.toMap( c -> c.getSpec().getNodeGroup(), c -> c.getStatus().getState() ) );
105112

106113
// Set all nodeGroups state
107-
if (states.values().stream().anyMatch( s -> !s.equals( Xp7ConfigStatus.State.READY ) )) {
114+
if ( states.values().stream().anyMatch( s -> !s.equals( Xp7ConfigStatus.State.READY ) ) )
115+
{
108116
states.put( cfgStr( "operator.charts.values.allNodesKey" ), Xp7ConfigStatus.State.PENDING );
109-
} else {
117+
}
118+
else
119+
{
110120
states.put( cfgStr( "operator.charts.values.allNodesKey" ), Xp7ConfigStatus.State.READY );
111121
}
112122

113123
// Figure out state
114124
boolean loaded = true;
115-
for (IngressRule r : ingress.getSpec().getRules()) {
116-
for (HTTPIngressPath p : r.getHttp().getPaths()) {
125+
for ( IngressRule r : ingress.getSpec().getRules() )
126+
{
127+
for ( HTTPIngressPath p : r.getHttp().getPaths() )
128+
{
117129
Xp7ConfigStatus.State pathState = states.get( p.getBackend().getService().getName() );
118-
if (pathState != null && !pathState.equals( Xp7ConfigStatus.State.READY )) {
130+
if ( pathState != null && !pathState.equals( Xp7ConfigStatus.State.READY ) )
131+
{
119132
loaded = false;
120133
break;
121134
}
122135
}
123136
}
124137

125138
// Update if true
126-
if (loaded) {
127-
log.debug("Label Ingress as vhost loaded: {} in {}", ingress.getMetadata().getName(), ingress.getMetadata().getNamespace());
128-
129-
K8sLogHelper.logEdit( clients.k8s().network().v1().ingresses().
130-
inNamespace( ingress.getMetadata().getNamespace() ).
131-
withName( ingress.getMetadata().getName() ), i -> {
139+
if ( loaded )
140+
{
141+
log.debug( "Label Ingress as vhost loaded: {} in {}", ingress.getMetadata().getName(), ingress.getMetadata().getNamespace() );
142+
143+
K8sLogHelper.logEdit( clients.k8s()
144+
.network()
145+
.v1()
146+
.ingresses()
147+
.inNamespace( ingress.getMetadata().getNamespace() )
148+
.withName( ingress.getMetadata().getName() ), i -> {
132149
Map<String, String> labels = i.getMetadata().getLabels();
133-
if (labels == null) {
150+
if ( labels == null )
151+
{
134152
labels = new HashMap<>();
135153
}
136154
labels.put( cfgStr( "operator.charts.values.labelKeys.ingressVhostLoaded" ), "true" );
@@ -144,4 +162,12 @@ private boolean isVHostConfig( final Xp7Config c )
144162
{
145163
return c.getSpec().getFile().equals( cfgStr( "operator.charts.values.files.vhosts" ) );
146164
}
165+
166+
boolean isDeploymentRunning( Xp7Config config )
167+
{
168+
return searchers.xp7Deployment()
169+
.find( deployment -> deployment.getMetadata().getNamespace().equals( config.getMetadata().getNamespace() ) )
170+
.map( deployment -> running().test( deployment ) )
171+
.orElse( false );
172+
}
147173
}

java-operator/src/main/java/com/enonic/kubernetes/operator/xp7app/OperatorXp7AppStatusOnDeployments.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@
33
import com.enonic.kubernetes.client.v1.xp7deployment.Xp7Deployment;
44
import com.enonic.kubernetes.kubernetes.Informers;
55
import com.enonic.kubernetes.operator.helpers.InformerEventHandler;
6+
67
import io.quarkus.runtime.StartupEvent;
8+
79
import org.slf4j.Logger;
810
import org.slf4j.LoggerFactory;
911

1012
import javax.enterprise.context.ApplicationScoped;
1113
import javax.enterprise.event.Observes;
1214
import javax.inject.Inject;
15+
1316
import java.io.IOException;
17+
import java.util.Objects;
1418

1519
/**
1620
* This operator class updates Xp7App status fields
@@ -41,12 +45,21 @@ protected void onNewAdd( Xp7Deployment newResource )
4145
@Override
4246
public void onUpdate( Xp7Deployment oldDeployment, Xp7Deployment newDeployment )
4347
{
44-
log.debug("onUpdate App status on Xp7Deployment update: {} in {} ---old: {} ---new:{}", newDeployment.getMetadata().getNamespace(), newDeployment.getMetadata().getName(),oldDeployment, newDeployment );
45-
try {
48+
if ( Objects.equals( oldDeployment, newDeployment ) )
49+
{
50+
return;
51+
}
52+
53+
try
54+
{
55+
log.debug( "onUpdate App status on Xp7Deployment update: {} in {}", newDeployment.getMetadata().getNamespace(),
56+
newDeployment.getMetadata().getName() );
4657
handlerStatus.updateStatus( newDeployment );
47-
} catch (IOException e) {
48-
log.warn( String.format( "Failed updating app status in NS %s: %s", newDeployment.getMetadata().getNamespace(),
49-
e.getMessage() ) );
58+
}
59+
catch ( IOException e )
60+
{
61+
log.warn(
62+
String.format( "Failed updating app status in NS %s: %s", newDeployment.getMetadata().getNamespace(), e.getMessage() ) );
5063
}
5164
}
5265

0 commit comments

Comments
 (0)