Scalable and distributed custom feed generator, ott - on that topic

Switch service array to dict for easier config

+24 -22
+13 -12
helm/ott/templates/services.yaml
··· 1 - {{- range .Values.services }} 1 + {{- range $name, $service := .Values.services }} 2 + {{- $serviceName := $name | replace "_" "-" }} 2 3 --- 3 4 apiVersion: apps/v1 4 5 kind: Deployment 5 6 metadata: 6 - name: {{ .name }} 7 + name: {{ $serviceName }} 7 8 labels: 8 - app: {{ .name }} 9 + app: {{ $serviceName }} 9 10 spec: 10 - replicas: {{ .replicas | default 1 }} 11 + replicas: {{ $service.replicas | default 1 }} 11 12 selector: 12 13 matchLabels: 13 - app: {{ .name }} 14 + app: {{ $serviceName }} 14 15 template: 15 16 metadata: 16 17 labels: 17 - app: {{ .name }} 18 + app: {{ $serviceName }} 18 19 spec: 19 20 containers: 20 21 - name: connector 21 - image: "{{ .image.fqn }}" 22 - imagePullPolicy: {{ .image.pullPolicy }} 22 + image: "{{ $service.image.fqn }}" 23 + imagePullPolicy: {{ $service.image.pullPolicy }} 23 24 env: 24 - {{- toYaml .env | nindent 10 }} 25 + {{- toYaml $service.env | nindent 10 }} 25 26 --- 26 27 apiVersion: v1 27 28 kind: Service 28 29 metadata: 29 - name: {{ .name }} 30 + name: {{ $serviceName }} 30 31 labels: 31 - app: {{ .name }} 32 + app: {{ $serviceName }} 32 33 spec: 33 34 selector: 34 - app: {{ .name }} 35 + app: {{ $serviceName }} 35 36 ports: 36 37 - port: 80 37 38 targetPort: 8080
+5 -5
helm/ott/values.yaml
··· 7 7 token: {} 8 8 9 9 services: 10 - - name: likes-connector 10 + likes_connector: 11 11 image: 12 12 fqn: likes-connector 13 13 pullPolicy: IfNotPresent 14 14 replicas: 1 15 15 16 - - name: posts-connector 16 + posts_connector: 17 17 image: 18 18 fqn: posts-connector 19 19 pullPolicy: IfNotPresent 20 20 replicas: 1 21 21 22 - - name: ott-filter 22 + ott_filter: 23 23 image: 24 24 fqn: ott-filter 25 25 pullPolicy: IfNotPresent 26 26 replicas: 1 27 27 28 - - name: ott-embed 28 + ott_embed: 29 29 image: 30 30 fqn: ott-embed 31 31 pullPolicy: IfNotPresent ··· 43 43 - name: DATABASE_URL 44 44 value: "postgres://$(DATABASE_USER):$(DATABASE_PASSWORD)@postgres-rw.default.svc.cluster.local:5432/app" 45 45 46 - - name: ott-xrpc 46 + ott_xrpc: 47 47 image: 48 48 fqn: ott-embed 49 49 pullPolicy: IfNotPresent
+6 -5
skaffold.yaml
··· 87 87 setValueTemplates: 88 88 cloudflared.token: "{{.CLOUDFLARE_TUNNEL_TOKEN}}" 89 89 postgresql.migration_image_fqn: "{{.IMAGE_FULLY_QUALIFIED_migration_pg}}" 90 - services[0].image.fqn: "{{.IMAGE_FULLY_QUALIFIED_likes_connector}}" 91 - services[1].image.fqn: "{{.IMAGE_FULLY_QUALIFIED_posts_connector}}" 92 - services[2].image.fqn: "{{.IMAGE_FULLY_QUALIFIED_ott_filter}}" 93 - services[3].image.fqn: "{{.IMAGE_FULLY_QUALIFIED_ott_embed}}" 94 - services[4].image.fqn: "{{.IMAGE_FULLY_QUALIFIED_ott_xrpc}}" 90 + services.likes_connector.image.fqn: "{{.IMAGE_FULLY_QUALIFIED_likes_connector}}" 91 + services.posts_connector.image.fqn: "{{.IMAGE_FULLY_QUALIFIED_posts_connector}}" 92 + services.ott_filter.image.fqn: "{{.IMAGE_FULLY_QUALIFIED_ott_filter}}" 93 + services.ott_embed.image.fqn: "{{.IMAGE_FULLY_QUALIFIED_ott_embed}}" 94 + services.ott_xrpc.image.fqn: "{{.IMAGE_FULLY_QUALIFIED_ott_xrpc}}" 95 + services.ott_xrpc.env[0].value: "{{.EXTERNAL_BASE_URL}}" 95 96 version: 0.1.0