Skip to content

Commit

Permalink
DCCLIP-845: Add Openshift analytics (#763)
Browse files Browse the repository at this point in the history
* DCCLIP-845: Added 3 analytics fields for Openshift.

* DCCLIP-845: Added missing comma.

* DCCLIP-845: Added unit test.

* DCCLIP-845: Added analytics.json isRunOnOpenshift check in MicroShift tests.

* DCCLIP-845: Refactor.

* DCCLIP-845: Added KinD test and Openshift test under e2e label.
  • Loading branch information
yzha645 authored Feb 19, 2024
1 parent 25a637c commit 552cddd
Show file tree
Hide file tree
Showing 12 changed files with 110 additions and 7 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/crc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
name: DC Tests in MicroShift

on:
schedule:
- cron: '0 3 */2 * *' # schedule the test to run every second day at 3:00am
workflow_dispatch:
push:
branches:
Expand All @@ -14,6 +16,8 @@ on:
- 'src/main/charts/confluence/**'
- 'src/main/charts/jira/**'
- 'src/main/charts/crowd/**'
pull_request_target:
types: [ labeled ]

jobs:
jira:
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/dc-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,18 @@
name: DC apps tests in KinD

on:
schedule:
- cron: '0 3 */2 * *' # schedule the test to run every second day at 3:00am
push:
branches:
- main
paths:
- 'src/main/charts/bamboo/**'
- 'src/main/charts/bamboo-agent/**'
- 'src/main/charts/bitbucket/**'
- 'src/main/charts/confluence/**'
- 'src/main/charts/jira/**'
- 'src/main/charts/crowd/**'
workflow_dispatch:
pull_request_target:
types: [ labeled ]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/kind.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ on:

jobs:
kind-testing:
if: ${{ github.event.label.name == 'kind' || github.event_name == 'workflow_dispatch' }}
if: ${{ github.event.label.name == 'e2e' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }}
runs-on: ubuntu-latest
env:
# See: https://github.com/kubernetes-sigs/kind/tags
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/openshift.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ on:

jobs:
microshift:
if: ${{ github.event.label.name == 'e2e' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }}
runs-on: ubuntu-latest
env:
DC_APP: ${{inputs.dc_app}}
Expand Down Expand Up @@ -123,6 +124,11 @@ jobs:
source src/test/scripts/kind/deploy_app.sh
verify_metrics
- name: Verify ${{inputs.dc_app}} analytics value
run: |
source src/test/scripts/kind/deploy_app.sh
verify_openshift_analytics
- name: Get debug info
if: always()
run: |
Expand Down
5 changes: 4 additions & 1 deletion src/main/charts/bamboo/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@
{{- end }}
"isSharedHomePVCCreated": {{ .Values.volumes.sharedHome.persistentVolumeClaim.create }},
"isServiceMonitorCreated": {{ .Values.monitoring.serviceMonitor.create }},
"isGrafanaDashboardsCreated": {{ .Values.monitoring.grafana.createDashboards }}
"isGrafanaDashboardsCreated": {{ .Values.monitoring.grafana.createDashboards }},
"isRunOnOpenshift": {{ .Capabilities.APIVersions.Has "route.openshift.io/v1/Route" }},
"isRunWithRestrictedSCC": {{ .Values.openshift.runWithRestrictedSCC }},
"isOpenshiftRouteCreated": {{ .Values.ingress.openShiftRoute}}
}
{{- end }}

Expand Down
5 changes: 4 additions & 1 deletion src/main/charts/bitbucket/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,10 @@
"isSharedHomePVCCreated": {{ .Values.volumes.sharedHome.persistentVolumeClaim.create }},
"isServiceMonitorCreated": {{ .Values.monitoring.serviceMonitor.create }},
"isGrafanaDashboardsCreated": {{ .Values.monitoring.grafana.createDashboards }},
"isBitbucketMeshEnabled": {{ .Values.bitbucket.mesh.enabled }}
"isBitbucketMeshEnabled": {{ .Values.bitbucket.mesh.enabled }},
"isRunOnOpenshift": {{ .Capabilities.APIVersions.Has "route.openshift.io/v1/Route" }},
"isRunWithRestrictedSCC": {{ .Values.openshift.runWithRestrictedSCC }},
"isOpenshiftRouteCreated": {{ .Values.ingress.openShiftRoute}}
}
{{- end }}

