Push SOGO to stable

This commit is contained in:
kjeld Schouten-Lebbing
2021-09-06 15:31:06 +02:00
parent f4824d8699
commit d6cecca0db
13 changed files with 5 additions and 5 deletions
-24
View File
@@ -1,24 +0,0 @@
# 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
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
View File
-30
View File
@@ -1,30 +0,0 @@
apiVersion: v2
appVersion: auto
dependencies:
- name: common
repository: https://truecharts.org/
version: 6.13.7
- condition: postgresql.enabled
name: postgresql
repository: https://truecharts.org/
version: 1.6.1
- condition: memcached.enabled
name: memcached
repository: https://charts.bitnami.com/bitnami
version: 5.14.2
deprecated: false
description: Groupware package
home: https://github.com/truecharts/apps/tree/master/charts/stable/sogo
icon: https://truecharts.org/_static/sogo-icon.png
keywords:
- groupware
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: truecharts.org
name: sogo
sources:
- https://www.sogo.nu/
type: application
version: 0.0.4
View File
-3
View File
@@ -1,3 +0,0 @@
categories:
- groupware
icon_url: https://truecharts.org/_static/sogo-icon.png
@@ -1,42 +0,0 @@
##
# This file contains Values.yaml content that gets added to the output of questions.yaml
# It's ONLY meant for content that the user is NOT expected to change.
# Example: Everything under "image" is not included in questions.yaml but is included here.
##
image:
repository: ghcr.io/truecharts/sogo
pullPolicy: IfNotPresent
tag: "v5.2.0"
initContainers:
- name: init-postgresdb
image: postgres:13.1
command:
- "sh"
- "-c"
- "until pg_isready -U sogo -h ${pghost} ; do sleep 2 ; done"
imagePullPolicy: IfNotPresent
env:
- name: pghost
valueFrom:
secretKeyRef:
name: dbcreds
key: plainhost
# Enabled postgres
postgresql:
enabled: true
postgresqlUsername: sogo
postgresqlDatabase: sogo
existingSecret: dbcreds
# -- memcached dependency settings
memcached:
enabled: true
##
# Most other defaults are set in questions.yaml
# For other options please refer to the wiki, default_values.yaml or the common library chart
##
File diff suppressed because it is too large Load Diff
View File
-154
View File
@@ -1,154 +0,0 @@
{{/* Define the configmap */}}
{{- define "sogo.config" -}}
---
apiVersion: v1
kind: Secret
metadata:
labels:
{{- include "common.labels" . | nindent 4 }}
name: dbcreds
{{- $dbprevious := lookup "v1" "Secret" .Release.Namespace "dbcreds" }}
{{- $dbPass := "" }}
data:
{{- if $dbprevious }}
{{- $dbPass = ( index $dbprevious.data "postgresql-password" ) | b64dec }}
postgresql-password: {{ ( index $dbprevious.data "postgresql-password" ) }}
postgresql-postgres-password: {{ ( index $dbprevious.data "postgresql-postgres-password" ) }}
{{- else }}
{{- $dbPass = randAlphaNum 50 }}
postgresql-password: {{ $dbPass | b64enc | quote }}
postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }}
{{- end }}
{{- $url := printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase }}
url: {{ $url | b64enc | quote }}
plainhost: {{ ( printf "%v-%v" .Release.Name "postgresql" ) | b64enc | quote }}
type: Opaque
---
apiVersion: v1
kind: ConfigMap
metadata:
name: sogo-config
data:
sogo.conf: |
{
/* ********************* Main SOGo configuration file **********************
* *
* Since the content of this file is a dictionary in OpenStep plist format, *
* the curly braces enclosing the body of the configuration are mandatory. *
* See the Installation Guide for details on the format. *
* *
* C and C++ style comments are supported. *
* *
* This example configuration contains only a subset of all available *
* configuration parameters. Please see the installation guide more details. *
* *
* ~sogo/GNUstep/Defaults/.GNUstepDefaults has precedence over this file, *
* make sure to move it away to avoid unwanted parameter overrides. *
* *
* **************************************************************************/
/* Database configuration (mysql:// or postgresql://) */
SOGoProfileURL = "{{ $url }}/sogo_user_profile";
OCSFolderInfoURL = "{{ $url }}/sogo_folder_info";
OCSSessionsFolderURL = "{{ $url }}/sogo_sessions_folder";
/* Mail */
SOGoDraftsFolderName = {{ .Values.sogo.mail.SOGoDraftsFolderName | default "Drafts" }};
SOGoSentFolderName = {{ .Values.sogo.mail.SOGoSentFolderName | default "Sent" }};
SOGoTrashFolderName = {{ .Values.sogo.mail.SOGoTrashFolderName | default "Trash" }};
SOGoIMAPServer = {{ .Values.sogo.mail.SOGoIMAPServer | default "localhost" }};
{{- if .Values.sogo.mail.SOGoSieveServer}}
SOGoSieveServer = {{ .Values.sogo.mail.SOGoSieveServer | default "sieve://127.0.0.1:4190" }};
{{- end }}
SOGoMailDomain = {{ .Values.sogo.mail.SOGoMailDomain | default "acme.com" }};
SOGoMailingMechanism = {{ .Values.sogo.mail.SOGoMailingMechanism | default "smtp" }};
{{- if eq .Values.sogo.mail.SOGoMailingMechanism "smtp" }}
SOGoSMTPServer = {{ .Values.sogo.mail.SOGoSMTPServer | default "smtp://domain:port/?tls=YES" }};
{{- end }}
SOGoForceExternalLoginWithEmail = {{ if .Values.sogo.mail.SOGoForceExternalLoginWithEmail }}"YES"{{ else }}"NO"{{ end }};
SOGoMailSpoolPath = {{ ( .Values.sogo.mail.SOGoMailSpoolPath | default "/var/spool/sogo") | quote }};
NGMimeBuildMimeTempDirectory = {{ ( .Values.sogo.mail.NGMimeBuildMimeTempDirectory | default "/mimetmp") | quote }};
/* Notifications */
SOGoAppointmentSendEMailNotifications = {{ if .Values.sogo.notifications.SOGoAppointmentSendEMailNotifications }}"YES"{{ else }}"NO"{{ end }};
SOGoACLsSendEMailNotifications = {{ if .Values.sogo.notifications.SOGoACLsSendEMailNotifications }}"YES"{{ else }}"NO"{{ end }};
SOGoFoldersSendEMailNotifications = {{ if .Values.sogo.notifications.SOGoFoldersSendEMailNotifications }}"YES"{{ else }}"NO"{{ end }};
/* Authentication */
SOGoPasswordChangeEnabled = {{ if .Values.sogo.auth.SOGoPasswordChangeEnabled }}"YES"{{ else }}"NO"{{ end }};
/* User Sources */
{{- if .Values.sogo.usersources }}
SOGoUserSources = (
{{- range $index, $value := .Values.sogo.usersources }}
{
type = {{ $value.type | default "LDAP" }};
{{- if eq $value.type "LDAP" }}
CNFieldName = {{ $value.CNFieldName | default "cn" }};
UIDFieldName = {{ $value.UIDFieldName | default "uid" }};
IDFieldName = {{ $value.IDFieldName | default "uid" }}; // first field of the DN for direct binds
bindFields = {{ $value.bindFields | default "(uid, mail)" }}; // array of fields to use for indirect binds
baseDN = {{ ( $value.baseDN | default "ou=users,dc=acme,dc=com" ) | quote }};
bindDN = {{ ( $value.bindDN | default "uid=sogo,ou=users,dc=acme,dc=com" ) | quote }};
bindPassword = {{ $value.bindPassword | default "qwerty" }};
canAuthenticate = {{ if $value.canAuthenticate }}"YES"{{ else }}"NO"{{ end }};
displayName = {{ ( $value.displayName | default "Shared Addresses" ) | quote }};
hostname = {{ $value.hostname | default "ldap://127.0.0.1:389" }};
id = {{ $value.id | default "public" }};
isAddressBook = {{ if $value.isAddressBook }}"YES"{{ else }}"NO"{{ end }};
{{- else if eq $value.type "SQL" }}
id = {{ $value.sql.id | default "directory" }};
viewURL = {{ ( $value.sql.viewURL | default "postgresql://sogo:sogo@127.0.0.1:5432/sogo/sogo_view" ) | quote }};
canAuthenticate = {{ if $value.sql.canAuthenticate }}"YES"{{ else }}"NO"{{ end }};
isAddressBook = {{ if $value.sql.isAddressBook }}"YES"{{ else }}"NO"{{ end }};
userPasswordAlgorithm = {{ $value.sql.userPasswordAlgorithm | default "md5" }};
{{- end }}
{{- range $value.custom }}
{{ .name }} = {{ .value }};
{{- end }}
{{- if $index }}
}
{{- else }}
},
{{- end }}
{{- end }}
);
{{- end }}
/* Web Interface */
SOGoPageTitle = {{ .Values.sogo.webui.SOGoPageTitle | default "SOGo" }};
SOGoVacationEnabled = {{ if .Values.sogo.webui.SOGoVacationEnabled }}"YES"{{ else }}"NO"{{ end }};
SOGoForwardEnabled = {{ if .Values.sogo.webui.SOGoForwardEnabled }}"YES"{{ else }}"NO"{{ end }};
SOGoSieveScriptsEnabled = {{ if .Values.sogo.webui.SOGoSieveScriptsEnabled }}"YES"{{ else }}"NO"{{ end }};
SOGoMailAuxiliaryUserAccountsEnabled = {{ if .Values.sogo.webui.SOGoMailAuxiliaryUserAccountsEnabled }}"YES"{{ else }}"NO"{{ end }};
SOGoTrustProxyAuthentication = {{ if .Values.sogo.webui.SOGoTrustProxyAuthentication }}"YES"{{ else }}"NO"{{ end }};
SOGoXSRFValidationEnabled = {{ if .Values.sogo.webui.SOGoXSRFValidationEnabled }}"YES"{{ else }}"NO"{{ end }};
/* General - SOGoTimeZone *MUST* be defined */
SOGoLanguage = {{ .Values.sogo.general.SOGoLanguage | default "English" }};
SOGoTimeZone = {{ .Values.env.TZ | default "America/Montreal" }};
SOGoSuperUsernames = ({{ .Values.sogo.general.SOGoSuperUsernames | default "" }}); // This is an array - keep the parens!
SxVMemLimit = {{ .Values.sogo.general.SxVMemLimit | default "384" }};
SOGoMemcachedHost = {{ ( printf "%v-%v" .Release.Name "memcached" ) | quote }};
/* Debug */
SOGoDebugRequests = {{ if .Values.sogo.debug.SOGoDebugRequests }}"YES"{{ else }}"NO"{{ end }};
SoDebugBaseURL = {{ if .Values.sogo.debug.SoDebugBaseURL }}"YES"{{ else }}"NO"{{ end }};
ImapDebugEnabled = {{ if .Values.sogo.debug.ImapDebugEnabled }}"YES"{{ else }}"NO"{{ end }};
LDAPDebugEnabled = {{ if .Values.sogo.debug.LDAPDebugEnabled }}"YES"{{ else }}"NO"{{ end }};
PGDebugEnabled = {{ if .Values.sogo.debug.PGDebugEnabled }}"YES"{{ else }}"NO"{{ end }};
MySQL4DebugEnabled = {{ if .Values.sogo.debug.MySQL4DebugEnabled }}"YES"{{ else }}"NO"{{ end }};
SOGoUIxDebugEnabled = {{ if .Values.sogo.debug.SOGoUIxDebugEnabled }}"YES"{{ else }}"NO"{{ end }};
WODontZipResponse = {{ if .Values.sogo.debug.WODontZipResponse }}"YES"{{ else }}"NO"{{ end }};
WOLogFile = {{ ( .Values.sogo.debug.WOLogFile | default "/var/log/sogo/sogo.log" ) | quote }};
}
/* Custom Arguments added by user */
{{- range .Values.sogo.custom }}
{{ .name }} = {{ .value }};
{{- end }}
{{- end -}}
@@ -1,26 +0,0 @@
{{/* Make sure all variables are set properly */}}
{{- include "common.values.setup" . }}
{{/* Render config and secrets for sogo */}}
{{- include "sogo.config" . }}
{{/* Append the general configMap volume to the volumes */}}
{{- define "sogo.configmapVolume" -}}
enabled: "true"
mountPath: "/etc/sogo/sogo.conf"
readOnly: true
subPath: sogo.conf
type: "custom"
volumeSpec:
configMap:
name: sogo-config
items:
- key: sogo.conf
path: sogo.conf
{{- end -}}
{{- $_ := set .Values.persistence "sogo-config" (include "sogo.configmapVolume" . | fromYaml) -}}
{{/* Render the templates */}}
{{ include "common.all" . }}
-142
View File
@@ -1,142 +0,0 @@
# Default values for Bitwarden.
image:
repository: ghcr.io/truecharts/sogo
pullPolicy: IfNotPresent
tag: "v5.2.0"
# -- services
service:
main:
ports:
main:
port: 80
# -- initcontainers
initContainers:
# -- wait for database before starting sogo
- name: init-postgresdb
image: postgres:13.1
command:
- "sh"
- "-c"
- "until pg_isready -U sogo -h ${pghost} ; do sleep 2 ; done"
imagePullPolicy: IfNotPresent
env:
- name: pghost
valueFrom:
secretKeyRef:
name: dbcreds
key: plainhost
# -- persistence settings
persistence:
data:
enabled: true
mountPath: "/data/conf/sogo/"
type: pvc
accessMode: ReadWriteOnce
size: "100Gi"
drafts:
enabled: true
mountPath: "/var/spool/sogo"
type: pvc
accessMode: ReadWriteOnce
size: "100Gi"
mimetmp:
enabled: true
mountPath: "/mimetmp"
type: emptyDir
# -- postgres dependency settings
postgresql:
enabled: true
postgresqlUsername: sogo
postgresqlDatabase: sogo
existingSecret: dbcreds
# -- memcached dependency settings
memcached:
enabled: true
# -- Sogo settings
sogo:
# -- Pre-configured Sogo mail settings
mail:
SOGoDraftsFolderName: "Drafts"
SOGoSentFolderName: "Sent"
SOGoTrashFolderName: "Trash"
SOGoIMAPServer: "localhost"
SOGoSieveServer: ""
SOGoMailDomain: "example.com"
SOGoMailingMechanism: "smtp"
SOGoSMTPServer: "smtp://domain:port"
SOGoForceExternalLoginWithEmail: false
SOGoMailSpoolPath: "/var/spool/sogo"
NGMimeBuildMimeTempDirectory: "/mimetmp"
# -- Pre-configured Sogo notifications settings
notifications:
SOGoAppointmentSendEMailNotifications: false
SOGoACLsSendEMailNotifications: false
SOGoFoldersSendEMailNotifications: false
# -- Pre-configured general Sogo settings
general:
SOGoLanguage: "English"
SOGoSuperUsernames: ""
SxVMemLimit: "384"
# -- Pre-configured Sogo authentication settings
auth:
SOGoPasswordChangeEnabled: true
# -- Sogo usersources
usersources: []
# - type: "ldap"
# CNFieldName: "cn"
# UIDFieldName: "uid"
# IDFieldName: "uid"
# bindFields: "(uid, mail)"
# baseDN: "ou=users,dc=acme,dc=com"
# bindDN: "uid=sogo,ou=users,dc=acme,dc=com"
# bindPassword: "qwerty"
# canAuthenticate: true
# displayName: "Shared Addresses"
# hostname: "ldap://127.0.0.1:389"
# id: "public"
# isAddressBook: true
# custom:
# - name: name-of-ldap-setting
# value: somevalue
#
# - type: "sql"
# id: "directory"
# viewURL: "postgresql://sogo:sogo@127.0.0.1:5432/sogo/sogo_view"
# canAuthenticate: true
# isAddressBook: true
# userPasswordAlgorithm: "md5"
# custom:
# - name: name-of-sql-setting
# value: somevalue
# -- Pre-configured Sogo debug settings
debug:
SOGoDebugRequests: false
SoDebugBaseURL: false
LDAPDebugEnabled: false
ImapDebugEnabled: false
PGDebugEnabled: false
MySQL4DebugEnabled: false
SOGoUIxDebugEnabled: false
WODontZipResponse: false
WOLogFile: "/var/log/sogo/sogo.log"
# -- Pre-configured Sogo webui settings
webui:
SOGoPageTitle: "SOGo"
SOGoVacationEnabled: true
SOGoForwardEnabled: true
SOGoSieveScriptsEnabled: true
SOGoMailAuxiliaryUserAccountsEnabled: true
SOGoTrustProxyAuthentication: false
SOGoXSRFValidationEnabled: true
# -- custom Sogo setting arguments
custom: []
# - name: SOGoPageTitle
# value: "somevalue"