diff --git a/CHANGELOG.md b/CHANGELOG.md index fda6adb4a2258ebd90150cc251da642105cf06ca..ac66663d77b5aa060b50b0a3c905db56a40caba5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), --- +## [7.2.1-bb.5] - 2024-02-02 +### Added +- Update Gluon to 0.4.8 + ## [7.2.1-bb.4] - 2024-01-29 ### Added - Added support for Istio Authorization Policies diff --git a/README.md b/README.md index 44a384d3935e4397fc9d5f25e5ffff3d2a0f149c..8e95f3f24dda0d1cf39878a6ac339b20c952c1e4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # grafana -   +   The leading tool for querying and visualizing time series and metrics. @@ -400,6 +400,8 @@ helm install grafana chart/ | bbtests.cypress.envs.cypress_grafana_url | string | `"http://grafana:80"` | | | bbtests.cypress.resources.requests.cpu | int | `2` | | | bbtests.cypress.resources.requests.memory | string | `"2Gi"` | | +| bbtests.cypress.resources.limits.cpu | int | `2` | | +| bbtests.cypress.resources.limits.memory | string | `"2Gi"` | | | bbtests.istio.sidecar.resources.cpu.requests | string | `"100m"` | | | bbtests.istio.sidecar.resources.cpu.limits | string | `"2000m"` | | | bbtests.istio.sidecar.resources.memory.requests | string | `"512Mi"` | | diff --git a/chart/Chart.lock b/chart/Chart.lock index 2e3b2e5a87bc3d5c90d4e4a65d1e41841726c312..fe6b3d960adc234d662abd6b37464ec7f580b1a5 100644 --- a/chart/Chart.lock +++ b/chart/Chart.lock @@ -1,6 +1,6 @@ dependencies: - name: gluon repository: oci://registry1.dso.mil/bigbang - version: 0.4.4 -digest: sha256:306ebeeb7af982b73ea4d7ffb6a6467c2be21d957b2f2af92973e859c03c05a9 -generated: "2024-01-17T11:39:07.79952528-07:00" + version: 0.4.8 +digest: sha256:64d057845fda0a0da70b22c8105bcad90a26fe641a38eff20be80a1825698f12 +generated: "2024-02-02T11:18:13.747839-05:00" diff --git a/chart/Chart.yaml b/chart/Chart.yaml index c1e907b4ffc0b8914aa41f3511ef938943bd30d9..d381d33b3bd840aa31b8f3c475496c15a09fd6c0 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: grafana -version: 7.2.1-bb.4 +version: 7.2.1-bb.5 appVersion: 10.2.3 kubeVersion: "^1.8.0-0" description: The leading tool for querying and visualizing time series and metrics. @@ -45,7 +45,7 @@ maintainers: type: application dependencies: - name: gluon - version: "0.4.4" + version: "0.4.8" repository: oci://registry1.dso.mil/bigbang keywords: - monitoring diff --git a/chart/charts/gluon-0.4.4.tgz b/chart/charts/gluon-0.4.4.tgz deleted file mode 100644 index f1a62b6fdb9488390a10bd39ffab3788ad6dfedd..0000000000000000000000000000000000000000 Binary files a/chart/charts/gluon-0.4.4.tgz and /dev/null differ diff --git a/chart/charts/gluon-0.4.8.tgz b/chart/charts/gluon-0.4.8.tgz new file mode 100644 index 0000000000000000000000000000000000000000..dc9efd97b8170495c450f55236438da5b92285c1 Binary files /dev/null and b/chart/charts/gluon-0.4.8.tgz differ diff --git a/chart/tests/cypress.config.js b/chart/tests/cypress.config.js deleted file mode 100644 index 5bba920beeaa2d67c0a89c78bf460f099721604b..0000000000000000000000000000000000000000 --- a/chart/tests/cypress.config.js +++ /dev/null @@ -1,15 +0,0 @@ -const { defineConfig } = require('cypress') - -module.exports = defineConfig({ - e2e: { - env: { - baseUrl: "https://grafana.bigbang.dev" - }, - video: true, - screenshot: true, - supportFile: false, - setupNodeEvents(on, config) { - // implement node event listeners here - }, - }, -}) \ No newline at end of file diff --git a/chart/tests/cypress/e2e/01-grafana-healthspec.cy.js b/chart/tests/cypress/e2e/01-grafana-healthspec.cy.js new file mode 100644 index 0000000000000000000000000000000000000000..500cfc27fd80c332ec14452f820b947729e9d998 --- /dev/null +++ b/chart/tests/cypress/e2e/01-grafana-healthspec.cy.js @@ -0,0 +1,21 @@ +before(function () { + cy.visit(Cypress.env('grafana_url')); + + if (Cypress.env('keycloak_test_enable')) { + cy.wait(500); + cy.contains('SSO').click(); + cy.performKeycloakLogin(Cypress.env('tnr_username'), Cypress.env('tnr_password')) + } else { + cy.visit(Cypress.env('grafana_url'));; + cy.performGrafanaLogin('admin', 'prom-operator') + } +}); + +describe('Grafana Unit Testing', function () { + it('Test for Grafana Dashboard', function () { + cy.visit(`${Cypress.env('grafana_url')}/dashboards`); + cy.wait(1000); + cy.loadGrafanaDashboard("CoreDNS") + cy.get('[data-testid="data-testid Panel header Requests (total)"]').should('not.contain', 'No data'); + }); +}); diff --git a/chart/tests/cypress/e2e/grafana-healthspec.cy.js b/chart/tests/cypress/e2e/grafana-healthspec.cy.js deleted file mode 100644 index 021dfa4e5fa066f5989cefc1d8dacb0ba49070b6..0000000000000000000000000000000000000000 --- a/chart/tests/cypress/e2e/grafana-healthspec.cy.js +++ /dev/null @@ -1,49 +0,0 @@ -before(function () { - cy.visit(Cypress.env('grafana_url')); - - if (Cypress.env('keycloak_test_enable')) { - cy.task('log', 'Selecting SSO...'); - cy.wait(500); - cy.contains('SSO').click(); - - cy.task('log', 'Filling out login form...'); - cy.get('input[id="username"]') - .type(Cypress.env('tnr_username')) - .should('have.value', Cypress.env('tnr_username')); - - cy.get('input[id="password"]') - .type(Cypress.env('tnr_password')) - .should('have value', Cypress.env('tnr_password')); - - cy.get('form').submit(); - - cy.task('log', 'Logging in...'); - cy.get('input[id="kc-accept"]').click(); - cy.get('input[id="kc-login"]').click(); - } else { - cy.visit(Cypress.env('grafana_url'));; - cy.get('input[name="user"]').type('admin'); - cy.get('input[name="password"]').type('prom-operator'); - cy.contains("Log in").click(); - cy.get('.page-dashboard'); - } -}); - -describe('Grafana Unit Testing', function () { - it('Test for Grafana Dashboard', function () { - // This test no longer requires login steps since they are performed in beforeEach. - // You can place the test-specific code here. - cy.visit(`${Cypress.env('grafana_url')}/dashboards`); - cy.wait(1000); - cy.get('a').contains('CoreDNS').click(); - cy.wait(1000); - // Start intercept to use later in wait to ensure data actually finishes loading - cy.intercept('POST', '**/query*').as('apiQuery'); - // Should not take longer than 30 seconds for this query to complete - // If it does, then there is likely something wrong with the data source - // cy.wait('@apiQuery', { timeout: 30000 }).then((interception) => { - // expect(interception.response.statusCode).to equal(200); - // }); - cy.get('[data-testid="data-testid Panel header Requests (total)"]').should('not.contain', 'No data'); - }); -}); diff --git a/chart/tests/cypress/e2e/login.cy.js b/chart/tests/cypress/e2e/login.cy.js deleted file mode 100644 index 83024fc0befd0cd262e858bc51d65e27c65ba8b8..0000000000000000000000000000000000000000 --- a/chart/tests/cypress/e2e/login.cy.js +++ /dev/null @@ -1,68 +0,0 @@ -Cypress.Commands.add('login', () => { - if (Cypress.env('keycloak_test_enable')) { - cy.task('log', 'logging in via keycloak...'); - - cy.session('keycloak', () => { - cy.visit('/'); // Replace with your login page URL - cy.get('body').then(($body) => { - // If there's a screen that makes you click on an OAuth button, click on it - if ($body.find('.login-content-box').length > 0) { - cy.task('log', 'Clicking on the OAuth button...'); - cy.contains('OAuth').click(); - cy.wait(1000); - } - }); - - cy.get('body').then(($body) => { - // Return successfully if there's no box for a username (which is how this is detecting if it's on a login page) - if ($body.find('#username').length == 0) { - if ($body.find('#user').length == 0) { - cy.task('log', 'No login screen, returning from login()...'); - return 0; - } - } - - if ($body.find('#username').length > 0) { - cy.task('log', 'keycloak is displaying the login/password screen...'); - cy.get('input[id="username"]').type(Cypress.env('keycloak_username')); - cy.get('input[id="password"]').type(Cypress.env('keycloak_password')); - cy.get('input[id="kc-login"]').click(); - - cy.intercept('GET', '**/*').as('landingpage'); - cy.get('input[id="kc-accept"]').click(); - - // Though the cookies will clear, the consent will be kept in keycloak between tests, so we have to see - // whether that page comes up and skip it if not. - cy.get('body').then(($kconsent) => { - if ($kconsent.find('input[id="kc-login"]').length > 0) { - // Need to reset the intercept now that it will be looking at this click instead of the one above - cy.intercept('GET', '**/*').as('landingpage'); - cy.get('input[id="kc-login"]').click(); - } - }); - - // After hitting "yes" on the consent page, there should be a redirect back to the app (for grafana it's 302) - // It also might catch a 200 code, which is also OK - cy.wait('@landingpage').its('response.statusCode').should('match', (/200|302/)); - cy.task('log', 'keycloak has redirected back to the app...'); - - // Then the app's page should load - cy.wait('@landingpage').its('response.statusCode').should('match', (/200|302/)); - cy.task('log', 'app homepage has loaded successfully...'); - } - }); - }); - } else { - cy.task('log', 'skipping sso test...'); - cy.get('body').then(($body) => { - if ($body.find('input[name="user"]').length != 0) { - cy.task('log', 'detected login page, logging in with static username and password...'); - cy.get('input[name="user"]').type('admin'); - cy.get('input[name="password"]').type('prom-operator'); - cy.contains("Log in").click(); - cy.get('.page-dashboard'); - cy.task('log', 'app homepage has loaded successfully...'); - } - }); - } -}); diff --git a/chart/values.yaml b/chart/values.yaml index 2b0b7d8c0d0645ac203134076f73d5b1a9ee1b1e..d3b8da77a7bb30a1bf56b613901c4a60a8901089 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -1394,6 +1394,9 @@ bbtests: requests: cpu: 2 memory: 2Gi + limits: + cpu: 2 + memory: 2Gi istio: sidecar: resources: