Skip to content

Commit 15af195

Browse files
authored
test: update tests for envOverrides (#576)
* update unit test * update the smoke test * review feedback
1 parent 215fbbc commit 15af195

File tree

3 files changed

+62
-16
lines changed

3 files changed

+62
-16
lines changed

rust/operator-binary/src/hdfs_controller.rs

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -847,11 +847,14 @@ spec:
847847
default:
848848
replicas: 1
849849
dataNodes:
850+
envOverrides:
851+
COMMON_VAR: role-value # overridden by role group below
852+
ROLE_VAR: role-value # only defined here at role level
850853
roleGroups:
851854
default:
852855
envOverrides:
853-
MY_ENV: my-value
854-
HADOOP_HOME: /not/the/default/path
856+
COMMON_VAR: group-value # overrides role value
857+
GROUP_VAR: group-value # only defined here at group level
855858
replicas: 1
856859
";
857860
let product_config = "
@@ -903,33 +906,38 @@ properties: []
903906
)
904907
.unwrap();
905908
let containers = pb.build().unwrap().spec.unwrap().containers;
906-
let main_container = containers
909+
let env_vars = containers
907910
.iter()
908911
.find(|c| c.name == role.to_string())
912+
.unwrap()
913+
.env
914+
.clone()
909915
.unwrap();
910916

911917
assert_eq!(
912-
main_container
913-
.env
914-
.clone()
915-
.unwrap()
916-
.into_iter()
917-
.find(|e| e.name == "MY_ENV")
918+
env_vars
919+
.iter()
920+
.find(|e| e.name == "COMMON_VAR")
918921
.unwrap()
919922
.value,
920-
Some("my-value".to_string())
923+
Some("group-value".to_string())
921924
);
922925

923926
assert_eq!(
924-
main_container
925-
.env
926-
.clone()
927+
env_vars
928+
.iter()
929+
.find(|e| e.name == "ROLE_VAR")
927930
.unwrap()
928-
.into_iter()
929-
.find(|e| e.name == "HADOOP_HOME")
931+
.value,
932+
Some("role-value".to_string())
933+
);
934+
assert_eq!(
935+
env_vars
936+
.iter()
937+
.find(|e| e.name == "GROUP_VAR")
930938
.unwrap()
931939
.value,
932-
Some("/not/the/default/path".to_string())
940+
Some("group-value".to_string())
933941
);
934942
}
935943
}

tests/templates/kuttl/smoke/30-install-hdfs.yaml.j2

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,23 @@ spec:
2020
vectorAggregatorConfigMapName: vector-aggregator-discovery
2121
{% endif %}
2222
nameNodes:
23+
envOverrides:
24+
COMMON_VAR: role-value # overridden by role group below
25+
ROLE_VAR: role-value # only defined here at role level
2326
config:
2427
listenerClass: {{ test_scenario['values']['listener-class'] }}
2528
logging:
2629
enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }}
2730
roleGroups:
2831
default:
2932
replicas: 2
33+
envOverrides:
34+
COMMON_VAR: group-value # overrides role value
35+
GROUP_VAR: group-value # only defined here at group level
3036
dataNodes:
37+
envOverrides:
38+
COMMON_VAR: role-value # overridden by role group below
39+
ROLE_VAR: role-value # only defined here at role level
3140
config:
3241
listenerClass: {{ test_scenario['values']['listener-class'] }}
3342
logging:
@@ -49,13 +58,22 @@ spec:
4958
{% endif %}
5059
roleGroups:
5160
default:
61+
envOverrides:
62+
COMMON_VAR: group-value # overrides role value
63+
GROUP_VAR: group-value # only defined here at group level
5264
replicas: {{ test_scenario['values']['number-of-datanodes'] }}
5365
journalNodes:
66+
envOverrides:
67+
COMMON_VAR: role-value # overridden by role group below
68+
ROLE_VAR: role-value # only defined here at role level
5469
config:
5570
logging:
5671
enableVectorAgent: {{ lookup('env', 'VECTOR_AGGREGATOR') | length > 0 }}
5772
roleGroups:
5873
default:
74+
envOverrides:
75+
COMMON_VAR: group-value # overrides role value
76+
GROUP_VAR: group-value # only defined here at group level
5977
replicas: 1
6078
podOverrides:
6179
spec:
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestAssert
4+
timeout: 600
5+
commands:
6+
#
7+
# Test envOverrides for all roles
8+
#
9+
- script: |
10+
kubectl -n $NAMESPACE get sts hdfs-datanode-default -o yaml | yq -e '.spec.template.spec.containers[] | select (.name == "datanode") | .env[] | select (.name == "COMMON_VAR" and .value == "group-value")'
11+
kubectl -n $NAMESPACE get sts hdfs-datanode-default -o yaml | yq -e '.spec.template.spec.containers[] | select (.name == "datanode") | .env[] | select (.name == "GROUP_VAR" and .value == "group-value")'
12+
kubectl -n $NAMESPACE get sts hdfs-datanode-default -o yaml | yq -e '.spec.template.spec.containers[] | select (.name == "datanode") | .env[] | select (.name == "ROLE_VAR" and .value == "role-value")'
13+
- script: |
14+
kubectl -n $NAMESPACE get sts hdfs-journalnode-default -o yaml | yq -e '.spec.template.spec.containers[] | select (.name == "journalnode") | .env[] | select (.name == "COMMON_VAR" and .value == "group-value")'
15+
kubectl -n $NAMESPACE get sts hdfs-journalnode-default -o yaml | yq -e '.spec.template.spec.containers[] | select (.name == "journalnode") | .env[] | select (.name == "GROUP_VAR" and .value == "group-value")'
16+
kubectl -n $NAMESPACE get sts hdfs-journalnode-default -o yaml | yq -e '.spec.template.spec.containers[] | select (.name == "journalnode") | .env[] | select (.name == "ROLE_VAR" and .value == "role-value")'
17+
- script: |
18+
kubectl -n $NAMESPACE get sts hdfs-namenode-default -o yaml | yq -e '.spec.template.spec.containers[] | select (.name == "namenode") | .env[] | select (.name == "COMMON_VAR" and .value == "group-value")'
19+
kubectl -n $NAMESPACE get sts hdfs-namenode-default -o yaml | yq -e '.spec.template.spec.containers[] | select (.name == "namenode") | .env[] | select (.name == "GROUP_VAR" and .value == "group-value")'
20+
kubectl -n $NAMESPACE get sts hdfs-namenode-default -o yaml | yq -e '.spec.template.spec.containers[] | select (.name == "namenode") | .env[] | select (.name == "ROLE_VAR" and .value == "role-value")'

0 commit comments

Comments
 (0)