From 52ed290628078b51d3ce4950b2eb13e5b7cd71eb Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Mon, 14 Mar 2022 11:30:18 -0300 Subject: [PATCH] Added edemocracia legacy v0.1.12 --- charts/edemocracia/v0.1.12/.helmignore | 23 +++ charts/edemocracia/v0.1.12/Chart.lock | 9 + charts/edemocracia/v0.1.12/Chart.yaml | 33 +++ charts/edemocracia/v0.1.12/app-readme.md | 3 + .../v0.1.12/charts/postgresql-8.6.13.tgz | Bin 0 -> 31452 bytes .../v0.1.12/charts/redis-10.6.3.tgz | Bin 0 -> 31352 bytes charts/edemocracia/v0.1.12/questions.yaml | 182 +++++++++++++++++ .../edemocracia/v0.1.12/templates/NOTES.txt | 19 ++ .../v0.1.12/templates/_helpers.tpl | 79 +++++++ .../v0.1.12/templates/audiencias-pvc.yaml | 19 ++ .../templates/audienciasweb-deployment.yaml | 147 +++++++++++++ .../templates/audienciasweb-service.yaml | 19 ++ .../audienciasworker-deployment.yaml | 147 +++++++++++++ .../templates/discourse-deployment.yaml | 144 +++++++++++++ .../v0.1.12/templates/discourse-pvc.yaml | 19 ++ .../v0.1.12/templates/discourse-service.yaml | 19 ++ .../templates/edemocracia-deployment.yaml | 165 +++++++++++++++ .../v0.1.12/templates/edemocracia-pvc.yaml | 17 ++ .../templates/edemocracia-service.yaml | 17 ++ .../v0.1.12/templates/ingress.yaml | 32 +++ .../v0.1.12/templates/nginx-deployment.yaml | 120 +++++++++++ .../v0.1.12/templates/nginx-service.yaml | 17 ++ .../templates/wikilegis-deployment.yaml | 144 +++++++++++++ .../v0.1.12/templates/wikilegis-pvc.yaml | 19 ++ .../v0.1.12/templates/wikilegis-service.yaml | 19 ++ charts/edemocracia/v0.1.12/values.yaml | 193 ++++++++++++++++++ 26 files changed, 1605 insertions(+) create mode 100755 charts/edemocracia/v0.1.12/.helmignore create mode 100755 charts/edemocracia/v0.1.12/Chart.lock create mode 100755 charts/edemocracia/v0.1.12/Chart.yaml create mode 100755 charts/edemocracia/v0.1.12/app-readme.md create mode 100755 charts/edemocracia/v0.1.12/charts/postgresql-8.6.13.tgz create mode 100755 charts/edemocracia/v0.1.12/charts/redis-10.6.3.tgz create mode 100755 charts/edemocracia/v0.1.12/questions.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/NOTES.txt create mode 100755 charts/edemocracia/v0.1.12/templates/_helpers.tpl create mode 100755 charts/edemocracia/v0.1.12/templates/audiencias-pvc.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/audienciasweb-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/audienciasweb-service.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/audienciasworker-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/discourse-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/discourse-pvc.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/discourse-service.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/edemocracia-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/edemocracia-pvc.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/edemocracia-service.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/ingress.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/nginx-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/nginx-service.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/wikilegis-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/wikilegis-pvc.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/wikilegis-service.yaml create mode 100755 charts/edemocracia/v0.1.12/values.yaml diff --git a/charts/edemocracia/v0.1.12/.helmignore b/charts/edemocracia/v0.1.12/.helmignore new file mode 100755 index 0000000..0e8a0eb --- /dev/null +++ b/charts/edemocracia/v0.1.12/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/edemocracia/v0.1.12/Chart.lock b/charts/edemocracia/v0.1.12/Chart.lock new file mode 100755 index 0000000..e2e7d86 --- /dev/null +++ b/charts/edemocracia/v0.1.12/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 8.6.13 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 10.6.3 +digest: sha256:988f8160c4bd6ea76a95e38d6ee19b07676affd51e6b05bc0e2ce29f488e8c9a +generated: "2020-04-07T14:22:09.711759-03:00" diff --git a/charts/edemocracia/v0.1.12/Chart.yaml b/charts/edemocracia/v0.1.12/Chart.yaml new file mode 100755 index 0000000..eb8a73c --- /dev/null +++ b/charts/edemocracia/v0.1.12/Chart.yaml @@ -0,0 +1,33 @@ +apiVersion: v2 +name: edemocracia +description: Portal que visa ampliar a participação social no processo legislativo e aproximar cidadãos e seus representantes por meio da interação digital. + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +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. +version: 0.4.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. +appVersion: 1.3.3 + +icon: https://git.interlegis.leg.br/SEIT/rancher-charts/raw/master/images/edemocracia.png + + +# Dependencies +dependencies: +- name: postgresql + version: 8.6.13 + repository: https://charts.bitnami.com/bitnami +- name: redis + version: 10.6.3 + repository: https://charts.bitnami.com/bitnami diff --git a/charts/edemocracia/v0.1.12/app-readme.md b/charts/edemocracia/v0.1.12/app-readme.md new file mode 100755 index 0000000..ccc1cbc --- /dev/null +++ b/charts/edemocracia/v0.1.12/app-readme.md @@ -0,0 +1,3 @@ +# Sistema de participação popular para Casas Legislativas + +Utilize o formulário abaixo para configurar seu E-democracia. diff --git a/charts/edemocracia/v0.1.12/charts/postgresql-8.6.13.tgz b/charts/edemocracia/v0.1.12/charts/postgresql-8.6.13.tgz new file mode 100755 index 0000000000000000000000000000000000000000..08f5aa93d2fb0ee6eb212a004e3047d3fcfeeea8 GIT binary patch literal 31452 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%0A=7aqTq(hG>kDr0}>J;saahS?&x_u$&utw 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 H0Pq3;-58IK literal 0 HcmV?d00001 diff --git a/charts/edemocracia/v0.1.12/charts/redis-10.6.3.tgz b/charts/edemocracia/v0.1.12/charts/redis-10.6.3.tgz new file mode 100755 index 0000000000000000000000000000000000000000..9b00dec0d6ddff9fbce5cf2f3a928a87e3c8a077 GIT binary patch literal 31352 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 X&AAtzfuTPRnFh=D8Y)6OLqq&OyU6ht literal 0 HcmV?d00001 diff --git a/charts/edemocracia/v0.1.12/questions.yaml b/charts/edemocracia/v0.1.12/questions.yaml new file mode 100755 index 0000000..4454f72 --- /dev/null +++ b/charts/edemocracia/v0.1.12/questions.yaml @@ -0,0 +1,182 @@ +labels: + io.cattle.role: project +categories: +- Participação Popular +questions: +# Informações Básicas +- variable: edemocracia.siteName + default: "Câmara Municipal de Teste" + description: "Título que aparece no E-democracia" + label: "Nome do Site" + type: string + group: Básico + required: true +- variable: edemocracia.hostname + default: "edemocracia.teste.df.leg.br" + description: "Endereço para acesso ao E-democracia" + label: "URL do SAPL" + type: string + group: Básico + required: true +- variable: edemocracia.admin.email + default: "contato@admin.email" + description: "E-mail de contato do E-democracia" + label: Contato + type: string + group: Básico + required: true +- variable: edemocracia.admin.password + default: "altereme" + description: "Senha de administrador do E-democracia" + label: Senha admin + type: password + group: Básico + required: true + +# Recaptcha +- variable: edemocracia.recaptcha.privateKey + default: "altereme" + description: "Chave privada do Recaptcha" + label: Recaptcha PrivateKey + type: string + group: Recaptcha + required: true +- variable: edemocracia.recaptcha.siteKey + default: "altereme" + description: "Chave de site do Recaptcha" + label: Recaptcha SiteKey + type: string + group: Recaptcha + required: true + +# Login Social +- variable: edemocracia.socialAuth.facebook.key + default: "" + description: "Chave da autenticação via Facebook" + label: Facebook Key + type: string + group: Login Social + required: false +- variable: edemocracia.socialAuth.facebook.secret + default: "" + description: "Segredo da autenticação via Facebook" + label: Facebook Secret + type: string + group: Login Social + required: false +- variable: edemocracia.socialAuth.google.key + default: "" + description: "Chave da autenticação via Google" + label: Google Key + type: string + group: Login Social + required: false +- variable: edemocracia.socialAuth.google.secret + default: "" + description: "Segredo da autenticação via Google" + label: Google Secret + type: string + group: Login Social + required: false + +# Correio +- variable: smtp.host + default: "smtp.interlegis.leg.br" + description: "Servidor de envio de e-mail (SMTP)" + label: "Servidor SMTP" + type: string + group: Correio + required: false +- variable: smtp.port + default: 25 + description: "Porta de envio de E-mail (SMTP)" + type: int + label: "Porta SMTP" + required: false + group: Correio +- variable: smtp.tls + default: "False" + description: "Usar TLS ao conectar no servidor SMTP?" + label: "Usar TLS" + type: enum + group: Correio + options: + - "True" + - "False" + required: false +- variable: smtp.username + default: "" + description: "Nome de usuário para envio SMTP (vazio para nenhum)" + label: "SMTP Username" + required: false + group: Correio + type: string +- variable: smtp.password + default: "" + description: "Senha para envio SMTP (vazio para nenhuma)" + label: "SMTP Password" + required: false + group: Correio + type: string + +# PostgreSQL +- variable: postgresql.postgresqlPassword + default: "altereme" + description: "Senha do banco de dados Postgres" + label: "Senha do Postgres" + type: password + group: PostgreSQL + required: true + +# Avançado +- variable: edemocracia.timeZone + default: "America/Sao_Paulo" + description: "Fuso Horário do E-democracia" + type: enum + label: "Fuso" + options: + - "America/Sao_Paulo" + - "America/Fortaleza" + - "America/Belem" + - "America/Araguaina" + - "America/Bahia" + - "America/Boa_Vista" + - "America/Campo_Grande" + - "America/Cuiaba" + - "America/Maceio" + - "America/Manaus" + - "America/Porto_Velho" + - "America/Recife" + - "America/Rio_Branco" + - "America/Sao_Paulo" + required: true + group: Avançado + +- variable: edemocracia.apikey + default: "uma_chave_de_api_secreta_mesmo" + description: "Chave de API do E-democracia" + type: string + label: "Chave de API" + required: true + group: Avançado + +- variable: discourse.enabled + default: true + description: "Habilitar o discourse (Expressão)?" + label: "Usar o Discourse?" + type: boolean + group: Avançado + +- variable: wikilegis.enabled + default: true + description: "Habilitar o Wikilegis?" + label: "Usar o Wikilegis?" + type: boolean + group: Avançado + +- variable: audiencias.enabled + default: true + description: "Habilitar o Audiências Interativas?" + label: "Usar o Audiências?" + type: boolean + group: Avançado diff --git a/charts/edemocracia/v0.1.12/templates/NOTES.txt b/charts/edemocracia/v0.1.12/templates/NOTES.txt new file mode 100755 index 0000000..70391fd --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }} +{{- end }} +{{- else if contains "NodePort" .Values.nginx.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "edemocracia.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.nginx.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "edemocracia.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "edemocracia.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.nginx.service.port }} +{{- else if contains "ClusterIP" .Values.nginx.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "edemocracia.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80 +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/_helpers.tpl b/charts/edemocracia/v0.1.12/templates/_helpers.tpl new file mode 100755 index 0000000..f4122fe --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/_helpers.tpl @@ -0,0 +1,79 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "edemocracia.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "edemocracia.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 -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "edemocracia.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "edemocracia.labels" -}} +helm.sh/chart: {{ include "edemocracia.chart" . }} +{{ include "edemocracia.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Selector labels +*/}} +{{- define "edemocracia.selectorLabels" -}} +app.kubernetes.io/name: {{ include "edemocracia.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "edemocracia.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "edemocracia.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} + +{{/* +Create a default fully qualified app name for postgresql. +*/}} +{{- define "postgresql.fullname" -}} +{{- printf "%s-%s" .Release.Name "postgresql" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name for redis. +*/}} +{{- define "redis.fullname" -}} +{{- printf "%s-%s" .Release.Name "redis" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + + diff --git a/charts/edemocracia/v0.1.12/templates/audiencias-pvc.yaml b/charts/edemocracia/v0.1.12/templates/audiencias-pvc.yaml new file mode 100755 index 0000000..ae75435 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/audiencias-pvc.yaml @@ -0,0 +1,19 @@ +{{- if .Values.audiencias.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-audiencias +spec: + accessModes: + - {{ .Values.audiencias.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.audiencias.persistence.size }} +{{- if .Values.audiencias.persistence.storageClass }} +{{- if (eq "-" .Values.audiencias.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.audiencias.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/audienciasweb-deployment.yaml b/charts/edemocracia/v0.1.12/templates/audienciasweb-deployment.yaml new file mode 100755 index 0000000..7d0f440 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/audienciasweb-deployment.yaml @@ -0,0 +1,147 @@ +{{- if .Values.audiencias.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-audienciasweb + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb + app.kubernetes.io/component: audiencias + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb + app.kubernetes.io/component: audiencias + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ include "edemocracia.fullname" . }}-audienciasweb + image: "{{ .Values.audiencias.image.repository }}:{{ .Values.audiencias.image.tag }}" + imagePullPolicy: {{ .Values.audiencias.image.pullPolicy }} + args: + - ./start-web.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: ALLOWED_HOSTS + value: audienciasweb, localhost, 127.0.0.1, "{{ $edemoUrl }}" + - name: COMPRESS_OFFLINE + value: "True" + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: audiencias + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "False" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia[audiencias]" <{{ .Values.edemocracia.admin.email }}>' + - name: DJANGO_SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote}} + - name: ENABLE_REMOTE_USER + value: "True" + - name: FORCE_SCRIPT_NAME + value: /audiencias + - name: GOOGLE_ANALYTICS_ID + value: {{ .Values.edemocracia.googleAnalyticsId | quote }} + - name: LOGIN_REDIRECT_URL + value: / + - name: LOGIN_URL + value: / + - name: LOGOUT_REDIRECT_URL + value: / + - name: NOTIFICATION_EMAIL_LIST + value: "{{ .Values.edemocracia.admin.email }},{{ .Values.audiencias.notifEmailList }}" + - name: OLARK_ID + value: {{ .Values.edemocracia.olarkId | quote }} + - name: RECAPTCHA_PRIVATE_KEY + value: {{ .Values.edemocracia.recaptcha.privateKey | quote }} + - name: RECAPTCHA_SITE_KEY + value: {{ .Values.edemocracia.recaptcha.siteKey | quote }} + - name: REDIS_SERVER + value: {{ (include "redis.fullname" .) }}-master + - name: SESSION_COOKIE_NAME + value: audiencias_session + - name: SITE_DOMAIN + value: "{{ $edemoUrl }}" + - name: SITE_NAME + value: {{ .Values.edemocracia.siteName | quote }} + - name: STATIC_URL + value: /audiencias/static/ + - name: URL_PREFIX + value: audiencias + - name: WEBSERVICE_URL + value: {{ .Values.audiencias.webservice.url | quote }} + - name: WORDS_BLACK_LIST + value: {{ .Values.audiencias.wordsBlacklist | quote }} + resources: + {{- toYaml .Values.audiencias.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/audiencias/public/ + name: {{ include "edemocracia.fullname" . }}-audiencias + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-audiencias + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-audiencias + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/audienciasweb-service.yaml b/charts/edemocracia/v0.1.12/templates/audienciasweb-service.yaml new file mode 100755 index 0000000..4208451 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/audienciasweb-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.audiencias.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: audienciasweb + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb +spec: + type: {{ .Values.audiencias.service.type }} + ports: + - port: {{ .Values.audiencias.service.port }} + targetPort: 8000 + protocol: TCP + name: "8000" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/audienciasworker-deployment.yaml b/charts/edemocracia/v0.1.12/templates/audienciasworker-deployment.yaml new file mode 100755 index 0000000..eebeeb8 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/audienciasworker-deployment.yaml @@ -0,0 +1,147 @@ +{{- if .Values.audiencias.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-audienciasworker + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasworker +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasworker + app.kubernetes.io/component: audiencias + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasworker + app.kubernetes.io/component: audiencias + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ include "edemocracia.fullname" . }}-audienciasworker + image: "{{ .Values.audiencias.image.repository }}:{{ .Values.audiencias.image.tag }}" + imagePullPolicy: {{ .Values.audiencias.image.pullPolicy }} + args: + - ./start-worker.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: ALLOWED_HOSTS + value: audienciasweb, audienciasworker, localhost, 127.0.0.1, "{{ $edemoUrl }}" + - name: COMPRESS_OFFLINE + value: "True" + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: audiencias + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "False" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia[audiencias]" <{{ .Values.edemocracia.admin.email }}>' + - name: DJANGO_SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote }} + - name: ENABLE_REMOTE_USER + value: "True" + - name: FORCE_SCRIPT_NAME + value: /audiencias + - name: GOOGLE_ANALYTICS_ID + value: {{ .Values.edemocracia.googleAnalyticsId }} + - name: LOGIN_REDIRECT_URL + value: / + - name: LOGIN_URL + value: / + - name: LOGOUT_REDIRECT_URL + value: / + - name: NOTIFICATION_EMAIL_LIST + value: "{{ .Values.edemocracia.admin.email }},{{ .Values.audiencias.notifEmailList }}" + - name: OLARK_ID + value: {{ .Values.edemocracia.olarkId | quote }} + - name: RECAPTCHA_PRIVATE_KEY + value: {{ .Values.edemocracia.recaptcha.privateKey | quote }} + - name: RECAPTCHA_SITE_KEY + value: {{ .Values.edemocracia.recaptcha.siteKey | quote }} + - name: REDIS_SERVER + value: {{ (include "redis.fullname" .) }}-master + - name: SESSION_COOKIE_NAME + value: audiencias_session + - name: SITE_DOMAIN + value: "{{ $edemoUrl }}" + - name: SITE_NAME + value: {{ .Values.edemocracia.siteName | quote }} + - name: STATIC_URL + value: /audiencias/static/ + - name: URL_PREFIX + value: audiencias + - name: WEBSERVICE_URL + value: {{ .Values.audiencias.webservice.url | quote }} + - name: WORDS_BLACK_LIST + value: {{ .Values.audiencias.wordsBlacklist | quote }} + resources: + {{- toYaml .Values.audiencias.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/audiencias/public/ + name: {{ include "edemocracia.fullname" . }}-audiencias + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-audiencias + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-audiencias + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/discourse-deployment.yaml b/charts/edemocracia/v0.1.12/templates/discourse-deployment.yaml new file mode 100755 index 0000000..f56af38 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/discourse-deployment.yaml @@ -0,0 +1,144 @@ +{{- if .Values.discourse.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-discourse + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + app.kubernetes.io/component: discourse + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + app.kubernetes.io/component: discourse + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + initContainers: + - image: "{{ .Values.discourse.image.repository }}:{{ .Values.discourse.image.tag }}" + name: {{ include "edemocracia.fullname" . }}-discourse-cpimgs + command: + - "cp" + - "-au" + - "/var/www/discourse/public/images/." + - "/publicimgs/" + volumeMounts: + - mountPath: /publicimgs/ + subPath: images + name: {{ include "edemocracia.fullname" . }}-discourse + containers: + - args: + - ./start-web.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: DISCOURSE_CONTACT_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: DISCOURSE_CONTACT_URL + value: {{ $edemoUrl }} + - name: DISCOURSE_DB_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DISCOURSE_DB_NAME + value: discourse + - name: DISCOURSE_DB_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DISCOURSE_DB_PORT + value: "5432" + - name: DISCOURSE_DB_USERNAME + value: {{ .Values.postgresql.postgresqlUsername | quote}} + - name: DISCOURSE_DEVELOPER_EMAILS + - name: DISCOURSE_FORCE_HOSTNAME + value: {{ $edemoUrl }}\/expressao + - name: DISCOURSE_HOSTNAME + value: {{ $edemoUrl }}\/expressao + - name: DISCOURSE_NOTIFICATION_EMAIL + value: {{ .Values.edemocracia.admin.email }} + - name: DISCOURSE_REDIS_HOST + value: {{ (include "redis.fullname" .) }}-master + - name: DISCOURSE_REDIS_PORT + value: "6379" + - name: DISCOURSE_RELATIVE_URL_ROOT + value: /expressao + - name: DISCOURSE_SMTP_ADDRESS + value: {{ .Values.smtp.host | quote }} + - name: DISCOURSE_SMTP_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: DISCOURSE_SMTP_PORT + value: {{ .Values.smtp.port | quote }} + - name: DISCOURSE_SMTP_USER_NAME + value: {{ .Values.smtp.username | quote }} + - name: DISCOURSE_SSO_SECRET + value: {{ .Values.discourse.sso.secret | quote }} + - name: DISCOURSE_SSO_URL + value: "https://{{ $edemoUrl }}" + - name: RAILS_ENV + value: production + image: {{.Values.discourse.image.repository}}:{{ .Values.discourse.image.tag }} + imagePullPolicy: {{ .Values.discourse.image.pullPolicy }} + name: {{ include "edemocracia.fullname" . }}-discourse + ports: + - containerPort: 8080 + resources: + {{- toYaml .Values.discourse.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/www/discourse/public/assets/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: assets + - mountPath: /var/www/discourse/public/javascripts/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: javascripts + - mountPath: /var/www/discourse/public/images/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: images + - mountPath: /var/www/discourse/tmp/stylesheet-cache/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: stylesheet-cache + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-discourse + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-discourse + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/discourse-pvc.yaml b/charts/edemocracia/v0.1.12/templates/discourse-pvc.yaml new file mode 100755 index 0000000..d9e7804 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/discourse-pvc.yaml @@ -0,0 +1,19 @@ +{{- if .Values.discourse.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-discourse +spec: + accessModes: + - {{ .Values.discourse.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.discourse.persistence.size }} +{{- if .Values.discourse.persistence.storageClass }} +{{- if (eq "-" .Values.discourse.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.discourse.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/discourse-service.yaml b/charts/edemocracia/v0.1.12/templates/discourse-service.yaml new file mode 100755 index 0000000..c0c96f0 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/discourse-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.discourse.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: discourse + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse +spec: + type: {{ .Values.discourse.service.type }} + ports: + - port: {{ .Values.discourse.service.port }} + targetPort: 8080 + protocol: TCP + name: "8080" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/edemocracia-deployment.yaml b/charts/edemocracia/v0.1.12/templates/edemocracia-deployment.yaml new file mode 100755 index 0000000..f07dceb --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/edemocracia-deployment.yaml @@ -0,0 +1,165 @@ +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-edemocracia + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + app.kubernetes.io/component: edemocracia + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + app.kubernetes.io/component: edemocracia + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + initContainers: + - image: "{{ .Values.edemocracia.image.repository }}:{{ .Values.edemocracia.image.tag }}" + name: {{ include "edemocracia.fullname" . }}-edemocracia-cpmedia + command: + - "cp" + - "-au" + - "/var/labhacker/edemocracia/src/public/media/" + - "/srcpublic/" + volumeMounts: + - mountPath: /srcpublic + name: {{ include "edemocracia.fullname" . }}-edemocracia + containers: + - name: {{ include "edemocracia.fullname" . }}-edemocracia + image: "{{ .Values.edemocracia.image.repository }}:{{ .Values.edemocracia.image.tag }}" + imagePullPolicy: {{ .Values.edemocracia.image.pullPolicy }} + args: + - ./runserver-production + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: ALLOWED_HOSTS + value: "{{ $edemoUrl }}" + - name: AUDIENCIAS_API_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: AUDIENCIAS_ENABLED + {{- if .Values.audiencias.enabled }} + value: "True" + {{- else }} + value: "False" + {{- end }} + - name: AUDIENCIAS_UPSTREAM + value: http://audienciasweb:8000/audiencias + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: edemocracia + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "{{ .Values.edemocracia.debug }}" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia" <{{ .Values.edemocracia.admin.email }}>' + - name: DISCOURSE_ENABLED + {{- if .Values.discourse.enabled }} + value: "True" + {{- else }} + value: "False" + {{- end }} + - name: DISCOURSE_SSO_SECRET + value: {{ .Values.discourse.sso.secret | quote }} + # Workaround for a bug in runserver-production script, which does not check for DISCOURSE_ENABLED variable + - name: DISCOURSE_UPSTREAM + {{- if .Values.discourse.enabled }} + value: http://discourse:8080/expressao + {{- else }} + value: "--version" + {{- end }} + - name: EMAIL_BACKEND + value: django.core.mail.backends.smtp.EmailBackend + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote }} + - name: GOOGLE_ANALYTICS_ID + value: {{ .Values.edemocracia.googleAnalyticsId | quote }} + - name: OLARK_ID + value: {{ .Values.edemocracia.olarkId | quote }} + - name: RECAPTCHA_PRIVATE_KEY + value: {{ .Values.edemocracia.recaptcha.privateKey | quote }} + - name: RECAPTCHA_SITE_KEY + value: {{ .Values.edemocracia.recaptcha.siteKey | quote }} + - name: SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: SITE_NAME + value: {{ .Values.edemocracia.siteName | quote }} + - name: SITE_URL + value: "https://{{ $edemoUrl }}" + - name: SOCIAL_AUTH_FACEBOOK_KEY + value: {{ .Values.edemocracia.socialAuth.facebook.key | quote }} + - name: SOCIAL_AUTH_FACEBOOK_SECRET + value: {{ .Values.edemocracia.socialAuth.facebook.secret | quote }} + - name: SOCIAL_AUTH_GOOGLE_OAUTH2_KEY + value: {{ .Values.edemocracia.socialAuth.google.key | quote }} + - name: SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET + value: {{ .Values.edemocracia.socialAuth.google.secret | quote }} + - name: SOCIAL_AUTH_REDIRECT_IS_HTTPS + value: "True" + - name: WIKILEGIS_API_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: WIKILEGIS_API_URL + value: /api/v1/ + - name: WIKILEGIS_ENABLED + {{- if .Values.wikilegis.enabled }} + value: "True" + {{- else }} + value: "False" + {{- end }} + - name: WIKILEGIS_UPSTREAM + value: http://wikilegis:8000 + resources: + {{- toYaml .Values.edemocracia.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/edemocracia/src/public/ + name: {{ include "edemocracia.fullname" . }}-edemocracia + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-edemocracia + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-edemocracia + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/edemocracia-pvc.yaml b/charts/edemocracia/v0.1.12/templates/edemocracia-pvc.yaml new file mode 100755 index 0000000..0247fce --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/edemocracia-pvc.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-edemocracia +spec: + accessModes: + - {{ .Values.edemocracia.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.edemocracia.persistence.size }} +{{- if .Values.edemocracia.persistence.storageClass }} +{{- if (eq "-" .Values.edemocracia.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.edemocracia.persistence.storageClass }}" +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/edemocracia-service.yaml b/charts/edemocracia/v0.1.12/templates/edemocracia-service.yaml new file mode 100755 index 0000000..2e6350f --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/edemocracia-service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: edemocracia + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia +spec: + type: {{ .Values.edemocracia.service.type }} + ports: + - port: {{ .Values.edemocracia.service.port }} + targetPort: 8000 + protocol: TCP + name: "8000" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia diff --git a/charts/edemocracia/v0.1.12/templates/ingress.yaml b/charts/edemocracia/v0.1.12/templates/ingress.yaml new file mode 100755 index 0000000..94b3425 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/ingress.yaml @@ -0,0 +1,32 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "edemocracia.fullname" . -}} +{{- $hostName := .Values.edemocracia.hostname -}} +{{- 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 "edemocracia.labels" . | nindent 4 }} + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + {{- with .Values.ingress.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + tls: + - hosts: + - "{{ $hostName }}" + secretName: {{ $hostName | replace "." "-" }}-tls + rules: + - host: "{{ $hostName }}" + http: + paths: + - path: / + backend: + serviceName: nginx + servicePort: http +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/nginx-deployment.yaml b/charts/edemocracia/v0.1.12/templates/nginx-deployment.yaml new file mode 100755 index 0000000..b0ce573 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/nginx-deployment.yaml @@ -0,0 +1,120 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-nginx + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ .Chart.Name }}-nginx + image: "{{ .Values.nginx.image.repository }}:{{ .Values.nginx.image.tag }}" + imagePullPolicy: {{ .Values.nginx.image.pullPolicy }} + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: http + timeoutSeconds: 1 + readinessProbe: + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: http + timeoutSeconds: 1 + resources: + {{- toYaml .Values.nginx.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/edemocracia/src/public/ + name: {{ include "edemocracia.fullname" . }}-edemocracia + {{- if .Values.wikilegis.enabled }} + - mountPath: /var/labhacker/wikilegis/wikilegis/public/ + name: {{ include "edemocracia.fullname" . }}-wikilegis + {{- end }} + {{- if .Values.audiencias.enabled }} + - mountPath: /var/labhacker/audiencias/public/ + name: {{ include "edemocracia.fullname" . }}-audiencias + {{- end }} + {{- if .Values.discourse.enabled }} + - mountPath: /var/www/discourse/public/assets/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: assets + - mountPath: /var/www/discourse/public/javascripts/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: javascripts + - mountPath: /var/www/discourse/public/images/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: images + - mountPath: /var/www/discourse/tmp/stylesheet-cache/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: stylesheet-cache + {{- end }} + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-edemocracia + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-edemocracia + {{- if .Values.wikilegis.enabled }} + - name: {{ include "edemocracia.fullname" . }}-wikilegis + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-wikilegis + {{- end }} + {{- if .Values.audiencias.enabled }} + - name: {{ include "edemocracia.fullname" . }}-audiencias + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-audiencias + {{- end }} + {{- if .Values.discourse.enabled }} + - name: {{ include "edemocracia.fullname" . }}-discourse + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-discourse + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/nginx-service.yaml b/charts/edemocracia/v0.1.12/templates/nginx-service.yaml new file mode 100755 index 0000000..51f175c --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/nginx-service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx +spec: + type: {{ .Values.nginx.service.type }} + ports: + - port: {{ .Values.nginx.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx diff --git a/charts/edemocracia/v0.1.12/templates/wikilegis-deployment.yaml b/charts/edemocracia/v0.1.12/templates/wikilegis-deployment.yaml new file mode 100755 index 0000000..680b6b3 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/wikilegis-deployment.yaml @@ -0,0 +1,144 @@ +{{- if .Values.wikilegis.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-wikilegis + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis + app.kubernetes.io/component: wikilegis + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis + app.kubernetes.io/component: wikilegis + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + initContainers: + - image: "{{ .Values.wikilegis.image.repository }}:{{ .Values.wikilegis.image.tag }}" + name: {{ include "edemocracia.fullname" . }}-wikilegis-cpmedia + command: + - "cp" + - "-au" + - "/var/labhacker/wikilegis/wikilegis/public/media/" + - "/wlpublic/" + volumeMounts: + - mountPath: /wlpublic + name: {{ include "edemocracia.fullname" . }}-wikilegis + containers: + - name: {{ include "edemocracia.fullname" . }}-wikilegis + image: "{{ .Values.wikilegis.image.repository }}:{{ .Values.wikilegis.image.tag }}" + imagePullPolicy: {{ .Values.wikilegis.image.pullPolicy }} + args: + - ./start.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ALLOWED_HOSTS + value: "{{ $edemoUrl }},wikilegisweb,wikilegis,localhost,127.0.0.1" + - name: API_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: AUTH_USER_MODEL + value: accounts.User + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: wikilegis + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "True" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia[Wikilegis]" <{{ .Values.edemocracia.admin.email }}>' + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote }} + - name: ENABLE_REMOTE_USER + value: "True" + - name: FORCE_SCRIPT_NAME + value: /wikilegis + - name: LANGUAGE_CODE + value: pt-br + - name: LOGIN_REDIRECT_URL + value: / + - name: LOGIN_URL + value: / + - name: MEDIA_URL + value: /wikilegis/media/ + - name: SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: SESSION_COOKIE_NAME + value: wikilegis_session + - name: SITE_DOMAIN + value: {{ $edemoUrl }} + - name: SITE_NAME + value: {{ .Values.edemocracia.sitename | quote }} + - name: STATIC_URL + value: /wikilegis/static/ + - name: TIME_ZONE + value: {{ .Values.edemocracia.timeZone | quote }} + resources: + {{- toYaml .Values.wikilegis.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/wikilegis/wikilegis/public/ + name: {{ include "edemocracia.fullname" . }}-wikilegis + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-wikilegis + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-wikilegis + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/wikilegis-pvc.yaml b/charts/edemocracia/v0.1.12/templates/wikilegis-pvc.yaml new file mode 100755 index 0000000..00b8660 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/wikilegis-pvc.yaml @@ -0,0 +1,19 @@ +{{- if .Values.wikilegis.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-wikilegis +spec: + accessModes: + - {{ .Values.wikilegis.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.wikilegis.persistence.size }} +{{- if .Values.wikilegis.persistence.storageClass }} +{{- if (eq "-" .Values.wikilegis.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.wikilegis.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/wikilegis-service.yaml b/charts/edemocracia/v0.1.12/templates/wikilegis-service.yaml new file mode 100755 index 0000000..793fd2c --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/wikilegis-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.wikilegis.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: wikilegis + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis +spec: + type: {{ .Values.wikilegis.service.type }} + ports: + - port: {{ .Values.wikilegis.service.port }} + targetPort: 8000 + protocol: TCP + name: "8000" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis +{{- end }} diff --git a/charts/edemocracia/v0.1.12/values.yaml b/charts/edemocracia/v0.1.12/values.yaml new file mode 100755 index 0000000..7e8c1cb --- /dev/null +++ b/charts/edemocracia/v0.1.12/values.yaml @@ -0,0 +1,193 @@ +# Default values for edemocracia. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +nginx: + image: + repository: labhackercd/nginx-edemocracia + tag: 1.0.0 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 80 + resources: + limits: + cpu: 300m + memory: 150Mi + requests: + cpu: 50m + memory: 30Mi + +discourse: + enabled: true + image: + repository: labhackercd/discourse-docker + tag: 2.0.20180703 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 8080 + sso: + secret: "uma_chave_sso_secreta_mesmo" + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 500Mi + resources: + limits: + cpu: 800m + memory: 1200Mi + requests: + cpu: 100m + memory: 650Mi + +wikilegis: + enabled: true + image: + repository: labhackercd/wikilegis + tag: 2.2.0 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 8000 + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 2Gi + resources: + limits: + cpu: 800m + memory: 350Mi + requests: + cpu: 100m + memory: 200Mi + + +edemocracia: + admin: + email: seitadmins@interlegis.leg.br + password: p@ssw0rd + apikey: "uma_chave_de_api_secreta_mesmo" + debug: "False" + googleAnalyticsId: "" + olarkId: "" + recaptcha: + siteKey: "altereme" + privateKey: "altereme" + socialAuth: + facebook: + key: "" + secret: "" + google: + key: "" + secret: "" + siteName: "Camara Municipal" + hostname: "edemocracia.teste.df.leg.br" + timeZone: "America/Sao_Paulo" + image: + repository: labhackercd/edemocracia + tag: 1.3.2 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 8000 + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 4Gi + resources: + limits: + cpu: 500m + memory: 1350Mi + requests: + cpu: 100m + memory: 800Mi + +audiencias: + enabled: true + image: + repository: labhackercd/audiencias-publicas + tag: 3.2.0 + pullPolicy: IfNotPresent + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 300Mi + notifEmailList: "" + webservice: + url: "" + wordsBlacklist: "merda,cu,cuzao,cuzona,cusao,cusona,bunda,fodido,fodida,foda,foder,fodedor,fudido,fudida,fuder,chupa,chupada,chupador,chupadora,boquete,boqueteira,boquetera,boketeira,boketera,xupa,xupada,xupador,xupadora,pauduro,pauzudo,xoxota,chochota,buceta,boceta,busseta,bosseta,cacete,cassete,caceta,kacete,kassete,caralho,karalho,caraleo,pinto,pica,rola,roludo,gozado,gozada,goso,gosa,gosado,gosado,puta,puto,putinho,putinha,putona,putana,putaria,grelo,grelinho,filhodaputa,filhosdaputa,puta,fdps,siririca,punheta,trepar,trepada,trepadeira,caralho,caralhu,karalho,karalhu,tomarnocu,tomanocu,vadia,bosta,quenga,rabo,bolsa,cuzinho,piroca,pqp,puta que pariu,porra,carai,cú,viado,fdp,vtnc,corno,bicha,bixa,viado,viadinho,pederasta,filho da puta,bundao,bundão,filho de uma egua,filho de uma égua,achacador,achacadora,achacadores,achacar,babaca,bucetas,cagar,cagaram,cambada,caráleo,corja,cornão,covarde,covardes,cretino,cus,cús,cusão,cuzão,cuzinho,cuzona,danar,desgraça,drosoba,enrabar,escória,escroto,escrotas,escrotos,fodão,fodona,fudendo,fuder,idiota,imundo,imundos,ku,kú,lascar,merdas,patifaria,pilantra,pilantragem,pilantras,poha,porcaria,putas,putos,sacanagem,safadeza,safado,safados,salafrário,salafrários,vagabundagem,vagabundo,vagabundos,veadinho,veadinhos" + service: + type: ClusterIP + port: 8000 + resources: + limits: + cpu: 500m + memory: 300Mi + requests: + cpu: 50m + memory: 100Mi + + +smtp: + host: "127.0.0.1" + username: "" + password: "" + port: "25" + tls: "False" + + +# PostgreSQL definitions +postgresql: + image: + tag: 9.6.17 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 5432 + persistence: + enabled: true + size: 2Gi + postgresqlPassword: DbP@ssw0rd + postgresqlUsername: postgres + postgresqlDatabase: root + resources: + requests: + cpu: 50m + memory: 80Mi + +# Redis definitions +redis: + image: + tag: 5.0.8 + pullPolicy: IfNotPresent + cluster: + enabled: false + usePassword: false + persistence: + enabled: true + accessModes: + - ReadWriteOnce + size: 2Gi + resources: + requests: + cpu: 50m + memory: 150Mi + limits: + cpu: 800m + memory: 1Gi + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +ingress: + enabled: true + # extra annotations only + annotations: {} + +nodeSelector: {} + +tolerations: [] + +affinity: {}