Skip to content

Commit a04bf86

Browse files
committed
Filecheck corrected, Test added and some polishing
1 parent 7be6b06 commit a04bf86

File tree

6 files changed

+35
-11
lines changed

6 files changed

+35
-11
lines changed

applications/cluster-resources/ingress-nginx-helm-values.ftl.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ controller:
3838
# customize access log format to include requested hostname ($host)
3939
# https://github.com/kubernetes/ingress-nginx/blob/controller-v1.2.1/docs/user-guide/nginx-configuration/log-format.md
4040
log-format-upstream: '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$host" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id'
41-
<#if monitoringEnabled == true>
41+
<#if monitoring.active == true>
4242
metrics:
4343
enabled: true
4444
serviceMonitor:

src/main/groovy/com/cloudogu/gitops/features/IngressNginx.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ class IngressNginx extends Feature {
5454
new TemplatingEngine().template(new File(HELM_VALUES_PATH),
5555
[
5656
podResources: config.application['podResources'],
57-
monitoringEnabled: config.features['monitoring']['active'],
57+
monitoring : [
58+
active : config.features['monitoring']['active']
59+
],
5860
namePrefix: config.application['namePrefix'] as String,
5961
])) as Map
6062

src/main/groovy/com/cloudogu/gitops/features/PrometheusStack.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ import static com.cloudogu.gitops.features.deployment.DeploymentStrategy.RepoTyp
2020
class PrometheusStack extends Feature {
2121

2222
static final String HELM_VALUES_PATH = "applications/cluster-resources/monitoring/prometheus-stack-helm-values.ftl.yaml"
23-
23+
static final String MONITORING_RESOURCES_PATH = '/misc/monitoring/'
24+
2425
private Map config
2526
private boolean remoteCluster
2627
private String username

src/main/groovy/com/cloudogu/gitops/features/argocd/ArgoCD.groovy

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.cloudogu.gitops.features.argocd
22

33
import com.cloudogu.gitops.Feature
44
import com.cloudogu.gitops.config.Configuration
5+
import com.cloudogu.gitops.features.PrometheusStack
56
import com.cloudogu.gitops.scmm.ScmmRepo
67
import com.cloudogu.gitops.scmm.ScmmRepoProvider
78
import com.cloudogu.gitops.utils.*
@@ -21,6 +22,7 @@ class ArgoCD extends Feature {
2122
static final String HELM_VALUES_PATH = 'argocd/values.yaml'
2223
static final String CHART_YAML_PATH = 'argocd/Chart.yaml'
2324
static final String SCMM_URL_INTERNAL = "http://scmm-scm-manager.default.svc.cluster.local/scm"
25+
2426
private Map config
2527
private List<RepoInitializationAction> gitRepos = []
2628

@@ -144,7 +146,7 @@ class ArgoCD extends Feature {
144146

145147
if (!config.features['monitoring']['active']) {
146148
log.debug("Deleting unnecessary monitoring folder from cluster resources: ${clusterResourcesInitializationAction.repo.getAbsoluteLocalRepoTmpDir()}")
147-
deleteDir clusterResourcesInitializationAction.repo.getAbsoluteLocalRepoTmpDir() + '/misc/monitoring'
149+
deleteDir clusterResourcesInitializationAction.repo.getAbsoluteLocalRepoTmpDir() + PrometheusStack.MONITORING_RESOURCES_PATH
148150
}
149151

150152
if (!config.scmm["internal"]) {
@@ -154,6 +156,11 @@ class ArgoCD extends Feature {
154156
replaceFileContentInYamls(new File(exampleAppsInitializationAction.repo.getAbsoluteLocalRepoTmpDir()), SCMM_URL_INTERNAL, externalScmmUrl)
155157
}
156158

159+
if ((!config.features['ingressNginx']['active'])&&(config.features['monitoring']['active'])) {
160+
deleteFile clusterResourcesInitializationAction.repo.getAbsoluteLocalRepoTmpDir() + PrometheusStack.MONITORING_RESOURCES_PATH + 'ingress-nginx-dashboard.yaml'
161+
deleteFile clusterResourcesInitializationAction.repo.getAbsoluteLocalRepoTmpDir() + PrometheusStack.MONITORING_RESOURCES_PATH + 'ingress-nginx-dashboard-requests-handling.yaml'
162+
}
163+
157164
fileSystemUtils.copyDirectory("${fileSystemUtils.rootDir}/applications/argocd/nginx/helm-umbrella",
158165
Path.of(exampleAppsInitializationAction.repo.getAbsoluteLocalRepoTmpDir(), 'apps/nginx-helm-umbrella/').toString())
159166
exampleAppsInitializationAction.replaceTemplates()

src/test/groovy/com/cloudogu/gitops/features/IngressNginxTest.groovy

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,9 @@ class IngressNginxTest {
146146

147147
def actual = parseActualYaml()
148148

149-
assertThat(parseActualYaml()['controller']['metrics']['enabled']).isEqualTo(true)
150-
assertThat(parseActualYaml()['controller']['metrics']['serviceMonitor']['enabled']).isEqualTo(true)
151-
assertThat(parseActualYaml()['controller']['metrics']['serviceMonitor']['namespace']).isEqualTo("heliospheremonitoring")
149+
assertThat(actual['controller']['metrics']['enabled']).isEqualTo(true)
150+
assertThat(actual['controller']['metrics']['serviceMonitor']['enabled']).isEqualTo(true)
151+
assertThat(actual['controller']['metrics']['serviceMonitor']['namespace']).isEqualTo("heliospheremonitoring")
152152
}
153153

154154
private IngressNginx createIngressNginx() {

src/test/groovy/com/cloudogu/gitops/features/argocd/ArgoCDTest.groovy

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.cloudogu.gitops.features.argocd
22

33
import com.cloudogu.gitops.config.Configuration
4+
import com.cloudogu.gitops.features.PrometheusStack
45
import com.cloudogu.gitops.scmm.ScmmRepo
56
import com.cloudogu.gitops.utils.CommandExecutorForTest
67
import com.cloudogu.gitops.utils.FileSystemUtils
@@ -99,6 +100,9 @@ class ArgoCDTest {
99100
version: '42.0.3'
100101
]
101102
],
103+
ingressNginx : [
104+
active : true
105+
],
102106
secrets : [
103107
active: true,
104108
vault : [
@@ -230,14 +234,24 @@ class ArgoCDTest {
230234
void 'When monitoring disabled: Does not push path monitoring to cluster resources'() {
231235
config.features['monitoring']['active'] = false
232236
createArgoCD().install()
233-
assertThat(new File(clusterResourcesRepo.getAbsoluteLocalRepoTmpDir() + "/monitoring")).doesNotExist()
234-
}
237+
assertThat(new File(clusterResourcesRepo.getAbsoluteLocalRepoTmpDir() + PrometheusStack.MONITORING_RESOURCES_PATH )).doesNotExist()
238+
}
235239

236240
@Test
237241
void 'When monitoring enabled: Does push path monitoring to cluster resources'() {
238242
config.features['monitoring']['active'] = true
239243
createArgoCD().install()
240-
assertThat(new File(clusterResourcesRepo.getAbsoluteLocalRepoTmpDir() + "/misc/monitoring")).exists()
244+
assertThat(new File(clusterResourcesRepo.getAbsoluteLocalRepoTmpDir() + PrometheusStack.MONITORING_RESOURCES_PATH )).exists()
245+
}
246+
247+
@Test
248+
void 'When ingressNginx disabled: Does not push monitoring dashboard resources'() {
249+
config.features['monitoring']['active'] = true
250+
config.features['ingressNginx']['active'] = false
251+
createArgoCD().install()
252+
assertThat(new File(clusterResourcesRepo.getAbsoluteLocalRepoTmpDir() + PrometheusStack.MONITORING_RESOURCES_PATH )).exists()
253+
assertThat(new File(clusterResourcesRepo.getAbsoluteLocalRepoTmpDir() + "/misc/ingress-nginx-dashboard.yaml")).doesNotExist()
254+
assertThat(new File(clusterResourcesRepo.getAbsoluteLocalRepoTmpDir() + "/misc/ingress-nginx-dashboard-requests-handling.yaml")).doesNotExist()
241255
}
242256

243257
@Test
@@ -759,7 +773,7 @@ class ArgoCDTest {
759773
}
760774
}
761775

762-
assertAllYamlFiles(new File(clusterResourcesRepo.getAbsoluteLocalRepoTmpDir()), 'misc', 7) { Path it ->
776+
assertAllYamlFiles(new File(clusterResourcesRepo.getAbsoluteLocalRepoTmpDir()), 'misc', 9) { Path it ->
763777
def yaml = parseActualYaml(it.toString())
764778
List yamlDocuments = yaml instanceof List ? yaml : [yaml]
765779
for (def document in yamlDocuments) {

0 commit comments

Comments
 (0)