Expand Down
5 changes: 4 additions & 1 deletion src/main/charts/confluence/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,10 @@
"isClusteringEnabled": {{ .Values.confluence.clustering.enabled }},
"isSharedHomePVCCreated": {{ .Values.volumes.sharedHome.persistentVolumeClaim.create }},
"isServiceMonitorCreated": {{ .Values.monitoring.serviceMonitor.create }},
"isGrafanaDashboardsCreated": {{ .Values.monitoring.grafana.createDashboards }}
"isGrafanaDashboardsCreated": {{ .Values.monitoring.grafana.createDashboards }},
"isRunOnOpenshift": {{ .Capabilities.APIVersions.Has "route.openshift.io/v1/Route" }},
"isRunWithRestrictedSCC": {{ .Values.openshift.runWithRestrictedSCC }},
"isOpenshiftRouteCreated": {{ .Values.ingress.openShiftRoute}}
}
{{- end }}

Expand Down
5 changes: 4 additions & 1 deletion src/main/charts/crowd/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,10 @@
"dbType": "UNKNOWN",
"isSharedHomePVCCreated": {{ .Values.volumes.sharedHome.persistentVolumeClaim.create }},
"isServiceMonitorCreated": {{ .Values.monitoring.serviceMonitor.create }},
"isGrafanaDashboardsCreated": {{ .Values.monitoring.grafana.createDashboards }}
"isGrafanaDashboardsCreated": {{ .Values.monitoring.grafana.createDashboards }},
"isRunOnOpenshift": {{ .Capabilities.APIVersions.Has "route.openshift.io/v1/Route" }},
"isRunWithRestrictedSCC": {{ .Values.openshift.runWithRestrictedSCC }},
"isOpenshiftRouteCreated": {{ .Values.ingress.openShiftRoute}}
}
{{- end }}

Expand Down
5 changes: 4 additions & 1 deletion src/main/charts/jira/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,10 @@
"isClusteringEnabled": {{ .Values.jira.clustering.enabled }},
"isSharedHomePVCCreated": {{ .Values.volumes.sharedHome.persistentVolumeClaim.create }},
"isServiceMonitorCreated": {{ .Values.monitoring.serviceMonitor.create }},
"isGrafanaDashboardsCreated": {{ .Values.monitoring.grafana.createDashboards }}
"isGrafanaDashboardsCreated": {{ .Values.monitoring.grafana.createDashboards }},
"isRunOnOpenshift": {{ .Capabilities.APIVersions.Has "route.openshift.io/v1/Route" }},
"isRunWithRestrictedSCC": {{ .Values.openshift.runWithRestrictedSCC }},
"isOpenshiftRouteCreated": {{ .Values.ingress.openShiftRoute}}
}
{{- end }}

Expand Down
20 changes: 20 additions & 0 deletions src/test/java/test/HelmValuesAndAnalyticsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,9 @@ void analytics_json_defaults(Product product) throws Exception {
assertFalse(analyticsData.isServiceMonitorCreated());
assertFalse(analyticsData.isJmxEnabled());
assertFalse(analyticsData.isSharedHomePVCCreated());
assertFalse(analyticsData.isRunOnOpenshift());
assertFalse(analyticsData.isRunWithRestrictedSCC());
assertFalse(analyticsData.isOpenshiftRouteCreated());
}

@ParameterizedTest
Expand Down Expand Up @@ -347,4 +350,21 @@ void analytics_json_assert_bitbucket_mesh(Product product) throws Exception {
AnalyticsData analyticsData = objectMapper.readValue(analyticsJson, AnalyticsData.class);
assertTrue(analyticsData.isBitbucketMeshEnabled());
}


