Skip to content

Commit 15d5ab2

Browse files
mingjie-liMingjieAmadeus
authored andcommitted
replace in old example
1 parent 9be6e0a commit 15d5ab2

File tree

2 files changed

+24
-185
lines changed

2 files changed

+24
-185
lines changed

examples/src/main/java/io/kubernetes/client/examples/spring/SpringControllerExample.java renamed to examples/src/main/java/io/kubernetes/client/examples/SpringControllerExample.java

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
See the License for the specific language governing permissions and
1111
limitations under the License.
1212
*/
13-
package io.kubernetes.client.examples.spring;
13+
package io.kubernetes.client.examples;
1414

1515
import io.kubernetes.client.extended.controller.Controller;
1616
import io.kubernetes.client.extended.controller.reconciler.Reconciler;
@@ -25,17 +25,20 @@
2525
import io.kubernetes.client.openapi.models.V1Pod;
2626
import io.kubernetes.client.openapi.models.V1PodList;
2727
import io.kubernetes.client.spring.extended.controller.KubernetesInformerConfigurer;
28-
import io.kubernetes.client.spring.extended.controller.KubernetesReconcilerConfigurer;
2928
import io.kubernetes.client.spring.extended.controller.annotation.*;
29+
import io.kubernetes.client.spring.extended.controller.factory.KubernetesControllerFactory;
3030
import io.kubernetes.client.util.ClientBuilder;
3131
import java.io.IOException;
3232
import java.time.Duration;
33+
import org.springframework.beans.factory.annotation.Autowired;
3334
import org.springframework.beans.factory.annotation.Qualifier;
35+
import org.springframework.beans.factory.annotation.Value;
3436
import org.springframework.boot.CommandLineRunner;
3537
import org.springframework.boot.SpringApplication;
3638
import org.springframework.boot.autoconfigure.SpringBootApplication;
3739
import org.springframework.context.annotation.Bean;
3840
import org.springframework.context.annotation.Configuration;
41+
import org.springframework.stereotype.Component;
3942

4043
@SpringBootApplication
4144
public class SpringControllerExample {
@@ -68,11 +71,11 @@ public KubernetesInformerConfigurer kubernetesInformerConfigurer(ApiClient apiCl
6871
}
6972

7073
// *REQUIRED*
71-
// Configurer components that registers reconciler to the controller-manager in the context.
72-
@Bean
73-
public KubernetesReconcilerConfigurer kubernetesReconcilerConfigurer(
74-
SharedInformerFactory sharedInformerFactory) {
75-
return new KubernetesReconcilerConfigurer(sharedInformerFactory);
74+
// factorybean to crete controller
75+
@Bean("node-printing-controller")
76+
public KubernetesControllerFactory kubernetesReconcilerConfigurer(
77+
SharedInformerFactory sharedInformerFactory, Reconciler reconciler) {
78+
return new KubernetesControllerFactory(sharedInformerFactory, reconciler);
7679
}
7780

7881
// *OPTIONAL*
@@ -91,12 +94,6 @@ public ApiClient myApiClient() throws IOException {
9194
public SharedInformerFactory sharedInformerFactory() {
9295
return new MySharedInformerFactory();
9396
}
94-
95-
@Bean
96-
public NodePrintingReconciler nodePrintingReconciler(
97-
Lister<V1Pod> podLister, Lister<V1Node> nodeLister, SharedInformer<V1Node> nodeInformer) {
98-
return new NodePrintingReconciler(podLister, nodeLister, nodeInformer);
99-
}
10097
}
10198

10299
@KubernetesInformers({ // Defining what resources is the informer-factory actually watching.
@@ -128,32 +125,33 @@ public static class MySharedInformerFactory extends SharedInformerFactory {}
128125
resyncPeriodMillis = 60 * 1000L // fully resync every 1 minute
129126
),
130127
}))
128+
@Component
131129
public static class NodePrintingReconciler implements Reconciler {
132130

133-
public NodePrintingReconciler(
134-
Lister<V1Pod> podLister, Lister<V1Node> nodeLister, SharedInformer<V1Node> nodeInformer) {
135-
this.nodeLister = nodeLister;
136-
this.podLister = podLister;
137-
this.nodeInformer = nodeInformer;
138-
}
131+
@Value("${namespace}")
132+
private String namespace;
139133

140-
private SharedInformer<V1Node> nodeInformer;
141-
142-
private Lister<V1Node> nodeLister;
143-
144-
private Lister<V1Pod> podLister;
134+
@Autowired private SharedInformer<V1Node> nodeInformer;
135+
@Autowired private SharedInformer<V1Pod> podInformer;
136+
@Autowired private Lister<V1Node> nodeLister;
137+
@Autowired private Lister<V1Pod> podLister;
145138

146139
// *OPTIONAL*
147140
// If you feed like hold the controller from running util some condition..
148-
// need to be a public function
149141
@KubernetesReconcilerReadyFunc
150142
public boolean informerReady() {
151-
return nodeInformer.hasSynced();
143+
return podInformer.hasSynced() && nodeInformer.hasSynced();
152144
}
153145

154146
@Override
155147
public Result reconcile(Request request) {
156148
V1Node node = nodeLister.get(request.getName());
149+
150+
System.out.println("get all pods in namespace " + namespace);
151+
podLister.namespace(namespace).list().stream()
152+
.map(pod -> pod.getMetadata().getName())
153+
.forEach(System.out::println);
154+
157155
System.out.println("triggered reconciling " + node.getMetadata().getName());
158156
return new Result(false);
159157
}

examples/src/main/java/io/kubernetes/client/examples/springfactorybean/SpringControllerFactoryBeanExample.java

Lines changed: 0 additions & 159 deletions
This file was deleted.

0 commit comments

Comments
 (0)