# Governance App Deployment On Container

Deploying the Governance App on Red Hat OpenShift Service on AWS (ROSA) involves Helm-based configuration, environment variable injection, and proper domain and certificate setup. This document outlines the deployment process in a structured format, covering prerequisites, Helm chart changes, configuration file updates, and final verification.

### Prerequisites

Before starting the deployment, ensure the following:

* **Domain Name:** A registered domain (e.g., https\://\<domain>) to expose the Governance App.
* **ACM Certificate:** An AWS Certificate Manager (ACM) certificate for the above domain (for LoadBalancer SSL termination).
* **Access:** Sufficient permissions to modify and deploy Helm charts in the OpenShift environment.
* **gov.zip:** Contains deployment and service templates for the Governance App (provided by OvalEdge).

## Steps for Governance App Deployment on Container

### Adding Templates to Helm Chart

Navigate to the Helm chart directory where the OvalEdge application is managed.

Extract `gov.zip` provided by OvalEdge.

Copy the following into the `templates/` directory of the Helm chart:

* `gov-deployment.yaml`
* `gov-service.yaml`

### Modify UI and Job Deployment Files

Update environment variables for the OvalEdge UI and Job pods to connect with Governance App:

**Update User Deployment File**

* Locate the container’s environment variables section.

  Open `userdeployment.yaml` from the helm chart directory. add under container `env`:

  ```yaml
  - name: GOV_APP_HOST
    value: {{ .Values.gov.HOST }}
  - name: GOV_APP_PORT
    value: {{ .Values.gov.PORT }}
  - name: GOV_APP_PROTOCOL
    value: {{ .Values.gov.PROTOCOL }}
  ```

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfMbq59rzKkNuLP-rmrFj5us36pt-XOgVBOGw9ZW9ehDNlXuekzrJN2eqA6yctpMm081nFA0oykSTnlbeajO1GAUi19E5wNZyzZlS_U79j_FQ-8c3eBSeoiBRGlS91wm79yfIzO?key=NaWUm-o3nbTa6FDVhTD0vw" alt=""><figcaption></figcaption></figure>

#### **Update Job Deployment File**

* Open `jobdeployment.yaml`
* Locate the container’s environment variables section.
* Add the same environment variables as above:

  ```yaml
  - name: GOV_APP_HOST
    value: {{ .Values.gov.HOST }}
  - name: GOV_APP_PORT
    value: {{ .Values.gov.PORT }}
  - name: GOV_APP_PROTOCOL
    value: {{ .Values.gov.PROTOCOL }}
  ```

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcVtKMNUdVmN1FmA-k8BPMfXFxJ6z1kPGCfJaVVHnGJwM0MOrqXoiBidZ399u0yy-_ZoP81XrpDHhnRC76_zHQuZYNbDuUrh682ilhCwpG-AIfcvKZbCdmRIxgXUnrXCvDXE_UxeQ?key=NaWUm-o3nbTa6FDVhTD0vw" alt=""><figcaption></figcaption></figure>

### Update `values.yaml` Configuration

**Add Governance App Image Reference**

In the Add gov\_image with the actual image name provided by the OvalEdge team:

```
  gov_image: <actual_image_name>
```

<figure><img src="/files/INBhJNDYO0YX19OMzChc" alt=""><figcaption></figcaption></figure>

**Add Governance Service Section**

Add the Governance App service configuration block:

```yaml
gov:
  HOST: gov-service
  PORT: 8081
  PROTOCOL: http
  replicas: 2
  resources:
    requests:
      cpu: 500m
      memory: 1Gi
    limits:
      cpu: 1
      memory: 2Gi
  service:
    type: LoadBalancer
    port: 443
  loadBalancer:
    cert: "arn-of-certificate"
```

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc2qqsYRQW5dHTskMtjF4bB2i4I4Dfg-rFowsE04rPmtIb1GvoVdyfSX3RRy34S-tHOfo-P-2gCzM1hVcjkiQrq5qUziWTlQYtNplaL8UlV4qkO6phNyLVp6qqDOjxjEKHzAXuf?key=NaWUm-o3nbTa6FDVhTD0vw" alt=""><figcaption></figcaption></figure>

👉 **Best Practices Added**:

* `replicas`: ensures HA by running ≥2 pods.
* `resources`: enforces requests/limits for stability.

#### Apply Helm Upgrade

```bash
helm upgrade --install ovedge ./helm-chart -f values.yaml
```

## Post-Deployment Validation

### Health Check

* Open: `https://<domain>/actuator/health`\
  \
  \
  \
  \
  \
  \
  \
  \
  \
  \
  \
  \
  \
  \
  &#x20;\
  ![](/files/zqcmes3y8HIBq3hxzCs3)
* Confirm status = `"UP"`.

### TLS & Domain Validation

* Verify DNS resolves to LoadBalancer.
* Confirm ACM certificate is correctly attached.

### Application Integration

* To register the Governance App domain in the OvalEdge application:
  * Log in to the **OvalEdge application**.
  * Navigate to: `Administration → System Settings → Others`.
  * Locate the **key** for Gov App.
  * Update the value with the **Governance App’s** domain name.<br>

    <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeCepXWp8pGxXIR3EtGPtd_lf0Q_5xFSu0pad7_9FLk9ZRXvQK1ISJSMz_SBiZESraRhekaEC0X8APqqmf2nA2lUD9caWgyRqy0tajfsluQog7kEVfoBQ-eWUj_oHMm51S8wU0Ahg?key=NaWUm-o3nbTa6FDVhTD0vw" alt=""><figcaption></figcaption></figure>

#### Observability

* If issues occur after deployment:
  * Re-check the `gov-deployment.yaml` and  `gov-service.yaml` configurations.
  * Verify if the **domain** resolves correctly and the **ACM certificate** is properly attached to the LoadBalancer.
  * Inspect Helm logs or use kubectl describe and kubectl logs for pod-level diagnostics.

***

Copyright © 2025, OvalEdge LLC, Peachtree Corners, GA, USA.

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ovaledge.com/deployment-and-maintenance/integration/governance-app-deployment-on-container.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
