Untitled

 avatar
unknown
plain_text
10 months ago
5.1 kB
15
Indexable
configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-env-configmap
  namespace: {{ .Release.Namespace }}
  labels:
    {{- include "reolink-app-registry.labels" . | nindent 4 }}
data:
  config.yml: |
    application:
      instanceId: 3a3d2e96-5138-4382-993b-6cefa3a9ca72

    # DB section now references ENV vars instead of hardcoding credentials
    db:
      default:
        type: typeorm
        options:
          type: postgres
          host: {{ .Values.database.host }}
          port: {{ .Values.database.port }}
          username: {{ .Values.database.user }}
          password: ${SVC_COMMON_PASSWORD}
          database: {{ .Values.database.name }}
          entityPrefix: app_registry_
          logging: false
          extra:
            connectionLimit: 2

    cache:
      zones:
        health_checks:
          driver: redis
          options:
            keyNamespace: 'health_checks:'
            ttl: 86400
      connections:
        distributed_mutex:
          driver: redis
          password: ""
          database: 0
          host: {{ .Values.redis.host }}
          port: {{ .Values.redis.port }}
        health_checks:
          driver: redis
          password: ""
          database: 0
          host: {{ .Values.redis.host }}
          port: {{ .Values.redis.port }}

    rpc:
      server:
        listens:
          - protocol: "http"
            host: 0.0.0.0
            port: 4000
            backlog: 128
            timeout: 60
      client:
        altConfigProvider: '' 

-------------------------------------------------------
deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Release.Name }}
  labels:
{{- include "reolink-app-registry.labels" . | nindent 4 }}
{{- range $key, $value := .Values.appLabels }}
    {{ $key }}: {{ $value | quote }}
{{- end }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
{{- include "reolink-app-registry.selectorLabels" . | nindent 6 }}
{{- range $key, $value := .Values.appLabels }}
      {{ $key }}: {{ $value | quote }}
{{- end }}
  template:
    metadata:
      labels:
{{- include "reolink-app-registry.selectorLabels" . | nindent 10 }}
{{- range $key, $value := .Values.appLabels }}
          {{ $key }}: {{ $value | quote }}
{{- end }}
    spec:
      serviceAccountName: {{ .Values.serviceAccount.name }}
      containers:
      - name: {{ .Chart.Name }}
        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        imagePullPolicy: {{ .Values.image.pullPolicy }}
        ports:
          - containerPort: 80
            name: http
        command: {{ toJson .Values.command }}
        volumeMounts:
          - name: secrets-store
            mountPath: "/var/secrets"
            readOnly: true
          - name: config-volume
            mountPath: /data/config.yml
            subPath: config.yml
        envFrom:
          - configMapRef:
              name: {{ .Release.Name }}-env-configmap
      volumes:
        - name: secrets-store
          csi:
            driver: secrets-store-gke.csi.k8s.io
            readOnly: true
            volumeAttributes:
              secretProviderClass: reolink-app-registry-secret-provider
        - name: config-volume
          configMap:
            name: {{ .Release.Name }}-env-configmap



---------------------------------------------------------------------------
values.yaml

base:
  secret:
    enabled: true

replicaCount: 1

image:
  pullPolicy: IfNotPresent

serviceAccount:
  name: ksa

service:
  type: NodePort 
  port: 80
  externalPort: 30001

appLabels:
  app: application-registry
  component: backend
  tier: service

command:
  - "node"
  - "./node_modules/.bin/reolink"
  - "run"
  - "packages/service.application-registry"
  - "/data/config.yml"

------------------------------

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: {{ include "reolink-app-registry.fullname" . }}
  labels:
    {{- include "reolink-app-registry.labels" . | nindent 4 }}
spec:
  type: {{ .Values.service.type }}
  ports:
    - port: {{ .Values.service.port }}
      targetPort: 80
      nodePort: {{ .Values.service.externalPort }}
      protocol: TCP
      name: http
  selector:
    {{- include "reolink-app-registry.selectorLabels" . | nindent 4 }}


--------

chart.yaml


apiVersion: v2
name: reolink-app-registry
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.0.0"
maintainers:
  - name: Reolink Engineering
    email: [email protected]
dependencies:
- name: base
  version: "0.1.0"
  repository: "file://../base"

--------------------------------------------------------------------

values.yaml

base:
  secret:
    project: dev-reocloud
    secrets:
    - resourceName: backend-db-svc_common-pass
      path: SVC_COMMON_PASSWORD

replicaCount: 1

image:
  repository: us-central1-docker.pkg.dev/dev-reocloud/reocloud-cn/application-registry
  tag: release-production-v1.0.0-202407050258-comovue

database:
  host: 10.38.0.2
  user: svc_common
  port: 5432
  name: svc_common

redis:
  host: gke-redis-service
  port: 6379

Editor is loading...
Leave a Comment