@ParameterizedTest
@EnumSource(value = Product.class, names = {"bamboo_agent"}, mode = EnumSource.Mode.EXCLUDE)
void analytics_json_openshift(Product product) throws Exception {

final var resources = helm.captureKubeResourcesFromHelmChart(product, Map.of(
"openshift.runWithRestrictedSCC", "true",
"ingress.openShiftRoute", "true"
));

String analyticsJson = resources.get(Kind.ConfigMap, product.getHelmReleaseName() + "-helm-values").getConfigMapData().get("analytics.json").asText();
ObjectMapper objectMapper = new ObjectMapper();
AnalyticsData analyticsData = objectMapper.readValue(analyticsJson, AnalyticsData.class);
assertTrue(analyticsData.isRunWithRestrictedSCC());
assertTrue(analyticsData.isOpenshiftRouteCreated());
}
}
38 changes: 37 additions & 1 deletion src/test/java/test/model/AnalyticsData.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,15 @@ public class AnalyticsData {
@JsonProperty("isBitbucketMeshEnabled")
private boolean isBitbucketMeshEnabled;

@JsonProperty("isRunOnOpenshift")
private boolean isRunOnOpenshift;

@JsonProperty("isRunWithRestrictedSCC")
private boolean isRunWithRestrictedSCC;

@JsonProperty("isOpenshiftRouteCreated")
private boolean isOpenshiftRouteCreated;

public String getImageTag() {
return imageTag;
}
Expand Down Expand Up @@ -155,10 +164,34 @@ public void setGrafanaDashboardsCreated(boolean grafanaDashboardsCreated) {
isGrafanaDashboardsCreated = grafanaDashboardsCreated;
}

public boolean isRunOnOpenshift() {
return isRunOnOpenshift;
}

public void setRunOnOpenshift(boolean runOnOpenshift) {
isRunOnOpenshift = runOnOpenshift;
}

public boolean isRunWithRestrictedSCC() {
return isRunWithRestrictedSCC;
}

public void setRunWithRestrictedSCC(boolean runWithRestrictedSCC) {
isRunWithRestrictedSCC = runWithRestrictedSCC;
}

public boolean isOpenshiftRouteCreated() {
return isOpenshiftRouteCreated;
}

public void setOpenshiftRouteCreated(boolean openshiftRouteCreated) {
isOpenshiftRouteCreated = openshiftRouteCreated;
}

public AnalyticsData() {
}

public AnalyticsData(String imageTag, int replicas, boolean isJmxEnabled, String ingressType, String k8sVersion, String serviceType, String dbType, boolean isS3AttachmentsStorageEnabled, boolean isS3AvatarsEnabled, boolean isClusteringEnabled, boolean isSharedHomePVCCreated, boolean isBitbucketMeshEnabled, boolean isServiceMonitorCreated, boolean isGrafanaDashboardsCreated) {
public AnalyticsData(String imageTag, int replicas, boolean isJmxEnabled, String ingressType, String k8sVersion, String serviceType, String dbType, boolean isS3AttachmentsStorageEnabled, boolean isS3AvatarsEnabled, boolean isClusteringEnabled, boolean isSharedHomePVCCreated, boolean isBitbucketMeshEnabled, boolean isServiceMonitorCreated, boolean isGrafanaDashboardsCreated, boolean isRunOnOpenshift, boolean isRunWithRestrictedSCC, boolean isOpenshiftRouteCreated) {
this.imageTag = imageTag;
this.replicas = replicas;
this.isJmxEnabled = isJmxEnabled;
Expand All @@ -173,5 +206,8 @@ public AnalyticsData(String imageTag, int replicas, boolean isJmxEnabled, String
this.isBitbucketMeshEnabled = isBitbucketMeshEnabled;
this.isServiceMonitorCreated = isServiceMonitorCreated;
this.isGrafanaDashboardsCreated = isGrafanaDashboardsCreated;
this.isRunOnOpenshift = isRunOnOpenshift;
this.isRunWithRestrictedSCC = isRunWithRestrictedSCC;
this.isOpenshiftRouteCreated = isOpenshiftRouteCreated;
}
}
10 changes: 10 additions & 0 deletions src/test/scripts/kind/deploy_app.sh
Original file line number Diff line number Diff line change
Expand Up @@ -172,3 +172,13 @@ verify_dashboards() {
fi
done
}

verify_openshift_analytics() {
echo "[INFO]: Verifying analytics.json with Openshift on"
run_on_openshift_entry=$(kubectl get cm ${DC_APP}-helm-values -n atlassian -o jsonpath='{.data.analytics\.json}' | jq -r '.isRunOnOpenshift')
echo $run_on_openshift_entry
if [[ $run_on_openshift_entry != "true" ]]; then
echo "[ERROR]: Analytics.json does not have isRunOnOpenshift as true."
exit 1
fi
}

0 comments on commit 552cddd

Please sign in to comment.