From 82cb21cba6c60c9b5c2944559b52479f96d36609 Mon Sep 17 00:00:00 2001 From: Keny Villela Date: Wed, 26 Apr 2023 17:12:18 -0300 Subject: [PATCH] final helm with saberes connection --- charts/sigi/v0.2.4/Chart.lock | 6 + charts/sigi/v0.2.4/Chart.yaml | 24 +++ charts/sigi/v0.2.4/app-readme.md | 3 + .../sigi/v0.2.4/charts/postgresql-11.6.8.tgz | Bin 0 -> 56652 bytes charts/sigi/v0.2.4/questions.yaml | 162 ++++++++++++++++ charts/sigi/v0.2.4/templates/NOTES.txt | 5 + charts/sigi/v0.2.4/templates/_helpers.tpl | 58 ++++++ charts/sigi/v0.2.4/templates/deployment.yaml | 174 ++++++++++++++++++ charts/sigi/v0.2.4/templates/hpa.yaml | 28 +++ charts/sigi/v0.2.4/templates/ingress.yaml | 72 ++++++++ charts/sigi/v0.2.4/templates/pvc-media.yaml | 21 +++ charts/sigi/v0.2.4/templates/secretkey.yaml | 13 ++ charts/sigi/v0.2.4/templates/service.yaml | 15 ++ .../v0.2.4/templates/sigi-ldap-secret.yaml | 13 ++ .../v0.2.4/templates/sigi-saberes-token.yaml | 13 ++ .../templates/velero-schedule-monthly.yaml | 39 ++++ .../templates/velero-schedule-weekdays.yaml | 39 ++++ .../templates/velero-schedule-weekly.yaml | 39 ++++ charts/sigi/v0.2.4/values.yaml | 154 ++++++++++++++++ 19 files changed, 878 insertions(+) create mode 100755 charts/sigi/v0.2.4/Chart.lock create mode 100755 charts/sigi/v0.2.4/Chart.yaml create mode 100755 charts/sigi/v0.2.4/app-readme.md create mode 100755 charts/sigi/v0.2.4/charts/postgresql-11.6.8.tgz create mode 100755 charts/sigi/v0.2.4/questions.yaml create mode 100755 charts/sigi/v0.2.4/templates/NOTES.txt create mode 100755 charts/sigi/v0.2.4/templates/_helpers.tpl create mode 100755 charts/sigi/v0.2.4/templates/deployment.yaml create mode 100755 charts/sigi/v0.2.4/templates/hpa.yaml create mode 100755 charts/sigi/v0.2.4/templates/ingress.yaml create mode 100755 charts/sigi/v0.2.4/templates/pvc-media.yaml create mode 100755 charts/sigi/v0.2.4/templates/secretkey.yaml create mode 100755 charts/sigi/v0.2.4/templates/service.yaml create mode 100644 charts/sigi/v0.2.4/templates/sigi-ldap-secret.yaml create mode 100644 charts/sigi/v0.2.4/templates/sigi-saberes-token.yaml create mode 100755 charts/sigi/v0.2.4/templates/velero-schedule-monthly.yaml create mode 100755 charts/sigi/v0.2.4/templates/velero-schedule-weekdays.yaml create mode 100755 charts/sigi/v0.2.4/templates/velero-schedule-weekly.yaml create mode 100755 charts/sigi/v0.2.4/values.yaml diff --git a/charts/sigi/v0.2.4/Chart.lock b/charts/sigi/v0.2.4/Chart.lock new file mode 100755 index 0000000..b351582 --- /dev/null +++ b/charts/sigi/v0.2.4/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 11.6.8 +digest: sha256:ee4247460b887d3cc558f76c85980fe6848624c688b855100d9863bef6830ed0 +generated: "2022-06-24T12:28:18.011798975-03:00" diff --git a/charts/sigi/v0.2.4/Chart.yaml b/charts/sigi/v0.2.4/Chart.yaml new file mode 100755 index 0000000..a929b01 --- /dev/null +++ b/charts/sigi/v0.2.4/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +name: sigi +description: Sistema de Informações Gerenciais do Interlegis (SIGI) + +# A chart can be either an 'application' or a 'library' chart. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.2.99 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +appVersion: 3.0.38 + +icon: https://git.interlegis.leg.br/SEIT/rancher-charts/raw/master/images/sigi_interlegis.png + +dependencies: +- name: postgresql + version: 11.6.8 + repository: https://charts.bitnami.com/bitnami + condition: postgresql.internal diff --git a/charts/sigi/v0.2.4/app-readme.md b/charts/sigi/v0.2.4/app-readme.md new file mode 100755 index 0000000..1bfae58 --- /dev/null +++ b/charts/sigi/v0.2.4/app-readme.md @@ -0,0 +1,3 @@ +# Sistema de Informações Gerenciais do Interlegis + +Utilize o formulário abaixo para configurar o SIGI. diff --git a/charts/sigi/v0.2.4/charts/postgresql-11.6.8.tgz b/charts/sigi/v0.2.4/charts/postgresql-11.6.8.tgz new file mode 100755 index 0000000000000000000000000000000000000000..51bbe894cecf4af3107cf9cf311767b524f0094c GIT binary patch literal 56652 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 m)Yqq&nNIu#-J=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "sigi.labels" . | nindent 4 }} + annotations: + {{- if .Values.ingress.tls.enabled }} + # USE TLS + {{- if contains "letsencrypt" .Values.ingress.tls.provider }} + cert-manager.io/cluster-issuer: "letsencrypt-prod" + {{- end }} + {{- if contains "letsencrypt-hml" .Values.ingress.tls.provider }} + cert-manager.io/cluster-issuer: "letsencrypt-hml-dns" + {{- end }} + {{- if contains "alb" .Values.ingress.class }} + alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]' + {{- end }} + {{- else }} + # DO NOT USE TLS + {{- if contains "alb" .Values.ingress.class }} + alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}]' + {{- end }} + {{- end }} + {{- if contains "alb" .Values.ingress.class }} + alb.ingress.kubernetes.io/group.name: sigi + alb.ingress.kubernetes.io/scheme: internet-facing + alb.ingress.kubernetes.io/target-type: ip + kubernetes.io/ingress.class: alb + {{- end }} + {{- with .Values.ingress.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if .Values.ingress.tls.enabled }} + tls: + - hosts: + - "{{ $hostName }}" + secretName: {{ $hostName | replace "." "-" }}-tls + {{- end }} + rules: + - host: "{{ $hostName }}" + http: + paths: + {{- if contains "nginx" .Values.ingress.class }} + - path: / + {{- else }} + - path: /* + {{- end }} + {{- if semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion }} + pathType: ImplementationSpecific + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: 80 + {{- else }} + serviceName: {{ $fullName }} + servicePort: http + {{- end }} +{{- end }} diff --git a/charts/sigi/v0.2.4/templates/pvc-media.yaml b/charts/sigi/v0.2.4/templates/pvc-media.yaml new file mode 100755 index 0000000..d122fc0 --- /dev/null +++ b/charts/sigi/v0.2.4/templates/pvc-media.yaml @@ -0,0 +1,21 @@ +{{- if .Values.persistence.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "sigi.fullname" . }}-media + labels: + {{- include "sigi.labels" . | nindent 4 }} +spec: + accessModes: + - {{ .Values.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.size }} +{{- if .Values.persistence.storageClass }} +{{- if (eq "-" .Values.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/sigi/v0.2.4/templates/secretkey.yaml b/charts/sigi/v0.2.4/templates/secretkey.yaml new file mode 100755 index 0000000..6d2336d --- /dev/null +++ b/charts/sigi/v0.2.4/templates/secretkey.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "sigi.fullname" . }}-secretkey + labels: + {{- include "sigi.labels" . | nindent 4 }} +type: Opaque +data: +{{- if .Release.IsUpgrade }} + secret.key: {{ index (lookup "v1" "Secret" .Release.Namespace (printf "%s-secretkey" (include "sigi.fullname" .))).data "secret.key" }} +{{ else }} # install operation + secret.key: {{ randAscii 50 | b64enc }} +{{ end }} diff --git a/charts/sigi/v0.2.4/templates/service.yaml b/charts/sigi/v0.2.4/templates/service.yaml new file mode 100755 index 0000000..fc302b8 --- /dev/null +++ b/charts/sigi/v0.2.4/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "sigi.fullname" . }} + labels: + {{- include "sigi.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "sigi.selectorLabels" . | nindent 4 }} diff --git a/charts/sigi/v0.2.4/templates/sigi-ldap-secret.yaml b/charts/sigi/v0.2.4/templates/sigi-ldap-secret.yaml new file mode 100644 index 0000000..a8881a8 --- /dev/null +++ b/charts/sigi/v0.2.4/templates/sigi-ldap-secret.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "sigi.fullname" . }}-auth-ldap-key + labels: + {{- include "sigi.labels" . | nindent 4 }} +type: Opaque +data: +{{- if .Release.IsUpgrade }} + AUTH_LDAP_BIND_PASSWORD: {{ index (lookup "v1" "Secret" .Release.Namespace (printf "%s-auth-ldap-key" (include "sigi.fullname" .))).data "AUTH_LDAP_BIND_PASSWORD" }} +{{ else }} # install operation + AUTH_LDAP_BIND_PASSWORD: {{ .Values.sigi.auth.ldap.bindPwd | b64enc }} +{{ end }} diff --git a/charts/sigi/v0.2.4/templates/sigi-saberes-token.yaml b/charts/sigi/v0.2.4/templates/sigi-saberes-token.yaml new file mode 100644 index 0000000..39c4ba7 --- /dev/null +++ b/charts/sigi/v0.2.4/templates/sigi-saberes-token.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "sigi.fullname" . }}-saberes-tkn + labels: + {{- include "sigi.labels" . | nindent 4 }} +type: Opaque +data: +{{- if .Release.IsUpgrade }} + MOODLE_API_TOKEN: {{ index (lookup "v1" "Secret" .Release.Namespace (printf "%s-saberes-tkn" (include "sigi.fullname" .))).data "MOODLE_API_TOKEN" }} +{{ else }} # install operation + MOODLE_API_TOKEN: {{ .Values.sigi.saberes.moodleToken | b64enc }} +{{ end }} diff --git a/charts/sigi/v0.2.4/templates/velero-schedule-monthly.yaml b/charts/sigi/v0.2.4/templates/velero-schedule-monthly.yaml new file mode 100755 index 0000000..7d6e3f0 --- /dev/null +++ b/charts/sigi/v0.2.4/templates/velero-schedule-monthly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "sigi.fullname" . }}-monthly + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on first day of every month + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} 1 * * + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next year (365 days) + ttl: 8760h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dump -U postgres -d sigi > /bitnami/postgresql/sigi.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} diff --git a/charts/sigi/v0.2.4/templates/velero-schedule-weekdays.yaml b/charts/sigi/v0.2.4/templates/velero-schedule-weekdays.yaml new file mode 100755 index 0000000..f0959e7 --- /dev/null +++ b/charts/sigi/v0.2.4/templates/velero-schedule-weekdays.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "sigi.fullname" . }}-weekdays + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on weekdays + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 1-5 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next week (7 days) + ttl: 168h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dump -U postgres -d sigi > /bitnami/postgresql/sigi.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} diff --git a/charts/sigi/v0.2.4/templates/velero-schedule-weekly.yaml b/charts/sigi/v0.2.4/templates/velero-schedule-weekly.yaml new file mode 100755 index 0000000..565eb30 --- /dev/null +++ b/charts/sigi/v0.2.4/templates/velero-schedule-weekly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "sigi.fullname" . }}-weekly + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on sunday + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 0 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every sunday backup is good for 30 days (aprox. 1 month) + ttl: 744h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dump -U postgres -d sigi > /bitnami/postgresql/sigi.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} diff --git a/charts/sigi/v0.2.4/values.yaml b/charts/sigi/v0.2.4/values.yaml new file mode 100755 index 0000000..a8f4e81 --- /dev/null +++ b/charts/sigi/v0.2.4/values.yaml @@ -0,0 +1,154 @@ +# Default values for sigi. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: +# registry: porto.interlegis.leg.br + repository: porto.interlegis.leg.br/ilb/sigi + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "" + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +podAnnotations: {} + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 80 + +persistence: + enabled: true + #storageClass: "" + accessMode: ReadWriteOnce + size: 12Gi + +sigi: + debug: 'False' + hostname: 'sigidsv.interlegis.leg.br' + timeZone: 'America/Sao_Paulo' + language: 'pt_BR.UTF-8' + emailPort: 25 + emailHost: 'smtp.interlegis.leg.br' + emailAdmins: "(('SIGI Administrator', 'sigi@interlegis.leg.br'),)" + defaultFromEmail: 'sigi@interlegis.leg.br' + auth: + ldap: + serverURI: 'ldap://ad.senado.gov.br' + bindDN: 'CN=Sistema de Informações Gerenciais do Interlegis Service Account,OU=_UsuariosServicos,OU=2-AdministracaoSistemas,DC=senado,DC=gov,DC=br' + bindPwd: 'RgtJdtvas7s4BSpjnVnR' + user: 'U=UsuariosPessoas,DC=senado,DC=gov,DC=br' + userSearchString: '(&(sAMAccountName=%(user)s)(department=*ILB*)(!(title=*Desligad*))(!(title=*inativ*)))' + userAttrMap: '{"first_name": "givenName", "last_name": "sn", "email": "userPrincipalName", }' + group: '' + groupSearchString: '' + groupTypeString: '' + findGroupPerms: False + mirrorGroups: False + cacheGroups: False + groupCacheTimeout: 0 + profileAttrMap: '{"nome_completo": "cn"}' + profileModule: 'servidores.Servidor' + saberes: + moodleUrl: 'https://saberes.senado.leg.br' + moodleToken: 'altereme' + +ingress: + enabled: true + class: nginx + # nginx - for default nginx ingress controller + # alb - for AWS ALB Load Balancer controller + tls: + enabled: true + provider: letsencrypt + # extra annotations only + annotations: {} + +velero: + namespace: velero + backup: + enabled: false + snapshotVolumes: false + defaultVolumesToRestic: true + # cert-manager objects are usually blocked during backup + excludedResources: + - certificates.cert-manager.io + - orders.acme.cert-manager.io + - certificaterequests.cert-manager.io + - challenges.acme.cert-manager.io + +postgresql: + internal: true + image: + # repository: porto.interlegis.leg.br/bitnami/postgresql + # registry: porto.interlegis.leg.br + registry: docker.io + repository: bitnami/postgresql + tag: 14.4.0-debian-11-r0 + pullPolicy: IfNotPresent + primary: + service: + type: ClusterIP + port: 5432 + persistence: + enabled: true + size: 1Gi + resources: + requests: + cpu: 250m + memory: 256Mi + auth: + postgresPassword: sigi + password: sigi + username: sigi + database: sigi + env: + - name: LANG + value: pt_BR.UTF-8 + - name: LANGUAGE + value: pt_BR.UTF-8 + +resources: + limits: + cpu: 1000m + memory: 1Gi + requests: + cpu: 150m + memory: 500Mi + +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +nodeSelector: {} + +tolerations: [] + +affinity: {}