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
 
-![Version: 7.2.1-bb.4](https://img.shields.io/badge/Version-7.2.1--bb.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.2.3](https://img.shields.io/badge/AppVersion-10.2.3-informational?style=flat-square)
+![Version: 7.2.1-bb.5](https://img.shields.io/badge/Version-7.2.1--bb.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.2.3](https://img.shields.io/badge/AppVersion-10.2.3-informational?style=flat-square)
 
 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: