---
# System prepended metadata

title: 客戶案場 helm chart 修正

---

# 客戶案場 helm chart 修正
## image 位置
服務的鏡像位置在客戶案場會被取代，因此需要將 image 的repository位置分開來寫。
範例：
values.yaml
```
global:
  repo:
    registry: harbor.arfa.wise-paas.com
    project: event-center
    
#中間省略

  eventlogs:
    repository: ec-logs
    tag: 0.0.0.41
```
deployment.yaml
```
image: "{{ .Values.global.repo.registry }}/{{ .Values.global.repo.project }}/{{ .Values.global.eventlogs.repository }}:{{ .Values.global.eventlogs.tag }}"
```
## KeyValut 應用
因為客戶案場需要非常嚴謹的DB連線資訊，所以我們要透過掛載volume的方式取得我們想要的DB連線。
以下為範例：
value.yaml
```
#沒有說明得拉參數到value.yaml即可
global:
  database:
    secretName: "pivot-secret" 
    secretKey: "ENSAAS_SERVICES" 
# 中間省略
  keyVault:
    enabled: false #是否要啟用
    serviceAccountName: workload-identity-ifactory 
    mountPath: /mnt/secrets-store #寫你可以掛載volume的地點
    secretProviderClass: azure-sync 
```
deployment.yaml
```
spec:
  template:
    spec:
      {{- if .Values.global.keyVault.enabled }} 
      serviceAccountName: "{{ .Values.global.keyVault.serviceAccountName }}"
      volumes:
        - name: keyvault #can change
          csi:
            driver: secrets-store.csi.k8s.io
            readOnly: true
            volumeAttributes:
                secretProviderClass: "{{ .Values.global.keyVault.secretProviderClass }}"
      {{- end }}
  containers:
    {{- if .Values.global.keyVault.enabled }}
      volumeMounts:
        - name: keyvault #can change
          mountPath: "{{ .Values.global.keyVault.mountPath }}"
          readOnly: true
    {{- end }}
       env:
       - name: ENSAAS_SERVICES
         valueFrom:
         secretKeyRef:
           name: {{.Values.global.database.secretName}}
           key: {{.Values.global.database.secretKey}}

```

完成後請上新板chart 版號。

測試方式(待討論)
可以先使用--dry-run 驗證看看有沒有問題再上板 
```
helm -n <namespace> install <service-name> ./ --dry-run 
```

## DB SSL 修正
客戶案場也需要DB使用加密的方式連線，因此我們在 sg 站點提供了包含SSL連線的 secret。
https://portal-mp-ensaas.sg.wise-ifactory.com/
放置於 eks001 openai openai 環境中，如果小夥伴們有使用到 pg 和 redis 的服務，可以將 app 佈署到該位置進行測試。

### PostgreSQL SSL 連線規格
新增部分：
```
"uri": "<連線資訊>?sslmode=require",
"ssl": true, 
"sslmode": "require"
```

### Redis SSL 連線規格
新增部分：
```
"ssl": true,
"port": 6380
```