Skip to content

Commit

Permalink
refactor api charts
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonbarbee committed Oct 9, 2024
1 parent 9ac1b2b commit ad111dd
Show file tree
Hide file tree
Showing 20 changed files with 311 additions and 314 deletions.
2 changes: 1 addition & 1 deletion helm/charts/api/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: v1
version: 0.11.4
appVersion: 0.8.3
name: stable-ha
name: api
description: Call Telemetry for Cisco Callmanager
home: https://calltelemetry.com/
icon: https://calltelemetry.com/logo.png
Expand Down
8 changes: 4 additions & 4 deletions helm/charts/api/requirements.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
dependencies:
- name: nats
version: 1.2.5
repository: https://nats-io.github.io/k8s/helm/charts/
# dependencies:
# - name: nats
# version: 1.2.5
# repository: https://nats-io.github.io/k8s/helm/charts/
17 changes: 17 additions & 0 deletions helm/charts/api/templates/db_secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
apiVersion: v1
kind: Secret
metadata:
name: {{ .Release.Name }}-db-secret
labels:
app.kubernetes.io/name: {{ .Release.Name }}-api
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
type: Opaque
stringData:
db_user: {{ if .Values.db.useSecret }}{{ .Values.db.secretName | quote }}{{ else }}{{ .Values.db.values.db_username | quote }}{{ end }}
db_password: {{ if .Values.db.useSecret }}{{ .Values.db.secretName | quote }}{{ else }}{{ .Values.db.values.db_password | quote }}{{ end }}
db_name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName | quote }}{{ else }}{{ .Values.db.values.db_name | quote }}{{ end }}
db_hostname: {{ if .Values.db.useSecret }}{{ .Values.db.secretName | quote }}{{ else }}{{ .Values.db.values.db_hostname | quote }}{{ end }}
db_port: {{ if .Values.db.useSecret }}{{ .Values.db.secretName | quote }}{{ else }}{{ .Values.db.values.db_port | quote }}{{ end }}
db_ssl_enabled: {{ if .Values.db.useSecret }}{{ .Values.db.secretName | quote }}{{ else }}{{ .Values.db.values.db_ssl_enabled | quote }}{{ end }}
102 changes: 58 additions & 44 deletions helm/charts/api/templates/deployments/admin-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-admin-service
name: admin-service
labels:
app: {{ .Release.Name }}-admin-service
app: admin-service
spec:
selector:
matchLabels:
app: {{ .Release.Name }}-admin-service
replicas: 1
app: admin-service
replicas: {{ .Values.admin.replicas }}
strategy:
# type: Recreate
rollingUpdate:
maxSurge: 50%
maxUnavailable: 70%
type: RollingUpdate
template:
metadata:
labels:
app: {{ .Release.Name }}-admin-service
app: admin-service
role_curri_api: {{ .Values.admin.api_worker | quote }}
spec:
securityContext:
runAsUser: {{ .Values.userid }}
Expand All @@ -34,78 +34,92 @@ spec:
tolerationSeconds: 2
terminationGracePeriodSeconds: 5
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- {{ .Release.Name }}-admin-service
topologyKey: "kubernetes.io/hostname"
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- {{ .Release.Name }}-admin-service
topologyKey: "kubernetes.io/hostname"
containers:
- name: admin-service
- name: {{ .Release.Name }}-admin
image: {{ .Values.admin.image }}
imagePullPolicy: {{ .Values.admin.imagePullPolicy }}
ports:
- containerPort: 4001
- containerPort: 4080
{{- range .Values.admin.container_ports }}
- containerPort: {{ .port }}
name: {{ .name }}
{{- end }}
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
# memory: "1024Mi"
cpu: {{ .Values.admin.cpus }}
# livenessProbe:
# httpsGet:
# path: /
# port: 4001
# initialDelaySeconds: 15
livenessProbe:
httpGet:
scheme: HTTP
path: /health
port: 4000
path: /healthz
port: 4080
initialDelaySeconds: 15
periodSeconds: 3
readinessProbe:
httpGet:
scheme: HTTP
path: /health
port: 4000
path: /healthz
port: 4080
initialDelaySeconds: 3
periodSeconds: 3
env:
- name: EXTERNAL_IP
value: {{ .Values.hostname}}
value: {{ .Values.hostname | quote }}
- name: DB_USER
valueFrom: { secretKeyRef: { name: {{ .Values.db_secret }}, key: user} }
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_user
- name: DB_PASSWORD
valueFrom: { secretKeyRef: { name: {{ .Values.db_secret }}, key: password } }
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_password
- name: DB_NAME
valueFrom: { secretKeyRef: { name: {{ .Values.db_secret }}, key: dbname } }
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_name
- name: DB_HOSTNAME
valueFrom: { secretKeyRef: { name: {{ .Values.db_secret }}, key: host} }
- name: CDR_ROOT_PATH
value: {{ .Values.cdr_root_path }}
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_hostname
- name: DB_PORT
value: {{ quote .Values.db_port }}
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_port
- name: DB_SSL_ENABLED
value: {{ quote .Values.db_ssl_enabled }}
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_ssl_enabled
- name: CDR_ROOT_PATH
value: {{ .Values.cdr_root_path | quote }}
- name: LOGGING_LEVEL
value: {{ .Values.admin.logging_level }}
value: {{ .Values.admin.logging_level | quote }}
- name: LOCAL_NATS
value: {{ .Release.Name }}-nats
value: {{ .Values.nats_server | quote }}
- name: WORKER_NODE
value: "TRUE"
value: {{ .Values.admin.api_worker | quote }}
- name: ADMIN_NODE
value: "TRUE"
- name: HTTP_ADAPTER
value: "HACKNEY"
- name: CERT_KEY
value: /home/app/cert/appliance_key.pem
value: "/home/app/cert/appliance_key.pem"
- name: CERT_PUBLIC
value: /home/app/cert/appliance.pem
value: "/home/app/cert/appliance.pem"
49 changes: 35 additions & 14 deletions helm/charts/api/templates/deployments/api-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-api
name: api-worker
labels:
app: {{ .Release.Name }}-api
app: api-worker
role_curri_api: "true"
spec:
selector:
matchLabels:
app: {{ .Release.Name }}-api
app: api-worker
replicas: {{ .Values.api.replicas }}
strategy:
rollingUpdate:
Expand All @@ -18,7 +19,8 @@ spec:
template:
metadata:
labels:
app: {{ .Release.Name }}-api
app: api-worker
role_curri_api: "true"
spec:
securityContext:
runAsUser: {{ .Values.userid }}
Expand Down Expand Up @@ -49,9 +51,10 @@ spec:
image: {{ .Values.api.image }}
imagePullPolicy: {{ .Values.api.imagePullPolicy }}
ports:
- containerPort: 4080
- containerPort: 4000
- containerPort: 3022
{{- range .Values.api.container_ports }}
- containerPort: {{ .port }}
name: {{ .name }}
{{- end }}
resources:
requests:
memory: "256Mi"
Expand All @@ -75,25 +78,43 @@ spec:
- name: EXTERNAL_IP
value: {{ .Values.hostname }}
- name: DB_USER
valueFrom: { secretKeyRef: { name: {{ .Values.db_secret }}, key: user} }
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_user
- name: DB_PASSWORD
valueFrom: { secretKeyRef: { name: {{ .Values.db_secret }}, key: password } }
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_password
- name: DB_NAME
valueFrom: { secretKeyRef: { name: {{ .Values.db_secret }}, key: dbname } }
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_name
- name: DB_HOSTNAME
valueFrom: { secretKeyRef: { name: {{ .Values.db_secret }}, key: host} }
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_hostname
- name: DB_PORT
value: {{ quote .Values.db_port }}
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_port
- name: DB_SSL_ENABLED
value: {{ quote .Values.db_ssl_enabled }}
valueFrom:
secretKeyRef:
name: {{ if .Values.db.useSecret }}{{ .Values.db.secretName }}{{ else }}{{ .Release.Name }}-db-secret{{ end }}
key: db_ssl_enabled
- name: CDR_ROOT_PATH
value: {{ .Values.cdr_root_path }}
- name: LOGGING_LEVEL
value: {{ .Values.api.logging_level }}
- name: TRACEROUTE_SERVICE
value: {{ .Release.Name }}-traceroute-service
- name: LOCAL_NATS
value: {{ .Release.Name }}-nats
value: {{ .Values.nats_server }}
- name: ADMIN_NODE
value: "FALSE"
- name: WORKER_NODE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ spec:
selector:
matchLabels:
app: {{ .Release.Name }}-traceroute-service
replicas: 1
replicas: {{ .Values.traceroute.replicas }} # Update this line to use the replicas value from values.yaml
strategy:
rollingUpdate:
maxSurge: 50%
Expand Down Expand Up @@ -64,4 +64,4 @@ spec:
cpu: {{ .Values.traceroute.cpus }}
env:
- name: NATS_HOSTNAME
value: {{ .Release.Name }}-nats
value: {{ .Values.nats_server }}
20 changes: 20 additions & 0 deletions helm/charts/api/templates/ingress/admin-ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: admin-ingress
namespace: {{ .Release.Namespace }}
annotations:
kubernetes.io/ingress.class: nginx
spec:
ingressClassName: nginx
rules:
- host: {{ .Values.admin.hostname }}
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: admin-internal-service
port:
number: {{ range .Values.admin.container_ports }}{{ if eq .name "web-api" }}{{ .port }}{{ end }}{{ end }} # Reference the web-api port
18 changes: 18 additions & 0 deletions helm/charts/api/templates/ingress/api-ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api-ingress
namespace: {{ .Release.Namespace }}
spec:
ingressClassName: nginx
rules:
- host: {{ .Values.api.hostname }}
http:
paths:
- path: /api/policy
pathType: Prefix
backend:
service:
name: curri-api-service
port:
number: 4080
23 changes: 0 additions & 23 deletions helm/charts/api/templates/services/admin-internal.yaml

This file was deleted.

15 changes: 15 additions & 0 deletions helm/charts/api/templates/services/admin-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: admin-internal-service
labels:
app: admin-internal-service
spec:
type: ClusterIP
selector:
app: admin-service
ports:
- port: 4000
targetPort: 4000
protocol: TCP
name: http
Loading

0 comments on commit ad111dd

Please sign in to comment.