caio-imperial opened a new pull request, #20:
URL: https://github.com/apache/hertzbeat-helm-chart/pull/20

   ## What's changed?
   
   This PR adds support for using an external PostgreSQL database instead of 
the built-in database in the HertzBeat Helm chart. The implementation supports 
both direct value configuration and Kubernetes Secret-based configuration for 
enhanced security.
   
   ### New Configuration Options
   
   Added new values under `database.external`:
   
   | Parameter | Type | Default | Description |
   |-----------|------|---------|-------------|
   | `database.external.host.value` | string | `""` | External PostgreSQL host 
(direct value) |
   | `database.external.host.valueFrom` | object | `{}` | External PostgreSQL 
host via Secret |
   | `database.external.port.value` | string | `5432` | External PostgreSQL 
port |
   | `database.external.port.valueFrom` | object | `{}` | External PostgreSQL 
port via Secret |
   | `database.external.username.value` | string | `root` | External PostgreSQL 
username |
   | `database.external.username.valueFrom` | object | `{}` | External 
PostgreSQL username via Secret |
   | `database.external.password.value` | string | `""` | External PostgreSQL 
password |
   | `database.external.password.valueFrom` | object | `{}` | External 
PostgreSQL password via Secret |
   | `database.external.database.value` | string | `hertzbeat` | External 
PostgreSQL database name |
   | `database.external.database.valueFrom` | object | `{}` | External database 
name via Secret |
   
   ### Templates Modified
   
   - `templates/_helpers.tpl` - Added database helper functions for cleaner 
configuration
   - `templates/database/configmap.yaml` - Conditionally renders internal DB 
init script only when external DB is not configured
   - `templates/database/pvc.yaml` - Conditionally renders PVC only when 
internal DB is used
   - `templates/database/service.yaml` - Conditionally renders service only 
when internal DB is used
   - `templates/database/statefulset.yaml` - Conditionally renders internal DB 
StatefulSet only when external DB is not configured
   - `templates/manager/configmap.yaml` - Updated datasource configuration to 
support external database (simplified with helpers)
   - `templates/manager/deployment.yaml` - Added environment variables for 
secret-based database credentials
   
   ## Usage Examples
   
   ### Using direct values:
   
   ```yaml
   database:
     external:
       host:
         value: "postgres.example.com"
       port:
         value: 5432
       username:
         value: "admin"
       password:
         value: "password123"
       database:
         value: "hertzbeat"
   ```
   
   ### Using Kubernetes Secrets (recommended):
   
   ```yaml
   database:
     external:
       host:
         valueFrom:
           secretKeyRef:
             name: hertzbeat-db-secret
             key: host
       username:
         valueFrom:
           secretKeyRef:
             name: hertzbeat-db-secret
             key: username
       password:
         valueFrom:
           secretKeyRef:
             name: hertzbeat-db-secret
             key: password
       database:
         valueFrom:
           secretKeyRef:
             name: hertzbeat-db-secret
             key: database
   ```
   
   When using secrets, create the secret first:
   
   ```bash
   kubectl create secret generic hertzbeat-db-secret \
     --from-literal=host=postgres.example.com \
     --from-literal=username=admin \
     --from-literal=password=password123 \
     --from-literal=database=hertzbeat
   ```
   
   ## Behavior
   
   - When `database.external.host.value` or `database.external.host.valueFrom` 
is set, the chart uses the external database
   - Internal database components (StatefulSet, Service, PVC, ConfigMap init 
script) are not rendered
   - Environment variables are automatically injected from Secrets when using 
`valueFrom`
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to