Skip to content

Commit ff1c52d

Browse files
committed
feat: cross reference sample (#73)
Signed-off-by: Attila Mészáros <[email protected]>
1 parent 5a4ef13 commit ff1c52d

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed

src/test/java/io/csviri/operator/resourceglue/GlueTest.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,45 @@ void simpleTemplating() {
5959
});
6060
}
6161

62+
63+
@Test
64+
void crossReferenceResource() {
65+
Glue glue =
66+
TestUtils.loadResoureFlow("/resourceglue/CrossReferenceResource.yaml");
67+
glue = create(glue);
68+
69+
await().untilAsserted(() -> {
70+
var cm1 = get(ConfigMap.class, "cm-1");
71+
var cm2 = get(ConfigMap.class, "cm-2");
72+
assertThat(cm1).isNotNull();
73+
assertThat(cm2).isNotNull();
74+
75+
assertThat(cm2.getData()).containsEntry("valueFromCM1", "value1");
76+
});
77+
78+
var resourceTemplate =
79+
glue.getSpec().getResources().stream().filter(r -> r.getName().equals("configMap1"))
80+
.findAny().orElseThrow().getResource();
81+
// set new value
82+
((Map<String, String>) resourceTemplate.getAdditionalProperties().get("data")).put("key",
83+
"value2");
84+
glue = update(glue);
85+
86+
await().untilAsserted(() -> {
87+
var cm2 = get(ConfigMap.class, "cm-2");
88+
assertThat(cm2.getData()).containsEntry("valueFromCM1", "value2");
89+
});
90+
91+
delete(glue);
92+
93+
await().untilAsserted(() -> {
94+
var cm1 = get(ConfigMap.class, "cm-1");
95+
var cm2 = get(ConfigMap.class, "cm-2");
96+
assertThat(cm1).isNull();
97+
assertThat(cm2).isNull();
98+
});
99+
}
100+
62101
@SuppressWarnings("unchecked")
63102
@Test
64103
void javaScriptCondition() {
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
apiVersion: io.csviri.operator.resourceglue/v1beta1
2+
kind: Glue
3+
metadata:
4+
name: "crossreference"
5+
spec:
6+
resources:
7+
- name: configMap1
8+
resource:
9+
apiVersion: v1
10+
kind: ConfigMap
11+
metadata:
12+
name: "cm-1"
13+
data:
14+
key: "value1"
15+
- name: configMap2
16+
dependsOn:
17+
- configMap1
18+
resource:
19+
apiVersion: v1
20+
kind: ConfigMap
21+
metadata:
22+
name: "cm-2"
23+
data:
24+
valueFromCM1: "{configMap1.data.key}"
25+
26+
27+

0 commit comments

Comments
 (0)