Skip to content

Commit

Permalink
#117 improve configureComponents to only use one yq command
Browse files Browse the repository at this point in the history
  • Loading branch information
kahoona77 committed Dec 7, 2023
1 parent 939faed commit 24518ed
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
16 changes: 12 additions & 4 deletions src/com/cloudogu/ces/cesbuildlib/K3d.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -228,13 +228,17 @@ class K3d {
}
}

void appendToYamlFile(String file, String key, String value) {
void yqEvalYamlFile(String file, String eval) {
createEmptySetupValuesYamlIfItDoesNotExists()
doInYQContainer {
script.sh("yq -i \"${key} = \\\"${value}\\\"\" ${file}")
script.sh("yq -i \"${eval}\" ${file}")
}
}

void appendToYamlFile(String file, String key, String value) {
yqEvalYamlFile(file, "${key} = \\\"${value}\\\"")
}

void appendFileToYamlFile(String file, String key, String fileName) {
createEmptySetupValuesYamlIfItDoesNotExists()
doInYQContainer {
Expand Down Expand Up @@ -283,12 +287,16 @@ class K3d {
}

void configureComponents(components = [:]) {
// TODO better solution
def evals = []
components.each { componentName, componentConfig ->
componentConfig.each { configKey, configValue ->
appendToYamlFile(K3D_VALUES_YAML_FILE, ".components.${componentName}.${configKey}", configValue as String)
evals << ".components.${componentName}.${configKey} = \\\"${configValue}\\\""
}
}

if (evals.size() > 0) {
yqEvalYamlFile(K3D_VALUES_YAML_FILE, evals.join(" | "))
}
}

void configureLogLevel(String loglevel) {
Expand Down
11 changes: 1 addition & 10 deletions test/com/cloudogu/ces/cesbuildlib/K3dTest.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -610,15 +610,6 @@ spec:
// then
assertThat(scriptMock.allActualArgs[0].trim()).isEqualTo("whoami".trim())
assertThat(scriptMock.allActualArgs[1].trim()).isEqualTo("cat /etc/passwd | grep jenkins".trim())
assertThat(scriptMock.allActualArgs[2].trim()).isEqualTo("yq -i \".components.k8s-etcd.version = \\\"latest\\\"\" k3d_values.yaml".trim())
assertThat(scriptMock.allActualArgs[3].trim()).isEqualTo("whoami".trim())
assertThat(scriptMock.allActualArgs[4].trim()).isEqualTo("cat /etc/passwd | grep jenkins".trim())
assertThat(scriptMock.allActualArgs[5].trim()).isEqualTo("yq -i \".components.k8s-etcd.helmRepositoryNamespace = \\\"k8s\\\"\" k3d_values.yaml".trim())
assertThat(scriptMock.allActualArgs[6].trim()).isEqualTo("whoami".trim())
assertThat(scriptMock.allActualArgs[7].trim()).isEqualTo("cat /etc/passwd | grep jenkins".trim())
assertThat(scriptMock.allActualArgs[8].trim()).isEqualTo("yq -i \".components.k8s-promtail.version = \\\"1.2.3\\\"\" k3d_values.yaml".trim())
assertThat(scriptMock.allActualArgs[9].trim()).isEqualTo("whoami".trim())
assertThat(scriptMock.allActualArgs[10].trim()).isEqualTo("cat /etc/passwd | grep jenkins".trim())
assertThat(scriptMock.allActualArgs[11].trim()).isEqualTo("yq -i \".components.k8s-promtail.helmRepositoryNamespace = \\\"test_ns\\\"\" k3d_values.yaml".trim())
assertThat(scriptMock.allActualArgs[2].trim()).isEqualTo("yq -i \".components.k8s-etcd.version = \\\"latest\\\" | .components.k8s-etcd.helmRepositoryNamespace = \\\"k8s\\\" | .components.k8s-promtail.version = \\\"1.2.3\\\" | .components.k8s-promtail.helmRepositoryNamespace = \\\"test_ns\\\"\" k3d_values.yaml".trim())
}
}

0 comments on commit 24518ed

Please sign in to comment.