Skip to content

Commit f7c8469

Browse files
shawkinsmanusa
authored andcommitted
updating the cheatsheet
1 parent 3b53fe2 commit f7c8469

File tree

1 file changed

+31
-34
lines changed

1 file changed

+31
-34
lines changed

doc/CHEATSHEET.md

Lines changed: 31 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1831,7 +1831,7 @@ Kubernetes Client also provides `SharedInformer` support in order to stay update
18311831
```java
18321832
SharedInformerFactory sharedInformerFactory = client.informers();
18331833
```
1834-
- Create `SharedIndexInformer` for some Kubernetes Resource(requires resource's class and resync period(when to check with server again while watching something). By default it watches in all namespaces.:
1834+
- Create `SharedIndexInformer` for some Kubernetes Resource(requires resource's class and resync period (emits a dummy update event on that interval so that the handler can act again). By default it watches in all namespaces.:
18351835
```java
18361836
SharedIndexInformer<Pod> podInformer = sharedInformerFactory.sharedIndexInformerFor(Pod.class, 30 * 1000L);
18371837
podInformer.addEventHandler(new ResourceEventHandler<Pod>() {
@@ -1871,15 +1871,20 @@ dummyInformer.addEventHandler(new ResourceEventHandler<Dummy>() {
18711871
}
18721872
});
18731873
```
1874-
- Create namespaced `SharedIndexInformer` (informers specific to a particular `Namespace`):
1874+
- Start all registered informers:
18751875
```java
1876-
SharedInformerFactory sharedInformerFactory = client.informers();
1877-
SharedIndexInformer<Pod> podInformer = sharedInformerFactory.inNamespace("default").sharedIndexInformerFor(
1878-
Pod.class,
1879-
30 * 1000L);
1880-
logger.info("Informer factory initialized.");
1876+
sharedInformerFactory.startAllRegisteredInformers();
1877+
```
1878+
- Stop all registered informers:
1879+
```java
1880+
sharedInformerFactory.stopAllRegisteredInformers();
1881+
```
18811882

1882-
podInformer.addEventHandler(new ResourceEventHandler<Pod>() {
1883+
You are not limited to just creating cluster wide informers, if you want to be informed about a particular context then use the Informable interface and inform methods.
1884+
1885+
- Create namespaced `SharedIndexInformer` (informers specific to a particular `Namespace`):
1886+
```java
1887+
SharedIndexInformer<Pod> podInformer = client.pods().inNamespace("default").inform(new ResourceEventHandler<Pod>() {
18831888
@Override
18841889
public void onAdd(Pod pod) {
18851890
logger.info("Pod " + pod.getMetadata().getName() + " got added");
@@ -1894,8 +1899,9 @@ podInformer.addEventHandler(new ResourceEventHandler<Pod>() {
18941899
public void onDelete(Pod pod, boolean deletedFinalStateUnknown) {
18951900
logger.info("Pod " + pod.getMetadata().getName() + " got deleted");
18961901
}
1897-
});
1898-
}
1902+
}, 30 * 1000L);
1903+
1904+
logger.info("Informer initialized.");
18991905
```
19001906
- Create Namespaced Informer for a Custom Resource(**Note:** Your CustomResource POJO must implement `Namespaced` interface like the one used in this example: [Dummy.java](https://github.com/fabric8io/kubernetes-client/blob/master/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/crds/Dummy.java))
19011907
You should have your CustomResource type POJO annotated with group, version fields with respect to your CRD:
@@ -1913,33 +1919,24 @@ public class Dummy extends CustomResource<DummySpec, KubernetesResource> impleme
19131919
```
19141920
Then you should be able to use it like this:
19151921
```java
1916-
SharedIndexInformer<Dummy> dummyInformer = sharedInformerFactory.inNamespace("default").sharedIndexInformerForCustomResource(Dummy.class, 60 * 1000L);
1917-
dummyInformer.addEventHandler(new ResourceEventHandler<Dummy>() {
1918-
@Override
1919-
public void onAdd(Dummy dummy) {
1920-
System.out.printf("%s dummy added\n", dummy.getMetadata().getName());
1921-
}
1922-
1923-
@Override
1924-
public void onUpdate(Dummy oldDummy, Dummy newDummy) {
1925-
System.out.printf("%s dummy updated\n", oldDummy.getMetadata().getName());
1926-
}
1922+
SharedIndexInformer<Dummy> dummyInformer = client.customResources(Dummy.class).inNamespace("default").inform(new ResourceEventHandler<Dummy>() {
1923+
@Override
1924+
public void onAdd(Dummy dummy) {
1925+
System.out.printf("%s dummy added\n", dummy.getMetadata().getName());
1926+
}
19271927

1928-
@Override
1929-
public void onDelete(Dummy dummy, boolean deletedFinalStateUnknown) {
1930-
System.out.printf("%s dummy deleted \n", dummy.getMetadata().getName());
1931-
}
1932-
});
1933-
```
1928+
@Override
1929+
public void onUpdate(Dummy oldDummy, Dummy newDummy) {
1930+
System.out.printf("%s dummy updated\n", oldDummy.getMetadata().getName());
1931+
}
19341932

1935-
- Start all registered informers:
1936-
```java
1937-
sharedInformerFactory.startAllRegisteredInformers();
1938-
```
1939-
- Stop all registered informers:
1940-
```java
1941-
sharedInformerFactory.stopAllRegisteredInformers();
1933+
@Override
1934+
public void onDelete(Dummy dummy, boolean deletedFinalStateUnknown) {
1935+
System.out.printf("%s dummy deleted \n", dummy.getMetadata().getName());
1936+
}
1937+
}, 60 * 1000L);
19421938
```
1939+
When using the inform methods the informers will already be started/running.
19431940

19441941
### List Options
19451942
There are various options provided by Kubernetes Client API when it comes to listing resources. Here are some of the common examples provided:

0 commit comments

Comments
 (0)