commit e4f63f214ee4c4fba7dd4134eb019fb0d2e180e5 Author: Oleksandr Glushchenko Date: Mon Jan 13 13:46:12 2025 -0500 init diff --git a/helm/Readme.md b/helm/Readme.md new file mode 100644 index 0000000..aa8e9a6 --- /dev/null +++ b/helm/Readme.md @@ -0,0 +1,126 @@ +curl -sfL https://get.k3s.io | sh -s - --docker --disable=traefik + +helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace + +helm upgrade -i mysql bitnami/mysql -f .\mysql\values.yaml +helm uninstall mysql +helm upgrade -i mysql oci://registry-1.docker.io/bitnamicharts/mysql >>2.txt +helm template mysql oci://registry-1.docker.io/bitnamicharts/mysql >>2.txt +helm template mysql bitnami/mysql -f .\mysql\values.yaml >> 1.txt + +helm upgrade mysql oci://registry-1.docker.io/bitnamicharts/mysql -f .\mysql\values.yaml + + +helm repo add bitnami https://charts.bitnami.com/bitnami +helm repo add grafana https://grafana.github.io/helm-charts +helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx +helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts + +helm repo list +helm repo update + +helm search repo mysql +helm search repo bitnami + + + +helm install mysql oci://registry-1.docker.io/bitnamicharts/mysql + +sudo kubectl run curlpod --image=curlimages/curl -i --tty -- sh +sudo kubectl delete pod curlpod + + +sudo kubectl create namespace monitoring +helm install grafana grafana/grafana --namespace monitoring +helm uninstall grafana --namespace monitoring +helm get notes my-grafana -n monitoring + + +helm install ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx --create-namespace --values helm/ingress-nginx/values.yaml +helm install alloy grafana/alloy + +helm show values ingress-nginx/ingress-nginx >> helm/ingress-nginx/demo.yaml + + + +http://loki-gateway.loki.svc.cluster.local/ +http://mimir-nginx.mimir-distributed.svc/prometheus +http://tempo-query-frontend.tempo.svc.cluster.local:3100 + + +kubectl create namespace tempo +helm upgrade -i tempo grafana/tempo-distributed --values helm/tempo/values.yaml --namespace tempo + +kubectl create namespace loki +helm upgrade -i loki grafana/loki --values helm/loki/values.yaml --namespace loki + +kubectl create namespace mimir +helm upgrade -i mimir grafana/mimir-distributed --values helm/mimir/values.yaml --namespace mimir + +helm upgrade -i grafana grafana/grafana --values helm/grafana/values.yaml + +helm upgrade -i opentelemetry-collector open-telemetry/opentelemetry-collector --values helm/opentelemetry-collector/values.yaml + + + +netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=8871 connectaddress=172.19.52.249 connectport=30871 +netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=51750 connectaddress=172.19.52.249 connectport=30750 +netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=3306 connectaddress=172.19.52.249 connectport=30306 + +wsl -e sh -c "cd /mnt/c/inetpub/scriptsez/secure/MiddlewareTCPserver/TcpServer && docker build -t local/tcp-server:0.0.2 ." +wsl -e sh -c "cd /mnt/c/projects/ezTaxReturnWCF && docker build -t local/wcf-service:0.0.7 ." + + + +https://askubuntu.com/questions/574569/apt-get-stuck-at-0-connecting-to-us-archive-ubuntu-com + +sudo nano /etc/gai.conf +precedence ::ffff:0:0/96 100 + + + + +How to disable IPv6 permanently? + +sudo nano /etc/sysctl.conf + +net.ipv6.conf.all.disable_ipv6 = 1 +net.ipv6.conf.default.disable_ipv6 = 1 +net.ipv6.conf.lo.disable_ipv6 = 1 + +cat /proc/sys/net/ipv6/conf/all/disable_ipv6 + +sudo sysctl -p + + + +Make /etc/resolv.conf changes permanent in WSL 2 + +sudo rm /etc/resolv.conf +sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' +sudo bash -c 'echo "[network]" > /etc/wsl.conf' +sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf' +sudo chattr +i /etc/resolv.conf + + + +sudo nano /etc/apt/sources.list.d/ubuntu.sources + +sudo nano /etc/apt/sources.list.d/ubuntu.sources +use - https://ubuntu.ip-connect.vn.ua/ +from - https://launchpad.net/ubuntu/+mirror/ubuntu.ip-connect.vn.ua-archive + + + +nameserver 127.0.0.53 +options edns0 trust-ad +search . + + +sudo rm /etc/resolv.conf +options rotate +options timeout:1 +nameserver 10.255.255.0 +nameserver 8.8.8.8 +nameserver 8.8.4.4 +search . \ No newline at end of file diff --git a/helm/alloy/values.yaml b/helm/alloy/values.yaml new file mode 100644 index 0000000..d4fc7ed --- /dev/null +++ b/helm/alloy/values.yaml @@ -0,0 +1,39 @@ +alloy: + configMap: + content: |- + prometheus.exporter.self "default" { + } + + prometheus.scrape "metamonitoring" { + targets = prometheus.exporter.self.default.targets + forward_to = [prometheus.remote_write.default.receiver] + } + + prometheus.remote_write "default" { + endpoint { + url = "http://mimir-nginx.mimir-distributed.svc/api/v1/push" + } + } + + logging { + level = "warn" + format = "json" + write_to = [loki.write.default.receiver] + } + + loki.write "default" { + endpoint { + url = "http://loki-gateway.loki-distributed.svc.cluster.local/loki/api/v1/push" + } + } + + tracing { + sampling_fraction = 0.1 + write_to = [otelcol.exporter.otlp.default.input] + } + + otelcol.exporter.otlp "default" { + client { + endpoint = "tempo-distributor.trace-test.svc.cluster.local:4317" + } + } \ No newline at end of file diff --git a/helm/eztaxreturn/fake-smtp-server/Chart.yaml b/helm/eztaxreturn/fake-smtp-server/Chart.yaml new file mode 100644 index 0000000..dba73a2 --- /dev/null +++ b/helm/eztaxreturn/fake-smtp-server/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: fake-smtp-server + +description: Fake Smtp Server +type: application +version: 0.0.1 \ No newline at end of file diff --git a/helm/eztaxreturn/fake-smtp-server/templates/_helpers.tpl b/helm/eztaxreturn/fake-smtp-server/templates/_helpers.tpl new file mode 100644 index 0000000..ee0ce0d --- /dev/null +++ b/helm/eztaxreturn/fake-smtp-server/templates/_helpers.tpl @@ -0,0 +1,42 @@ +{{- define "fake-smtp-server.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "fake-smtp-server.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{- define "fake-smtp-server.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "fake-smtp-server.labels" -}} +helm.sh/chart: {{ include "fake-smtp-server.chart" . }} +{{ include "fake-smtp-server.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{- define "fake-smtp-server.selectorLabels" -}} +app.kubernetes.io/name: {{ include "fake-smtp-server.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{- define "fake-smtp-server.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "fake-smtp-server.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/fake-smtp-server/templates/configmap.yaml b/helm/eztaxreturn/fake-smtp-server/templates/configmap.yaml new file mode 100644 index 0000000..5e1604e --- /dev/null +++ b/helm/eztaxreturn/fake-smtp-server/templates/configmap.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "fake-smtp-server.fullname" . }} +data: +{{- range $key, $val := .Values.env.normal }} + {{ $key }}: {{ $val | quote }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/fake-smtp-server/templates/deployment.yaml b/helm/eztaxreturn/fake-smtp-server/templates/deployment.yaml new file mode 100644 index 0000000..f38bd6e --- /dev/null +++ b/helm/eztaxreturn/fake-smtp-server/templates/deployment.yaml @@ -0,0 +1,68 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "fake-smtp-server.fullname" . }} + labels: + {{- include "fake-smtp-server.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "fake-smtp-server.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "fake-smtp-server.selectorLabels" . | nindent 8 }} + apptype: dotnet + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "fake-smtp-server.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: smtp + containerPort: {{ .Values.service.smtpPort }} + protocol: TCP + - name: web-ui + containerPort: {{ .Values.service.webUIPort }} + protocol: TCP + - name: management + containerPort: {{ .Values.service.managementPort }} + protocol: TCP + readinessProbe: + tcpSocket: + port: web-ui + envFrom: + - configMapRef: + name: {{ include "fake-smtp-server.fullname" . }} + - secretRef: + name: {{ include "fake-smtp-server.fullname" . }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/fake-smtp-server/templates/secret.yaml b/helm/eztaxreturn/fake-smtp-server/templates/secret.yaml new file mode 100644 index 0000000..e74ae1a --- /dev/null +++ b/helm/eztaxreturn/fake-smtp-server/templates/secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "fake-smtp-server.fullname" . }} + labels: + {{- include "fake-smtp-server.labels" . | nindent 4 }} +data: +{{- range $key, $val := .Values.env.secrets }} + {{ $key }}: {{ $val | toString | b64enc }} + {{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/fake-smtp-server/templates/service.yaml b/helm/eztaxreturn/fake-smtp-server/templates/service.yaml new file mode 100644 index 0000000..40a8011 --- /dev/null +++ b/helm/eztaxreturn/fake-smtp-server/templates/service.yaml @@ -0,0 +1,50 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "fake-smtp-server.fullname" . }}-smtp + labels: + {{- include "fake-smtp-server.labels" . | nindent 4 }} +spec: + type: NodePort + ports: + - port: {{ .Values.service.smtpPort }} + targetPort: smtp + protocol: TCP + name: smtp + nodePort: {{ .Values.service.smtpNodePort }} + selector: + {{- include "fake-smtp-server.selectorLabels" . | nindent 4 }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ include "fake-smtp-server.fullname" . }}-web-ui + labels: + {{- include "fake-smtp-server.labels" . | nindent 4 }} +spec: + type: NodePort + ports: + - port: {{ .Values.service.webUIPort }} + targetPort: web-ui + protocol: TCP + name: web-ui + nodePort: {{ .Values.service.webUINodePort }} + selector: + {{- include "fake-smtp-server.selectorLabels" . | nindent 4 }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ include "fake-smtp-server.fullname" . }}-management + labels: + {{- include "fake-smtp-server.labels" . | nindent 4 }} +spec: + type: NodePort + ports: + - port: {{ .Values.service.managementPort }} + targetPort: management + protocol: TCP + name: management + nodePort: {{ .Values.service.managementNodePort }} + selector: + {{- include "fake-smtp-server.selectorLabels" . | nindent 4 }} diff --git a/helm/eztaxreturn/fake-smtp-server/values.yaml b/helm/eztaxreturn/fake-smtp-server/values.yaml new file mode 100644 index 0000000..cce5bae --- /dev/null +++ b/helm/eztaxreturn/fake-smtp-server/values.yaml @@ -0,0 +1,34 @@ +replicaCount: 1 + +image: + repository: gessnerfl/fake-smtp-server + pullPolicy: Always + tag: "2.2.1" + +service: + smtpPort: 8025 + smtpNodePort: 30825 + webUIPort: 8080 + webUINodePort: 30880 + managementPort: 8081 + managementNodePort: 30881 + +serviceAccount: + create: false + annotations: {} + +autoscaling: + enabled: false + +resources: + requests: + memory: "250Mi" + cpu: "50m" + limits: + memory: "1000Mi" + cpu: "500m" + +env: + normal: + # FAKESMTP_AUTHENTICATION_USERNAME: dev_support@dev.eztaxreturn.com + # FAKESMTP_AUTHENTICATION_PASSWORD: 04303d094781693fd80325ff106d2002232ce5e28862848ffe657a9b03fc6330 \ No newline at end of file diff --git a/helm/eztaxreturn/georgia-api/Chart.yaml b/helm/eztaxreturn/georgia-api/Chart.yaml new file mode 100644 index 0000000..51e3ee4 --- /dev/null +++ b/helm/eztaxreturn/georgia-api/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: georgia-api + +description: State Georgia API +type: application +version: 0.0.1 \ No newline at end of file diff --git a/helm/eztaxreturn/georgia-api/templates/_helpers.tpl b/helm/eztaxreturn/georgia-api/templates/_helpers.tpl new file mode 100644 index 0000000..e600364 --- /dev/null +++ b/helm/eztaxreturn/georgia-api/templates/_helpers.tpl @@ -0,0 +1,42 @@ +{{- define "georgia-api.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "georgia-api.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{- define "georgia-api.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "georgia-api.labels" -}} +helm.sh/chart: {{ include "georgia-api.chart" . }} +{{ include "georgia-api.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{- define "georgia-api.selectorLabels" -}} +app.kubernetes.io/name: {{ include "georgia-api.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{- define "georgia-api.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "georgia-api.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/georgia-api/templates/configmap.yaml b/helm/eztaxreturn/georgia-api/templates/configmap.yaml new file mode 100644 index 0000000..3e51788 --- /dev/null +++ b/helm/eztaxreturn/georgia-api/templates/configmap.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "georgia-api.fullname" . }} +data: +{{- range $key, $val := .Values.env.normal }} + {{ $key }}: {{ $val | quote }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/georgia-api/templates/deployment.yaml b/helm/eztaxreturn/georgia-api/templates/deployment.yaml new file mode 100644 index 0000000..93ada8a --- /dev/null +++ b/helm/eztaxreturn/georgia-api/templates/deployment.yaml @@ -0,0 +1,63 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "georgia-api.fullname" . }} + labels: + {{- include "georgia-api.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "georgia-api.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "georgia-api.selectorLabels" . | nindent 8 }} + apptype: dotnet + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "georgia-api.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.service.port }} + protocol: TCP + readinessProbe: + httpGet: + path: /health + port: http + envFrom: + - configMapRef: + name: {{ include "georgia-api.fullname" . }} + - secretRef: + name: {{ include "georgia-api.fullname" . }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/georgia-api/templates/ingress.yaml b/helm/eztaxreturn/georgia-api/templates/ingress.yaml new file mode 100644 index 0000000..c4c51f5 --- /dev/null +++ b/helm/eztaxreturn/georgia-api/templates/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "georgia-api.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "georgia-api.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/georgia-api/templates/secret.yaml b/helm/eztaxreturn/georgia-api/templates/secret.yaml new file mode 100644 index 0000000..149439e --- /dev/null +++ b/helm/eztaxreturn/georgia-api/templates/secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "georgia-api.fullname" . }} + labels: + {{- include "georgia-api.labels" . | nindent 4 }} +data: +{{- range $key, $val := .Values.env.secrets }} + {{ $key }}: {{ $val | toString | b64enc }} + {{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/georgia-api/templates/service.yaml b/helm/eztaxreturn/georgia-api/templates/service.yaml new file mode 100644 index 0000000..47020c4 --- /dev/null +++ b/helm/eztaxreturn/georgia-api/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "georgia-api.fullname" . }} + labels: + {{- include "georgia-api.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http +{{- if eq .Values.service.type "NodePort" }} + nodePort: {{ .Values.service.nodePort }} +{{- end }} + selector: + {{- include "georgia-api.selectorLabels" . | nindent 4 }} diff --git a/helm/eztaxreturn/georgia-api/values.yaml b/helm/eztaxreturn/georgia-api/values.yaml new file mode 100644 index 0000000..87f2158 --- /dev/null +++ b/helm/eztaxreturn/georgia-api/values.yaml @@ -0,0 +1,41 @@ +replicaCount: 1 + +image: + repository: local/georgia-api + pullPolicy: Never + tag: "0.0.6" + +service: + type: ClusterIP + port: 8080 + +ingress: + enabled: true + className: nginx + annotations: + nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/enable-rewrite-log: "true" + hosts: + - host: "" + paths: + - path: /georgia-api(/|$)(.*) + pathType: Prefix + +serviceAccount: + create: false + annotations: {} + +autoscaling: + enabled: false + +resources: + requests: + memory: "250Mi" + cpu: "50m" + limits: + memory: "1000Mi" + cpu: "500m" + +env: + normal: + ASPNETCORE_URLS: "http://*:8080" diff --git a/helm/eztaxreturn/mysql-dev/Chart.yaml b/helm/eztaxreturn/mysql-dev/Chart.yaml new file mode 100644 index 0000000..199d158 --- /dev/null +++ b/helm/eztaxreturn/mysql-dev/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: mysql-dev + +description: MYSQL Dev environment +type: application +version: 0.0.1 \ No newline at end of file diff --git a/helm/eztaxreturn/mysql-dev/templates/_helpers.tpl b/helm/eztaxreturn/mysql-dev/templates/_helpers.tpl new file mode 100644 index 0000000..6631865 --- /dev/null +++ b/helm/eztaxreturn/mysql-dev/templates/_helpers.tpl @@ -0,0 +1,42 @@ +{{- define "mysql-dev.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "mysql-dev.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{- define "mysql-dev.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "mysql-dev.labels" -}} +helm.sh/chart: {{ include "mysql-dev.chart" . }} +{{ include "mysql-dev.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{- define "mysql-dev.selectorLabels" -}} +app.kubernetes.io/name: {{ include "mysql-dev.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{- define "mysql-dev.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "mysql-dev.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/mysql-dev/templates/endpoint.yaml b/helm/eztaxreturn/mysql-dev/templates/endpoint.yaml new file mode 100644 index 0000000..fb8d546 --- /dev/null +++ b/helm/eztaxreturn/mysql-dev/templates/endpoint.yaml @@ -0,0 +1,49 @@ +# apiVersion: v1 +# kind: Endpoints +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-user1 +# subsets: +# - addresses: +# - ip: rds-user1.dev.eztaxreturn.com +# ports: +# - port: 3306 +# --- +# apiVersion: v1 +# kind: Endpoints +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-user2 +# subsets: +# - addresses: +# - ip: rds-user2.dev.eztaxreturn.com +# ports: +# - port: 3306 +# --- +# apiVersion: v1 +# kind: Endpoints +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-user3 +# subsets: +# - addresses: +# - ip: rds-user3.dev.eztaxreturn.com +# ports: +# - port: 3306 +# --- +# apiVersion: v1 +# kind: Endpoints +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-user4 +# subsets: +# - addresses: +# - ip: rds-user4.dev.eztaxreturn.com +# ports: +# - port: 3306 +# --- +# apiVersion: v1 +# kind: Endpoints +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-user5 +# subsets: +# - addresses: +# - ip: rds-user5.dev.eztaxreturn.com +# ports: +# - port: 3306 diff --git a/helm/eztaxreturn/mysql-dev/templates/service.yaml b/helm/eztaxreturn/mysql-dev/templates/service.yaml new file mode 100644 index 0000000..2f6ab9b --- /dev/null +++ b/helm/eztaxreturn/mysql-dev/templates/service.yaml @@ -0,0 +1,68 @@ +# apiVersion: v1 +# kind: Service +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-user1 +# spec: +# type: ExternalName +# externalName: rds-user1.dev.eztaxreturn.com +# --- +# apiVersion: v1 +# kind: Service +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-user2 +# spec: +# type: ExternalName +# externalName: rds-user2.dev.eztaxreturn.com +# --- +# apiVersion: v1 +# kind: Service +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-user3 +# spec: +# type: ExternalName +# externalName: rds-user3.dev.eztaxreturn.com +# --- +# apiVersion: v1 +# kind: Service +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-user4 +# spec: +# type: ExternalName +# externalName: rds-user4.dev.eztaxreturn.com +# --- +# apiVersion: v1 +# kind: Service +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-user5 +# spec: +# type: ExternalName +# externalName: rds-user5.dev.eztaxreturn.com +# --- +# apiVersion: v1 +# kind: Service +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-lookup +# spec: +# type: ExternalName +# externalName: rds-lookup.dev.eztaxreturn.com +# --- +# apiVersion: v1 +# kind: Service +# metadata: +# name: {{ include "mysql-dev.fullname" . }}-rds-archive +# spec: +# type: ExternalName +# externalName: rds-archive.dev.eztaxreturn.com + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "mysql-dev.fullname" . }}-rds-user1 +spec: + ports: + - name: mysql + protocol: TCP + port: 3306 + targetPort: 3306 + externalIPs: + - 10.16.0.228 \ No newline at end of file diff --git a/helm/eztaxreturn/mysql-dev/values.yaml b/helm/eztaxreturn/mysql-dev/values.yaml new file mode 100644 index 0000000..e69de29 diff --git a/helm/eztaxreturn/mysql-local/values.yaml b/helm/eztaxreturn/mysql-local/values.yaml new file mode 100644 index 0000000..8240900 --- /dev/null +++ b/helm/eztaxreturn/mysql-local/values.yaml @@ -0,0 +1,48 @@ +auth: + rootPassword: Ezt2003! + createDatabase: false + username: test + password: Ezt2003! + +primary: + configuration: |- + [mysqld] + authentication_policy='{{- .Values.auth.authenticationPolicy | default "* ,," }}' + skip-name-resolve + explicit_defaults_for_timestamp + basedir=/opt/bitnami/mysql + plugin_dir=/opt/bitnami/mysql/lib/plugin + port={{ .Values.primary.containerPorts.mysql }} + mysqlx={{ ternary 1 0 .Values.primary.enableMySQLX }} + mysqlx_port={{ .Values.primary.containerPorts.mysqlx }} + socket=/opt/bitnami/mysql/tmp/mysql.sock + datadir=/bitnami/mysql/data + tmpdir=/opt/bitnami/mysql/tmp + max_allowed_packet=16M + bind-address=* + pid-file=/opt/bitnami/mysql/tmp/mysqld.pid + log-error=/opt/bitnami/mysql/logs/mysqld.log + character-set-server=UTF8 + slow_query_log=0 + long_query_time=10.0 + sql-mode="NO_ENGINE_SUBSTITUTION" + lower_case_table_names=1 + + [client] + port={{ .Values.primary.containerPorts.mysql }} + socket=/opt/bitnami/mysql/tmp/mysql.sock + default-character-set=UTF8 + plugin_dir=/opt/bitnami/mysql/lib/plugin + + [manager] + port={{ .Values.primary.containerPorts.mysql }} + socket=/opt/bitnami/mysql/tmp/mysql.sock + pid-file=/opt/bitnami/mysql/tmp/mysqld.pid + + service: + type: NodePort + ports: + mysql: 3306 + nodePorts: + mysql: 30306 + diff --git a/helm/eztaxreturn/tcp-server/Chart.yaml b/helm/eztaxreturn/tcp-server/Chart.yaml new file mode 100644 index 0000000..8c1680f --- /dev/null +++ b/helm/eztaxreturn/tcp-server/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: tcp-server + +description: TCP Server +type: application +version: 0.0.1 \ No newline at end of file diff --git a/helm/eztaxreturn/tcp-server/templates/_helpers.tpl b/helm/eztaxreturn/tcp-server/templates/_helpers.tpl new file mode 100644 index 0000000..95c7f3e --- /dev/null +++ b/helm/eztaxreturn/tcp-server/templates/_helpers.tpl @@ -0,0 +1,42 @@ +{{- define "tcp-server.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "tcp-server.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{- define "tcp-server.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "tcp-server.labels" -}} +helm.sh/chart: {{ include "tcp-server.chart" . }} +{{ include "tcp-server.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{- define "tcp-server.selectorLabels" -}} +app.kubernetes.io/name: {{ include "tcp-server.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{- define "tcp-server.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "tcp-server.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/tcp-server/templates/configmap.yaml b/helm/eztaxreturn/tcp-server/templates/configmap.yaml new file mode 100644 index 0000000..b3d5ffe --- /dev/null +++ b/helm/eztaxreturn/tcp-server/templates/configmap.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "tcp-server.fullname" . }} +data: +{{- range $key, $val := .Values.env.normal }} + {{ $key }}: {{ $val | quote }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/tcp-server/templates/deployment.yaml b/helm/eztaxreturn/tcp-server/templates/deployment.yaml new file mode 100644 index 0000000..f67b6dd --- /dev/null +++ b/helm/eztaxreturn/tcp-server/templates/deployment.yaml @@ -0,0 +1,62 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "tcp-server.fullname" . }} + labels: + {{- include "tcp-server.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "tcp-server.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "tcp-server.selectorLabels" . | nindent 8 }} + apptype: dotnet + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "tcp-server.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.service.port }} + protocol: TCP + readinessProbe: + tcpSocket: + port: http + envFrom: + - configMapRef: + name: {{ include "tcp-server.fullname" . }} + - secretRef: + name: {{ include "tcp-server.fullname" . }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/tcp-server/templates/ingress.yaml b/helm/eztaxreturn/tcp-server/templates/ingress.yaml new file mode 100644 index 0000000..79957f7 --- /dev/null +++ b/helm/eztaxreturn/tcp-server/templates/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "tcp-server.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "tcp-server.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/tcp-server/templates/secret.yaml b/helm/eztaxreturn/tcp-server/templates/secret.yaml new file mode 100644 index 0000000..32afea8 --- /dev/null +++ b/helm/eztaxreturn/tcp-server/templates/secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "tcp-server.fullname" . }} + labels: + {{- include "tcp-server.labels" . | nindent 4 }} +data: +{{- range $key, $val := .Values.env.secrets }} + {{ $key }}: {{ $val | toString | b64enc }} + {{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/tcp-server/templates/service.yaml b/helm/eztaxreturn/tcp-server/templates/service.yaml new file mode 100644 index 0000000..7202ffa --- /dev/null +++ b/helm/eztaxreturn/tcp-server/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "tcp-server.fullname" . }} + labels: + {{- include "tcp-server.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http +{{- if eq .Values.service.type "NodePort" }} + nodePort: {{ .Values.service.nodePort }} +{{- end }} + selector: + {{- include "tcp-server.selectorLabels" . | nindent 4 }} diff --git a/helm/eztaxreturn/tcp-server/values.default.yaml b/helm/eztaxreturn/tcp-server/values.default.yaml new file mode 100644 index 0000000..3d5256b --- /dev/null +++ b/helm/eztaxreturn/tcp-server/values.default.yaml @@ -0,0 +1,4 @@ +env: + normal: + Environment: "Development" + DataBases__127.0.0.1: "server=mysql.eztaxreturn.svc.cluster.local;port=3306;database=eztax;uid=test;pwd=Ezt2003!" diff --git a/helm/eztaxreturn/tcp-server/values.dev.yaml b/helm/eztaxreturn/tcp-server/values.dev.yaml new file mode 100644 index 0000000..bd9b89c --- /dev/null +++ b/helm/eztaxreturn/tcp-server/values.dev.yaml @@ -0,0 +1,10 @@ +env: + normal: + Environment: "Production" + DataBases__rds-user1.dev.eztaxreturn.com: "server=mysql-dev-rds-user1.eztaxreturn.svc.cluster.local;port=3306;database=eztax;uid=test;pwd=Ezt2003!" + DataBases__rds-user2.dev.eztaxreturn.com: "server=mysql-dev-rds-user2.eztaxreturn.svc.cluster.local;port=3306;database=eztax;uid=test;pwd=Ezt2003!" + DataBases__rds-user3.dev.eztaxreturn.com: "server=mysql-dev-rds-user3.eztaxreturn.svc.cluster.local;port=3306;database=eztax;uid=test;pwd=Ezt2003!" + DataBases__rds-user4.dev.eztaxreturn.com: "server=mysql-dev-rds-user4.eztaxreturn.svc.cluster.local;port=3306;database=eztax;uid=test;pwd=Ezt2003!" + DataBases__rds-user5.dev.eztaxreturn.com: "server=mysql-dev-rds-user5.eztaxreturn.svc.cluster.local;port=3306;database=eztax;uid=test;pwd=Ezt2003!" + DataBases__rds-lookup.dev.eztaxreturn.com: "server=mysql-dev-rds-lookup.eztaxreturn.svc.cluster.local;port=3306;database=eztax;uid=test;pwd=Ezt2003!" + DataBases__rds-archive.dev.eztaxreturn.com: "server=mysql-dev-rds-archive.eztaxreturn.svc.cluster.local;port=3306;uid=test;pwd=Ezt2003!" diff --git a/helm/eztaxreturn/tcp-server/values.yaml b/helm/eztaxreturn/tcp-server/values.yaml new file mode 100644 index 0000000..22d3665 --- /dev/null +++ b/helm/eztaxreturn/tcp-server/values.yaml @@ -0,0 +1,35 @@ +replicaCount: 1 + +image: + repository: local/tcp-server + pullPolicy: Never + tag: "0.0.1" + +service: + type: NodePort + port: 8871 + nodePort: 30871 + +ingress: + enabled: false + +serviceAccount: + create: false + annotations: {} + +autoscaling: + enabled: false + +resources: + requests: + memory: "250Mi" + cpu: "100m" + limits: + memory: "2000Mi" + cpu: "1000m" + +env: + normal: + listeningToTCPPort: "8871" + otlpExporter__logsEndpoint: "http://opentelemetry-collector.open-telemetry.svc.cluster.local:4318/v1/logs" + otlpExporter__tracesEndpoint: "http://opentelemetry-collector.open-telemetry.svc.cluster.local:4318/v1/traces" diff --git a/helm/eztaxreturn/wcf-service/Chart.yaml b/helm/eztaxreturn/wcf-service/Chart.yaml new file mode 100644 index 0000000..a65b9ec --- /dev/null +++ b/helm/eztaxreturn/wcf-service/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: wcf-service + +description: WCF service +type: application +version: 0.0.1 \ No newline at end of file diff --git a/helm/eztaxreturn/wcf-service/templates/_helpers.tpl b/helm/eztaxreturn/wcf-service/templates/_helpers.tpl new file mode 100644 index 0000000..32b9a61 --- /dev/null +++ b/helm/eztaxreturn/wcf-service/templates/_helpers.tpl @@ -0,0 +1,42 @@ +{{- define "wcf-service.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "wcf-service.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{- define "wcf-service.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "wcf-service.labels" -}} +helm.sh/chart: {{ include "wcf-service.chart" . }} +{{ include "wcf-service.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{- define "wcf-service.selectorLabels" -}} +app.kubernetes.io/name: {{ include "wcf-service.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{- define "wcf-service.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "wcf-service.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/wcf-service/templates/configmap.yaml b/helm/eztaxreturn/wcf-service/templates/configmap.yaml new file mode 100644 index 0000000..72792e6 --- /dev/null +++ b/helm/eztaxreturn/wcf-service/templates/configmap.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "wcf-service.fullname" . }} +data: +{{- range $key, $val := .Values.env.normal }} + {{ $key }}: {{ $val | quote }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/wcf-service/templates/deployment.yaml b/helm/eztaxreturn/wcf-service/templates/deployment.yaml new file mode 100644 index 0000000..8c2c0d7 --- /dev/null +++ b/helm/eztaxreturn/wcf-service/templates/deployment.yaml @@ -0,0 +1,63 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "wcf-service.fullname" . }} + labels: + {{- include "wcf-service.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "wcf-service.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "wcf-service.selectorLabels" . | nindent 8 }} + apptype: dotnet + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "wcf-service.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.service.port }} + protocol: TCP + readinessProbe: + httpGet: + path: /health + port: http + envFrom: + - configMapRef: + name: {{ include "wcf-service.fullname" . }} + - secretRef: + name: {{ include "wcf-service.fullname" . }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/wcf-service/templates/ingress.yaml b/helm/eztaxreturn/wcf-service/templates/ingress.yaml new file mode 100644 index 0000000..b5fb1e6 --- /dev/null +++ b/helm/eztaxreturn/wcf-service/templates/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "wcf-service.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "wcf-service.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/wcf-service/templates/secret.yaml b/helm/eztaxreturn/wcf-service/templates/secret.yaml new file mode 100644 index 0000000..be633f1 --- /dev/null +++ b/helm/eztaxreturn/wcf-service/templates/secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "wcf-service.fullname" . }} + labels: + {{- include "wcf-service.labels" . | nindent 4 }} +data: +{{- range $key, $val := .Values.env.secrets }} + {{ $key }}: {{ $val | toString | b64enc }} + {{- end }} \ No newline at end of file diff --git a/helm/eztaxreturn/wcf-service/templates/service.yaml b/helm/eztaxreturn/wcf-service/templates/service.yaml new file mode 100644 index 0000000..3bff702 --- /dev/null +++ b/helm/eztaxreturn/wcf-service/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "wcf-service.fullname" . }} + labels: + {{- include "wcf-service.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http +{{- if eq .Values.service.type "NodePort" }} + nodePort: {{ .Values.service.nodePort }} +{{- end }} + selector: + {{- include "wcf-service.selectorLabels" . | nindent 4 }} diff --git a/helm/eztaxreturn/wcf-service/values.default.yaml b/helm/eztaxreturn/wcf-service/values.default.yaml new file mode 100644 index 0000000..32a85d0 --- /dev/null +++ b/helm/eztaxreturn/wcf-service/values.default.yaml @@ -0,0 +1,3 @@ +env: + normal: + ConnectionStrings__127.0.0.1: "server=mysql.eztaxreturn.svc.cluster.local;user id=test;password=Ezt2003!;persistsecurityinfo=True;database=eztax;Convert Zero Datetime=True;Allow Zero Datetime=True;Connection Timeout=10; default command timeout=800;Charset=latin1;" diff --git a/helm/eztaxreturn/wcf-service/values.dev.yaml b/helm/eztaxreturn/wcf-service/values.dev.yaml new file mode 100644 index 0000000..b4c70cd --- /dev/null +++ b/helm/eztaxreturn/wcf-service/values.dev.yaml @@ -0,0 +1,9 @@ +env: + normal: + ConnectionStrings__rds-user1.dev.eztaxreturn.com: "server=rds-user1.dev.eztaxreturn.com;user id=test;password=Ezt2003!;persistsecurityinfo=True;database=eztax;Convert Zero Datetime=True;Allow Zero Datetime=True;Connection Timeout=10; default command timeout=800;Charset=latin1;" + ConnectionStrings__rds-user2.dev.eztaxreturn.com: "server=rds-user2.dev.eztaxreturn.com;user id=test;password=Ezt2003!;persistsecurityinfo=True;database=eztax;Convert Zero Datetime=True;Allow Zero Datetime=True;Connection Timeout=10; default command timeout=800;Charset=latin1;" + ConnectionStrings__rds-user3.dev.eztaxreturn.com: "server=rds-user3.dev.eztaxreturn.com;user id=test;password=Ezt2003!;persistsecurityinfo=True;database=eztax;Convert Zero Datetime=True;Allow Zero Datetime=True;Connection Timeout=10; default command timeout=800;Charset=latin1;" + ConnectionStrings__rds-user4.dev.eztaxreturn.com: "server=rds-user4.dev.eztaxreturn.com;user id=test;password=Ezt2003!;persistsecurityinfo=True;database=eztax;Convert Zero Datetime=True;Allow Zero Datetime=True;Connection Timeout=10; default command timeout=800;Charset=latin1;" + ConnectionStrings__rds-user5.dev.eztaxreturn.com: "server=rds-user5.dev.eztaxreturn.com;user id=test;password=Ezt2003!;persistsecurityinfo=True;database=eztax;Convert Zero Datetime=True;Allow Zero Datetime=True;Connection Timeout=10; default command timeout=800;Charset=latin1;" + ConnectionStrings__rds-lookup.dev.eztaxreturn.com: "server=rds-lookup.dev.eztaxreturn.com;user id=test;password=Ezt2003!;persistsecurityinfo=True;database=eztax;Convert Zero Datetime=True;Allow Zero Datetime=True;Connection Timeout=10; default command timeout=800;Charset=latin1;" + ConnectionStrings__rds-archive.dev.eztaxreturn.com: "server=rds-archive.dev.eztaxreturn.com;user id=test;password=Ezt2003!;persistsecurityinfo=True;Convert Zero Datetime=True;Allow Zero Datetime=True;Connection Timeout=10; default command timeout=800;Charset=latin1;" diff --git a/helm/eztaxreturn/wcf-service/values.yaml b/helm/eztaxreturn/wcf-service/values.yaml new file mode 100644 index 0000000..b481e96 --- /dev/null +++ b/helm/eztaxreturn/wcf-service/values.yaml @@ -0,0 +1,39 @@ +replicaCount: 1 + +image: + repository: local/wcf-service + pullPolicy: Never + tag: "0.0.1" + +service: + type: NodePort + port: 8080 + nodePort: 30750 + +ingress: + enabled: false + +serviceAccount: + create: false + annotations: {} + +autoscaling: + enabled: false + +resources: + requests: + memory: "250Mi" + cpu: "50m" + limits: + memory: "1000Mi" + cpu: "500m" + +env: + normal: + AppSettings__enabled: "true" + AppSettings__aspnet__UseTaskFriendlySynchronizationContext: "true" + AppSettings__static_values_path: "config/static_values/" + AppSettings__tax_rate_file: "config/rate_schedules.txt" + otlpExporter__logsEndpoint: "http://opentelemetry-collector.open-telemetry.svc.cluster.local:4318/v1/logs" + otlpExporter__tracesEndpoint: "http://opentelemetry-collector.open-telemetry.svc.cluster.local:4318/v1/traces" + diff --git a/helm/grafana/values.yaml b/helm/grafana/values.yaml new file mode 100644 index 0000000..0e35267 --- /dev/null +++ b/helm/grafana/values.yaml @@ -0,0 +1,26 @@ +adminUser: admin +adminPassword: Ezt2003! + +grafana.ini: + server: + root_url: "%(protocol)s://%(domain)s/grafana" + serve_from_sub_path: true + +ingress: + enabled: true + ingressClassName: nginx + path: /grafana + hosts: {} + +datasources: + datasources.yaml: + apiVersion: 1 + datasources: + - name: Loki + type: loki + access: proxy + url: http://loki-gateway.loki.svc.cluster.local/ + - name: Tempo + type: tempo + access: proxy + url: http://tempo-query-frontend.tempo.svc.cluster.local:3100 diff --git a/helm/ingress-nginx/values.yaml b/helm/ingress-nginx/values.yaml new file mode 100644 index 0000000..0867ea4 Binary files /dev/null and b/helm/ingress-nginx/values.yaml differ diff --git a/helm/loki/values.yaml b/helm/loki/values.yaml new file mode 100644 index 0000000..678f8ea --- /dev/null +++ b/helm/loki/values.yaml @@ -0,0 +1,46 @@ +deploymentMode: SingleBinary + +loki: + auth_enabled: false + server: + http_listen_port: 3100 + commonConfig: + replication_factor: 1 + storage: + type: 'filesystem' + schemaConfig: + configs: + - from: "2024-01-01" + store: tsdb + index: + prefix: loki_index_ + period: 24h + object_store: filesystem # we're storing on filesystem so there's no real persistence here. + schema: v13 + limits_config: + allow_structured_metadata: true + +gateway: + ingress: + enabled: true + ingressClassName: nginx + hosts: + - host: "" + paths: + - path: /loki + pathType: Prefix + tls: + + + +singleBinary: + replicas: 1 + +read: + replicas: 0 + +backend: + replicas: 0 + +write: + replicas: 0 \ No newline at end of file diff --git a/helm/mimir/values.yaml b/helm/mimir/values.yaml new file mode 100644 index 0000000..e69de29 diff --git a/helm/opentelemetry-collector/values.yaml b/helm/opentelemetry-collector/values.yaml new file mode 100644 index 0000000..394b90b --- /dev/null +++ b/helm/opentelemetry-collector/values.yaml @@ -0,0 +1,61 @@ +mode: "deployment" +image: + repository: "otel/opentelemetry-collector-k8s" + +# service: +# type: NodePort + +ingress: + enabled: true + ingressClassName: nginx + annotations: + # nginx.ingress.kubernetes.io/backend-protocol: GRPC + nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/enable-rewrite-log: "true" + hosts: + - host: "" + paths: + - path: /otlp(/|$)(.*) + # - path: / + pathType: Prefix + port: 4318 + +config: + exporters: + otlphttp/logs: + endpoint: http://loki-gateway.loki.svc.cluster.local/otlp + tls: + insecure: true + otlphttp/traces: + endpoint: http://tempo-gateway.tempo.svc.cluster.local + tls: + insecure: true + receivers: + jaeger: null + prometheus: null + zipkin: null + service: + pipelines: + logs: + receivers: + - otlp + exporters: + - otlphttp/logs + traces: + receivers: + - otlp + exporters: + - otlphttp/traces + metrics: + receivers: + - otlp + +ports: + jaeger-compact: + enabled: false + jaeger-thrift: + enabled: false + jaeger-grpc: + enabled: false + zipkin: + enabled: false \ No newline at end of file diff --git a/helm/rabbitmq/values.yaml b/helm/rabbitmq/values.yaml new file mode 100644 index 0000000..25d1159 Binary files /dev/null and b/helm/rabbitmq/values.yaml differ diff --git a/helm/tempo/values.yaml b/helm/tempo/values.yaml new file mode 100644 index 0000000..2ed7b01 --- /dev/null +++ b/helm/tempo/values.yaml @@ -0,0 +1,50 @@ +gateway: + enabled: true + ingress: + enabled: true + ingressClassName: nginx + annotations: + nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/enable-rewrite-log: "true" + hosts: + - host: "" + paths: + - path: /tempo(/|$)(.*) + pathType: Prefix + tls: + +storage: + trace: + backend: s3 + s3: + access_key: 'grafana-tempo' + secret_key: 'supersecret' + bucket: 'tempo-traces' + endpoint: 'tempo-minio:9000' + insecure: true + + +minio: + enabled: true + mode: standalone + rootUser: grafana-tempo + rootPassword: supersecret + buckets: + # Default Tempo storage bucket + - name: tempo-traces + policy: none + purge: false + +traces: + otlp: + grpc: + enabled: true + http: + enabled: true + zipkin: + enabled: false + jaeger: + thriftHttp: + enabled: false + opencensus: + enabled: false \ No newline at end of file diff --git a/helmfile.yaml b/helmfile.yaml new file mode 100644 index 0000000..b8710f2 --- /dev/null +++ b/helmfile.yaml @@ -0,0 +1,129 @@ +environments: + default: + dev: + +repositories: + - name: bitnami + url: https://charts.bitnami.com/bitnami + - name: grafana + url: https://grafana.github.io/helm-charts + - name: ingress-nginx + url: https://kubernetes.github.io/ingress-nginx + - name: open-telemetry + url: https://open-telemetry.github.io/opentelemetry-helm-charts + +releases: + +#======INFRASTRUCTURE======# + + - name: ingress-nginx + chart: ingress-nginx/ingress-nginx + values: + - helm/ingress-nginx/values.yaml + +#======MONITORING======# + + - name: tempo + namespace: tempo + createNamespace: true + chart: grafana/tempo-distributed + values: + - helm/tempo/values.yaml + + - name: loki + namespace: loki + createNamespace: true + chart: grafana/loki + values: + - helm/loki/values.yaml + + - name: mimir + installed: false + namespace: mimir + createNamespace: true + chart: grafana/mimir-distributed + values: + - helm/mimir/values.yaml + + - name: grafana + namespace: grafana + createNamespace: true + chart: grafana/grafana + needs: + - loki/loki + - tempo/tempo + # - mimir/mimir + values: + - helm/grafana/values.yaml + + - name: opentelemetry-collector + namespace: open-telemetry + createNamespace: true + chart: open-telemetry/opentelemetry-collector + needs: + - loki/loki + - tempo/tempo + # - mimir/mimir + values: + - helm/opentelemetry-collector/values.yaml + +#======EZTAXRETURN======# + + - name: mysql + # installed: false + namespace: eztaxreturn + createNamespace: true + chart: bitnami/mysql + version: 11.1.20 + values: + - helm/eztaxreturn/mysql-local/values.yaml + + - name: rabbitmq + installed: false + namespace: eztaxreturn + createNamespace: true + chart: bitnami/rabbitmq + values: + - helm/rabbitmq/values.yaml + + - name: mysql-dev + # installed: false + namespace: eztaxreturn + createNamespace: true + chart: helm/eztaxreturn/mysql-dev + values: + - helm/eztaxreturn/mysql-dev/values.yaml + + - name: fake-smtp-server + # installed: false + namespace: eztaxreturn + createNamespace: true + chart: helm/eztaxreturn/fake-smtp-server + values: + - helm/eztaxreturn/fake-smtp-server/values.yaml + + - name: tcp-server + # installed: false + namespace: eztaxreturn + createNamespace: true + chart: helm/eztaxreturn/tcp-server + values: + - helm/eztaxreturn/tcp-server/values.yaml + - helm/eztaxreturn/tcp-server/values.{{ .Environment.Name }}.yaml + + - name: wcf-service + # installed: false + namespace: eztaxreturn + createNamespace: true + chart: helm/eztaxreturn/wcf-service + values: + - helm/eztaxreturn/wcf-service/values.yaml + - helm/eztaxreturn/wcf-service/values.{{ .Environment.Name }}.yaml + + - name: georgia-api + installed: false + namespace: eztaxreturn + createNamespace: true + chart: helm/eztaxreturn/georgia-api + values: + - helm/eztaxreturn/georgia-api/values.yaml diff --git a/helpers/forward-ports.cmd b/helpers/forward-ports.cmd new file mode 100644 index 0000000..8ba87d7 --- /dev/null +++ b/helpers/forward-ports.cmd @@ -0,0 +1,4 @@ +netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=8871 connectaddress=172.19.52.249 connectport=30871 +netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=51750 connectaddress=172.19.52.249 connectport=30750 +netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=3306 connectaddress=172.19.52.249 connectport=30306 +netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=25 connectaddress=172.19.52.249 connectport=30825 diff --git a/helpers/unforward-ports.cmd b/helpers/unforward-ports.cmd new file mode 100644 index 0000000..b4ff510 --- /dev/null +++ b/helpers/unforward-ports.cmd @@ -0,0 +1,4 @@ +netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=8871 +netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=51750 +netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=3306 +netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=25