From c73066068b905bfb35f1c98ba7ac4c45cea21ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Ole=C5=9B?= Date: Fri, 6 Aug 2021 01:04:51 +0200 Subject: [PATCH] Refactor manifests to use yaml merger --- .gitignore | 4 + .../aws/elasticsearch/install.yaml | 86 +-- .../aws/rds/postgresql/install.yaml | 73 +- .../bitnami/mongodb/install.yaml | 93 +-- .../concourse/concourse/install.yaml | 72 +- .../elastic/elasticsearch/install.yaml | 18 + .../gcp/cloudsql/postgresql/update.yaml | 77 +- .../mattermost-team-edition/install.yaml | 667 ++++++------------ .../postgresql/change-password.yaml | 57 +- .../implementation/rocketchat/install.yaml | 115 ++- 10 files changed, 473 insertions(+), 789 deletions(-) diff --git a/.gitignore b/.gitignore index fac2100f..88d13ab4 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,7 @@ atlassian-ide-plugin.xml # UUID file created by `setup-gcloud` GitHub Action when `export_default_credentials` is enabled # Read more at https://github.com/GoogleCloudPlatform/github-actions/tree/master/setup-gcloud /[a-f,0-9]*-[a-f,0-9]*-[a-f,0-9]*-[a-f,0-9]*-[a-f,0-9]* + +# vim +*.swp +*.swo diff --git a/manifests/implementation/aws/elasticsearch/install.yaml b/manifests/implementation/aws/elasticsearch/install.yaml index 7008cf72..7770e2bc 100644 --- a/manifests/implementation/aws/elasticsearch/install.yaml +++ b/manifests/implementation/aws/elasticsearch/install.yaml @@ -136,36 +136,29 @@ spec: raw: data: | - - - name: fill-default-input - capact-action: jinja2.template + - - name: prepare-parameters + template: prepare-parameters arguments: artifacts: - name: input-parameters from: "{{inputs.artifacts.input-parameters}}" - - name: template - raw: - data: | - replicas: <@ input.replicas | default(3) @> - - name: configuration - raw: - data: | - prefix: input + - name: additional-parameters + from: "{{inputs.artifacts.additional-parameters}}" + optional: true + - name: aws + from: "{{workflow.outputs.artifacts.aws-credentials}}" + - name: basicAuth + from: "{{steps.decode-es-creds.outputs.artifacts.render}}" - - name: create-module-args capact-action: jinja2.template arguments: artifacts: - - name: input-parameters - from: "{{inputs.artifacts.additional-parameters}}" - - name: configuration - raw: - data: | - prefix: additionalinput - name: template raw: data: | variables: |+ - region = "<@ additionalinput.region | default("eu-west-1") @>" + region = "<@ additionalinput.region | default('eu-west-1') @>" domain_name = "<@ additionalinput.domain_name | default('elastic-' + random_word(length=12)) @>" advanced_security_options_enabled = true @@ -173,7 +166,7 @@ spec: advanced_security_options_master_user_username = "<@ basicAuth.username @>" advanced_security_options_master_user_password = "<@ basicAuth.password @>" - cluster_config_instance_count = "<@ input.replicas @>" + cluster_config_instance_count = "<@ input.replicas | default(3) @>" <% if additionalinput.elasticsearch_version -%> elasticsearch_version = "<@ additionalinput.elasticsearch_version @>" @@ -388,45 +381,11 @@ spec: vpc_id: "{{ .vpc_options_vpc_id }}" availability_zones: "{{ .vpc_options_availability_zones }}" elasticsearch_version: "{{ .elasticsearch_version }}" - - - - name: fill-input-params - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.create-module-args.outputs.artifacts.render}}" - name: input-parameters - from: "{{steps.fill-default-input.outputs.artifacts.render}}" + from: "{{steps.prepare-parameters.outputs.artifacts.merged}}" - name: configuration raw: data: | - prefix: input - - - - name: fill-aws-params - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-input-params.outputs.artifacts.render}}" - - name: input-parameters - from: "{{workflow.outputs.artifacts.aws-credentials}}" - - name: configuration - raw: - data: | - prefix: aws - - - - name: fill-secret-in-helm - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-aws-params.outputs.artifacts.render}}" - - name: input-parameters - from: "{{steps.decode-es-creds.outputs.artifacts.render}}" - - name: configuration - raw: - data: | - prefix: basicAuth - - name: terraform-apply capact-action: terraform.apply @@ -438,7 +397,7 @@ spec: arguments: artifacts: - name: input-parameters - from: "{{steps.fill-secret-in-helm.outputs.artifacts.render}}" + from: "{{steps.create-module-args.outputs.artifacts.render}}" - name: runner-context from: "{{workflow.outputs.artifacts.runner-context}}" @@ -490,3 +449,22 @@ spec: image: bitnami/kubectl:1.18 command: [sh, -c] args: ["kubectl create -f {{inputs.artifacts.manifest.path}} --output=yaml > {{outputs.artifacts.manifest.path}}"] + + - name: prepare-parameters + inputs: + artifacts: + - name: input-parameters + path: /yamls/input.yaml + - name: additional-parameters + path: /yamls/additionalinput.yaml + optional: true + - name: aws + path: /yamls/aws.yaml + - name: basicAuth + path: /yamls/basicAuth.yaml + container: + image: ghcr.io/capactio/pr/infra/merger:PR-428 + outputs: + artifacts: + - name: merged + path: /merged.yaml diff --git a/manifests/implementation/aws/rds/postgresql/install.yaml b/manifests/implementation/aws/rds/postgresql/install.yaml index 9cf0fddb..19ddf74c 100644 --- a/manifests/implementation/aws/rds/postgresql/install.yaml +++ b/manifests/implementation/aws/rds/postgresql/install.yaml @@ -94,39 +94,28 @@ spec: - name: rds-instance from: "{{steps.render-rds.outputs.artifacts.render}}" steps: - - - name: fill-default-input - capact-action: jinja2.template + - - name: prepare-parameters + template: prepare-parameters arguments: artifacts: - name: input-parameters from: "{{inputs.artifacts.input-parameters}}" - - name: template - raw: - data: | - superuser: - username: "<@ input.superuser.username | default('postgres') @>" - password: "<@ input.superuser.password | default(random_word(length=16)) @>" - - name: configuration - raw: - data: | - prefix: input + - name: additional-parameters + from: "{{inputs.artifacts.additional-parameters}}" + optional: true + - name: aws + from: "{{workflow.outputs.artifacts.aws-credentials}}" - - name: create-module-args capact-action: jinja2.template arguments: artifacts: - - name: input-parameters - from: "{{inputs.artifacts.additional-parameters}}" - - name: configuration - raw: - data: | - prefix: additionalinput - name: template raw: data: | variables: |+ - user_name = "<@ input.superuser.username @>" - user_password = "<@ input.superuser.password @>" + user_name = "<@ input.superuser.username | default('postgres') @>" + user_password = "<@ input.superuser.password | default(random_word(length=16)) @>" region = "<@ additionalinput.region | default('eu-west-1') @>" ingress_rule_cidr_blocks = "<@ additionalinput.ingress_rule_cidr_blocks | default('0.0.0.0/0') @>" @@ -206,32 +195,11 @@ spec: identifier: "{{ .identifier }}" availability_zone: "{{ .availability_zone }}" class: "{{ .class }}" - - - - name: fill-input-in-module-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.create-module-args.outputs.artifacts.render}}" - - name: input-parameters - from: "{{steps.fill-default-input.outputs.artifacts.render}}" - - name: configuration - raw: - data: | - prefix: input - - - - name: fill-aws-params-in-module-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-input-in-module-args.outputs.artifacts.render}}" - name: input-parameters - from: "{{workflow.outputs.artifacts.aws-credentials}}" + from: "{{steps.prepare-parameters.outputs.artifacts.merged}}" - name: configuration raw: - data: | - prefix: aws + data: - - name: terraform-apply capact-action: terraform.apply @@ -241,7 +209,7 @@ spec: arguments: artifacts: - name: input-parameters - from: "{{steps.fill-aws-params-in-module-args.outputs.artifacts.render}}" + from: "{{steps.create-module-args.outputs.artifacts.render}}" - name: runner-context from: "{{workflow.outputs.artifacts.runner-context}}" @@ -285,3 +253,20 @@ spec: identifier: "<@ identifier @>" availability_zone: "<@ availability_zone @>" class: "<@ class @>" + + - name: prepare-parameters + inputs: + artifacts: + - name: input-parameters + path: /yamls/input.yaml + - name: additional-parameters + path: /yamls/additionalinput.yaml + optional: true + - name: aws + path: /yamls/aws.yaml + container: + image: ghcr.io/capactio/pr/infra/merger:PR-428 + outputs: + artifacts: + - name: merged + path: /merged.yaml diff --git a/manifests/implementation/bitnami/mongodb/install.yaml b/manifests/implementation/bitnami/mongodb/install.yaml index 6d931c1c..da65512e 100644 --- a/manifests/implementation/bitnami/mongodb/install.yaml +++ b/manifests/implementation/bitnami/mongodb/install.yaml @@ -73,46 +73,20 @@ spec: - name: mongodb from: "{{steps.helm-install.outputs.artifacts.additional}}" steps: - - - name: fill-default-input - capact-action: jinja2.template + - - name: prepare-parameters + template: prepare-parameters arguments: artifacts: - name: input-parameters from: "{{inputs.artifacts.input-parameters}}" - - name: template - raw: - data: | - user: - username: "<@ input.user.username | default('mongo') @>" - password: "<@ input.user.password | default(random_word(length=16)) @>" - defaultDBName: "<@ input.defaultDBName | default('mongo') @>" - rootPassword: "<@ input.rootPassword | default(random_word(length=16)) @>" - replicas: <@ input.replicas | default(3) @> - replicaSetName: "<@ input.replicaSetName | default('rs0') @>" - replicaSetKey: "<@ input.replicaSetKey | default(random_word(length=16)) @>" - replicaSetHostnames: <@ input.replicaSetHostnames | default(true) | tojson @> - directoryPerDB: <@ input.directoryPerDB | default(false) | tojson @> - enableIPv6: <@ input.enableIPv6 | default(false) | tojson @> - systemLogVerbosity: <@ input.systemLogVerbosity | default(0) @> - disableSystemLog: <@ input.disableSystemLog | default(false) | tojson @> - configuration: "<@ input.configuration | default('') @>" - initdbScripts: <@ input.initdbScripts | default({}) | tojson @> - - name: configuration - raw: - data: | - prefix: input + - name: additional-parameters + from: "{{inputs.artifacts.additional-parameters}}" + optional: true - - - name: create-helm-args + - - name: render-helm-args capact-action: jinja2.template arguments: artifacts: - - name: input-parameters - from: "{{inputs.artifacts.additional-parameters}}" - - name: configuration - raw: - data: | - prefix: additionalinput - - name: template raw: data: | @@ -135,11 +109,11 @@ spec: auth: enabled: true - username: <@ input.user.username @> - password: <@ input.user.password @> - database: <@ input.defaultDBName @> - rootPassword: <@ input.rootPassword @> - replicaSetKey: "<@ input.replicaSetKey @>" + username: "<@ input.user.username | default('mongo') @>" + password: "<@ input.user.password | default(random_word(length=16)) @>" + database: "<@ input.defaultDBName | default('mongo') @>" + rootPassword: "<@ input.rootPassword | default(random_word(length=16)) @>" + replicaSetKey: "<@ input.replicaSetKey | default(random_word(length=16)) @>" tls: enabled: <@ additionalinput.tls.enabled | default(false) | tojson @> @@ -151,19 +125,19 @@ spec: tag: <@ additionalinput.tls.image.tag | default("1.19.5-debian-10-r19") @> pullPolicy: <@ additionalinput.tls.image.pullPolicy | default("IfNotPresent") @> - replicaSetName: <@ input.replicaSetName @> - replicaSetHostnames: <@ input.replicaSetHostnames @> - enableIPv6: <@ input.enableIPv6 @> - directoryPerDB: <@ input.directoryPerDB @> - systemLogVerbosity: <@ input.systemLogVerbosity @> - disableSystemLog: <@ input.disableSystemLog @> - configuration: "<@ input.configuration @>" - initdbScripts: <@ input.initdbScripts @> + replicaSetName: "<@ input.replicaSetName | default('rs0') @>" + replicaSetHostnames: <@ input.replicaSetHostnames | default(true) | tojson @> + enableIPv6: <@ input.enableIPv6 | default(false) | tojson @> + directoryPerDB: <@ input.directoryPerDB | default(false) | tojson @> + systemLogVerbosity: <@ input.systemLogVerbosity | default(0) @> + disableSystemLog: <@ input.disableSystemLog | default(false) | tojson @> + configuration: "<@ input.configuration | default('') @>" + initdbScripts: <@ input.initdbScripts | default({}) | tojson @> extraFlags: <@ additionalinput.extraFlags | default([]) @> extraEnvVars: <@ additionalinput.extraEnvVars | default([]) @> annotations: <@ additionalinput.annotations | default({}) @> labels: <@ additionalinput.labels | default({}) @> - replicaCount: <@ input.replicas @> + replicaCount: <@ input.replicas | default(3) @> strategyType: <@ additionalinput.strategyType | default("RollingUpdate") @> podManagementPolicy: <@ additionalinput.podManagementPolicy | default("OrderedReady") @> podAffinityPreset: "<@ additionalinput.podAffinityPreset | default("") @>" @@ -382,19 +356,11 @@ spec: user: username: '{{ .Values.auth.username }}' password: '{{ .Values.auth.password }}' - - - - name: fill-input-in-module-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.create-helm-args.outputs.artifacts.render}}" - name: input-parameters - from: "{{steps.fill-default-input.outputs.artifacts.render}}" + from: "{{steps.prepare-parameters.outputs.artifacts.merged}}" - name: configuration raw: data: | - prefix: input - - name: helm-install capact-action: helm.install @@ -406,6 +372,21 @@ spec: arguments: artifacts: - name: input-parameters - from: "{{steps.fill-input-in-module-args.outputs.artifacts.render}}" + from: "{{steps.render-helm-args.outputs.artifacts.render}}" - name: runner-context from: "{{workflow.outputs.artifacts.runner-context}}" + + - name: prepare-parameters + inputs: + artifacts: + - name: input-parameters + path: /yamls/input.yaml + - name: additional-parameters + path: /yamls/additionalInput.yaml + optional: true + container: + image: ghcr.io/capactio/pr/infra/merger:PR-428 + outputs: + artifacts: + - name: merged + path: /merged.yaml diff --git a/manifests/implementation/concourse/concourse/install.yaml b/manifests/implementation/concourse/concourse/install.yaml index e1149250..eeeb9b4b 100644 --- a/manifests/implementation/concourse/concourse/install.yaml +++ b/manifests/implementation/concourse/concourse/install.yaml @@ -140,6 +140,19 @@ spec: - name: database-input from: "{{steps.render-create-db-args.outputs.artifacts.render}}" + - - name: prepare-parameters + template: prepare-parameters + arguments: + artifacts: + - name: input-parameters + from: "{{inputs.artifacts.input-parameters}}" + - name: db + from: "{{steps.install-db.outputs.artifacts.postgresql}}" + - name: database + from: "{{steps.create-db.outputs.artifacts.database}}" + - name: user + from: "{{steps.create-user.outputs.artifacts.user}}" + - - name: render-helm-args capact-action: jinja2.template arguments: @@ -191,47 +204,10 @@ spec: hosts: - <@ input.host @> - name: input-parameters - from: "{{steps.install-db.outputs.artifacts.postgresql}}" - - name: configuration - raw: - data: "prefix: db" - - - - name: fill-database-params-in-helm-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.render-helm-args.outputs.artifacts.render}}" - - name: input-parameters - from: "{{steps.create-db.outputs.artifacts.database}}" - - name: configuration - raw: - data: "prefix: database" - - - - name: fill-input-params-in-helm-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-database-params-in-helm-args.outputs.artifacts.render}}" - - name: input-parameters - from: "{{inputs.artifacts.input-parameters}}" + from: "{{steps.prepare-parameters.outputs.artifacts.merged}}" - name: configuration raw: data: | - prefix: input - - - - name: fill-user-params-in-helm-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-input-params-in-helm-args.outputs.artifacts.render}}" - - name: input-parameters - from: "{{steps.create-user.outputs.artifacts.user}}" - - name: configuration - raw: - data: "prefix: user" - - name: helm-install capact-action: helm.install @@ -243,6 +219,24 @@ spec: arguments: artifacts: - name: input-parameters - from: "{{steps.fill-user-params-in-helm-args.outputs.artifacts.render}}" + from: "{{steps.render-helm-args.outputs.artifacts.render}}" - name: runner-context from: "{{workflow.outputs.artifacts.runner-context}}" + + - name: prepare-parameters + inputs: + artifacts: + - name: input-parameters + path: /yamls/input.yaml + - name: db + path: /yamls/db.yaml + - name: database + path: /yamls/database.yaml + - name: user + path: /yamls/user.yaml + container: + image: ghcr.io/capactio/pr/infra/merger:PR-428 + outputs: + artifacts: + - name: merged + path: /merged.yaml diff --git a/manifests/implementation/elastic/elasticsearch/install.yaml b/manifests/implementation/elastic/elasticsearch/install.yaml index a1e7d4d7..eb554a27 100644 --- a/manifests/implementation/elastic/elasticsearch/install.yaml +++ b/manifests/implementation/elastic/elasticsearch/install.yaml @@ -213,3 +213,21 @@ spec: image: bitnami/kubectl:1.18 command: [sh, -c] args: ["kubectl create -f {{inputs.artifacts.manifest.path}} --output=yaml > {{outputs.artifacts.manifest.path}}"] + + - name: prepare-parameters + inputs: + artifacts: + - name: input-parameters + path: /yamls/input.yaml + - name: db + path: /yamls/db.yaml + - name: database + path: /yamls/database.yaml + - name: user + path: /yamls/user.yaml + container: + image: ghcr.io/capactio/pr/infra/merger:PR-428 + outputs: + artifacts: + - name: merged + path: /merged.yaml diff --git a/manifests/implementation/gcp/cloudsql/postgresql/update.yaml b/manifests/implementation/gcp/cloudsql/postgresql/update.yaml index 5c4e3a04..55459371 100644 --- a/manifests/implementation/gcp/cloudsql/postgresql/update.yaml +++ b/manifests/implementation/gcp/cloudsql/postgresql/update.yaml @@ -75,16 +75,23 @@ spec: - name: postgresql from: "{{steps.terraform-apply.outputs.artifacts.additional}}" steps: - - - name: create-module-args - capact-action: jinja2.template + - - name: prepare-parameters + template: prepare-parameters arguments: artifacts: - name: input-parameters from: "{{inputs.artifacts.input-parameters}}" - - name: configuration - raw: - data: | - prefix: input + - name: gcp + from: "{{workflow.outputs.artifacts.gcp-sa}}" + - name: release + from: "{{inputs.artifacts.terraform-release}}" + - name: postgresql + from: "{{inputs.artifacts.postgresql}}" + + - - name: create-module-args + capact-action: jinja2.template + arguments: + artifacts: - name: template raw: data: @@ -111,45 +118,11 @@ spec: superuser: username: "{{ .username }}" password: "{{ .password }}" - - - - name: fill-gcp-params-in-module-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.create-module-args.outputs.artifacts.render}}" - name: input-parameters - from: "{{workflow.outputs.artifacts.gcp-sa}}" + from: "{{steps.prepare-parameters.outputs.artifacts.merged}}" - name: configuration raw: - data: | - prefix: gcp - - - - name: fill-release-in-module-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-gcp-params-in-module-args.outputs.artifacts.render}}" - - name: input-parameters - from: "{{inputs.artifacts.terraform-release}}" - - name: configuration - raw: - data: | - prefix: release - - - - name: fill-postgresql-in-module-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-release-in-module-args.outputs.artifacts.render}}" - - name: input-parameters - from: "{{inputs.artifacts.postgresql}}" - - name: configuration - raw: - data: | - prefix: postgresql + data: - - name: convert-gcp-yaml-to-json template: convert-yaml-to-json @@ -166,7 +139,7 @@ spec: arguments: artifacts: - name: input-parameters - from: "{{steps.fill-postgresql-in-module-args.outputs.artifacts.render}}" + from: "{{steps.create-module-args.outputs.artifacts.render}}" - name: runner-context from: "{{workflow.outputs.artifacts.runner-context}}" - name: tfstate @@ -187,3 +160,21 @@ spec: artifacts: - name: out path: /file + + - name: prepare-parameters + inputs: + artifacts: + - name: input-parameters + path: /yamls/input.yaml + - name: gcp + path: /yamls/gcp.yaml + - name: release + path: /yamls/release.yaml + - name: postgresql + path: /yamls/postgresql.yaml + container: + image: ghcr.io/capactio/pr/infra/merger:PR-428 + outputs: + artifacts: + - name: merged + path: /merged.yaml diff --git a/manifests/implementation/mattermost/mattermost-team-edition/install.yaml b/manifests/implementation/mattermost/mattermost-team-edition/install.yaml index 70ff81e7..fbf7552f 100644 --- a/manifests/implementation/mattermost/mattermost-team-edition/install.yaml +++ b/manifests/implementation/mattermost/mattermost-team-edition/install.yaml @@ -150,224 +150,21 @@ spec: - name: database-input from: "{{steps.render-create-db-args.outputs.artifacts.render}}" - # Install Mattermost - - - name: fill-default-input - capact-action: jinja2.template + - - name: prepare-parameters + template: prepare-parameters arguments: artifacts: - name: input-parameters from: "{{inputs.artifacts.input-parameters}}" - - name: template - raw: - data: | - host: "<@ input.host | default('mattermost.example.com') @>" - configJSON: - ServiceSettings: - SiteURL: "<@ input.host | default('mattermost.example.com') @>" - LicenseFileLocation: "<@ input.configJSON.ServiceSettings.LicenseFileLocation | default('') @>" - ListenAddress: "<@ input.configJSON.ServiceSettings.ListenAddress | default(':8065') @>" - ConnectionSecurity: "<@ input.configJSON.ServiceSettings.ConnectionSecurity | default('') @>" - TLSCertFile: "<@ input.configJSON.ServiceSettings.TLSCertFile | default('') @>" - TLSKeyFile: "<@ input.configJSON.ServiceSettings.TLSKeyFile | default('') @>" - UseLetsEncrypt: <@ input.configJSON.ServiceSettings.UseLetsEncrypt | default(false) | tojson @> - LetsEncryptCertificateCacheFile: "<@ input.configJSON.ServiceSettings.LetsEncryptCertificateCacheFile | default('./config/letsencrypt.cache') @>" - Forward80To443: <@ input.configJSON.ServiceSettings.Forward80To443 | default(false) | tojson @> - ReadTimeout: <@ input.configJSON.ServiceSettings.ReadTimeout | default(300) @> - WriteTimeout: <@ input.configJSON.ServiceSettings.WriteTimeout | default(300) @> - MaximumLoginAttempts: <@ input.configJSON.ServiceSettings.MaximumLoginAttempts | default(10) @> - GoroutineHealthThreshold: <@ input.configJSON.ServiceSettings.GoroutineHealthThreshold | default(-1) @> - GoogleDeveloperKey: "<@ input.configJSON.ServiceSettings.GoogleDeveloperKey | default('') @>" - EnableOAuthServiceProvider: <@ input.configJSON.ServiceSettings.EnableOAuthServiceProvider | default(false) | tojson @> - EnableIncomingWebhooks: <@ input.configJSON.ServiceSettings.EnableIncomingWebhooks | default(true) | tojson @> - EnableOutgoingWebhooks: <@ input.configJSON.ServiceSettings.EnableOutgoingWebhooks | default(true) | tojson @> - EnableCommands: <@ input.configJSON.ServiceSettings.EnableCommands | default(true) | tojson @> - EnableOnlyAdminIntegrations: <@ input.configJSON.ServiceSettings.EnableOnlyAdminIntegrations | default(false) | tojson @> - EnablePostUsernameOverride: <@ input.configJSON.ServiceSettings.EnablePostUsernameOverride | default(false) | tojson @> - EnablePostIconOverride: <@ input.configJSON.ServiceSettings.EnablePostIconOverride | default(false) | tojson @> - EnableBotAccountCreation: <@ input.configJSON.ServiceSettings.EnableBotAccountCreation | default(false) | tojson @> - EnableUserAccessTokens: <@ input.configJSON.ServiceSettings.EnableUserAccessTokens | default(false) | tojson @> - EnableLinkPreviews: <@ input.configJSON.ServiceSettings.EnableLinkPreviews | default(false) | tojson @> - EnableTesting: <@ input.configJSON.ServiceSettings.EnableTesting | default(false) | tojson @> - EnableDeveloper: <@ input.configJSON.ServiceSettings.EnableDeveloper | default(false) | tojson @> - EnableSecurityFixAlert: <@ input.configJSON.ServiceSettings.EnableSecurityFixAlert | default(true) | tojson @> - EnableInsecureOutgoingConnections: <@ input.configJSON.ServiceSettings.EnableInsecureOutgoingConnections | default(false) | tojson @> - EnableMultifactorAuthentication: <@ input.configJSON.ServiceSettings.EnableMultifactorAuthentication | default(false) | tojson @> - EnforceMultifactorAuthentication: <@ input.configJSON.ServiceSettings.EnforceMultifactorAuthentication | default(false) | tojson @> - AllowCorsFrom: "<@ input.configJSON.ServiceSettings.AllowCorsFrom | default('') @>" - SessionLengthWebInDays: <@ input.configJSON.ServiceSettings.SessionLengthWebInDays | default(30) @> - SessionLengthMobileInDays: <@ input.configJSON.ServiceSettings.SessionLengthMobileInDays | default(30) @> - SessionLengthSSOInDays: <@ input.configJSON.ServiceSettings.SessionLengthSSOInDays | default(30) @> - SessionCacheInMinutes: <@ input.configJSON.ServiceSettings.SessionCacheInMinutes | default(10) @> - WebsocketSecurePort: <@ input.configJSON.ServiceSettings.WebsocketSecurePort | default(443) @> - WebsocketPort: <@ input.configJSON.ServiceSettings.WebsocketPort | default(80) @> - WebserverMode: "<@ input.configJSON.ServiceSettings.WebserverMode | default('gzip') @>" - EnableCustomEmoji: <@ input.configJSON.ServiceSettings.EnableCustomEmoji | default(false) @> - RestrictCustomEmojiCreation: "<@ input.configJSON.ServiceSettings.RestrictCustomEmojiCreation | default('all') @>" - RestrictPostDelete: "<@ input.configJSON.ServiceSettings.RestrictPostDelete | default('all') @>" - AllowEditPost: "<@ input.configJSON.ServiceSettings.AllowEditPost | default('always') @>" - PostEditTimeLimit: <@ input.configJSON.ServiceSettings.PostEditTimeLimit | default(300) @> - TimeBetweenUserTypingUpdatesMilliseconds: <@ input.configJSON.ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds | default(5000) @> - EnablePostSearch: <@ input.configJSON.ServiceSettings.EnablePostSearch | default(true) | tojson @> - EnableUserTypingMessages: <@ input.configJSON.ServiceSettings.EnableUserTypingMessages | default(true) | tojson @> - EnableUserStatuses: <@ input.configJSON.ServiceSettings.EnableUserStatuses | default(true) | tojson @> - ClusterLogTimeoutMilliseconds: <@ input.configJSON.ServiceSettings.ClusterLogTimeoutMilliseconds | default(2000) @> - TeamSettings: - SiteName: "<@ input.configJSON.TeamSettings.SiteName | default('Mattermost') @>" - MaxUsersPerTeam: <@ input.configJSON.TeamSettings.MaxUsersPerTeam | default(50000) @> - EnableTeamCreation: <@ input.configJSON.TeamSettings.EnableTeamCreation | default(true) | tojson @> - EnableUserCreation: <@ input.configJSON.TeamSettings.EnableUserCreation | default(true) | tojson @> - EnableOpenServer: <@ input.configJSON.TeamSettings.EnableOpenServer | default(true) | tojson @> - RestrictCreationToDomains: "<@ input.configJSON.TeamSettings.RestrictCreationToDomains | default('') @>" - EnableCustomBrand: <@ input.configJSON.TeamSettings.EnableCustomBrand | default(false) | tojson @> - CustomBrandText: "<@ input.configJSON.TeamSettings.CustomBrandText | default('') @>" - CustomDescriptionText: "<@ input.configJSON.TeamSettings.CustomDescriptionText | default('') @>" - RestrictDirectMessage: "<@ input.configJSON.TeamSettings.RestrictDirectMessage | default('any') @>" - RestrictTeamInvite: "<@ input.configJSON.TeamSettings.RestrictTeamInvite | default('all') @>" - RestrictPublicChannelManagement: "<@ input.configJSON.TeamSettings.RestrictPublicChannelManagement | default('all') @>" - RestrictPrivateChannelManagement: "<@ input.configJSON.TeamSettings.RestrictPrivateChannelManagement | default('all') @>" - RestrictPublicChannelCreation: "<@ input.configJSON.TeamSettings.RestrictPublicChannelCreation | default('all') @>" - RestrictPrivateChannelCreation: "<@ input.configJSON.TeamSettings.RestrictPrivateChannelCreation | default('all') @>" - RestrictPublicChannelDeletion: "<@ input.configJSON.TeamSettings.RestrictPublicChannelDeletion | default('all') @>" - RestrictPrivateChannelDeletion: "<@ input.configJSON.TeamSettings.RestrictPrivateChannelDeletion | default('all') @>" - RestrictPrivateChannelManageMembers: "<@ input.configJSON.TeamSettings.RestrictPrivateChannelManageMembers | default('all') @>" - UserStatusAwayTimeout: <@ input.configJSON.TeamSettings.UserStatusAwayTimeout | default(300) @> - MaxChannelsPerTeam: <@ input.configJSON.TeamSettings.MaxChannelsPerTeam | default(50000) @> - MaxNotificationsPerChannel: <@ input.configJSON.TeamSettings.MaxNotificationsPerChannel | default(1000) @> - SqlSettings: - DriverName: "<@ input.configJSON.SqlSettings.DriverName | default('') @>" - DataSource: "<@ input.configJSON.SqlSettings.DataSource | default('') @>" - DataSourceReplicas: <@ input.configJSON.SqlSettings.DataSourceReplicas | default([]) @> - DataSourceSearchReplicas: <@ input.configJSON.SqlSettings.DataSourceSearchReplicas | default([]) @> - MaxIdleConns: <@ input.configJSON.SqlSettings.MaxIdleConns | default(20) @> - MaxOpenConns: <@ input.configJSON.SqlSettings.MaxOpenConns | default(35) @> - Trace: <@ input.configJSON.SqlSettings.Trace | default(false) | tojson @> - AtRestEncryptKey: "<@ input.configJSON.SqlSettings.AtRestEncryptKey | default('') @>" - QueryTimeout: <@ input.configJSON.SqlSettings.QueryTimeout | default(30) @> - LogSettings: - EnableConsole: <@ input.configJSON.LogSettings.EnableConsole | default(true) | tojson @> - ConsoleLevel: "<@ input.configJSON.LogSettings.ConsoleLevel | default('INFO') @>" - EnableFile: <@ input.configJSON.LogSettings.EnableFile | default(true) | tojson @> - FileLevel: "<@ input.configJSON.LogSettings.FileLevel | default('INFO') @>" - FileFormat: "<@ input.configJSON.LogSettings.FileFormat | default('') @>" - FileLocation: "<@ input.configJSON.LogSettings.FileLocation | default('') @>" - EnableWebhookDebugging: <@ input.configJSON.LogSettings.EnableWebhookDebugging | default(true) | tojson @> - EnableDiagnostics: <@ input.configJSON.LogSettings.EnableDiagnostics | default(true) | tojson @> - PasswordSettings: - MinimumLength: <@ input.configJSON.PasswordSettings.MinimumLength | default(5) @> - Lowercase: <@ input.configJSON.PasswordSettings.Lowercase | default(false) | tojson @> - Number: <@ input.configJSON.PasswordSettings.Number | default(false) | tojson @> - Uppercase: <@ input.configJSON.PasswordSettings.Uppercase | default(false) | tojson @> - Symbol: <@ input.configJSON.PasswordSettings.Symbol | default(false) | tojson @> - FileSettings: - EnableFileAttachments: <@ input.configJSON.FileSettings.EnableFileAttachments | default(true) | tojson @> - MaxFileSize: <@ input.configJSON.FileSettings.MaxFileSize | default(52428800) @> - DriverName: "<@ input.configJSON.FileSettings.DriverName | default('local') @>" - Directory: "<@ input.configJSON.FileSettings.Directory | default('./data/') @>" - EnablePublicLink: <@ input.configJSON.FileSettings.EnablePublicLink | default(false) | tojson @> - PublicLinkSalt: "<@ input.configJSON.FileSettings.PublicLinkSalt | default('') @>" - ThumbnailWidth: <@ input.configJSON.FileSettings.ThumbnailWidth | default(120) @> - ThumbnailHeight: <@ input.configJSON.FileSettings.ThumbnailHeight | default(100) @> - PreviewWidth: <@ input.configJSON.FileSettings.PreviewWidth | default(1024) @> - PreviewHeight: <@ input.configJSON.FileSettings.PreviewHeight | default(0) @> - ProfileWidth: <@ input.configJSON.FileSettings.ProfileWidth | default(128) @> - ProfileHeight: <@ input.configJSON.FileSettings.ProfileHeight | default(128) @> - InitialFont: "<@ input.configJSON.FileSettings.InitialFont | default('luximbi.ttf') @>" - AmazonS3AccessKeyId: "<@ input.configJSON.FileSettings.AmazonS3AccessKeyId | default('') @>" - AmazonS3SecretAccessKey: "<@ input.configJSON.FileSettings.AmazonS3SecretAccessKey | default('') @>" - AmazonS3Bucket: "<@ input.configJSON.FileSettings.AmazonS3Bucket | default('') @>" - AmazonS3Region: "<@ input.configJSON.FileSettings.AmazonS3Region | default('') @>" - AmazonS3Endpoint: "<@ input.configJSON.FileSettings.AmazonS3Endpoint | default('s3.amazonaws.com') @>" - AmazonS3SSL: <@ input.configJSON.FileSettings.AmazonS3SSL | default(false) | tojson @> - AmazonS3SignV2: <@ input.configJSON.FileSettings.AmazonS3SignV2 | default(false) | tojson @> - EmailSettings: - EnableSignUpWithEmail: <@ input.configJSON.EmailSettings.EnableSignUpWithEmail | default(true) | tojson @> - EnableSignInWithEmail: <@ input.configJSON.EmailSettings.EnableSignInWithEmail | default(true) | tojson @> - EnableSignInWithUsername: <@ input.configJSON.EmailSettings.EnableSignInWithUsername | default(true) | tojson @> - SendEmailNotifications: <@ input.configJSON.EmailSettings.SendEmailNotifications | default(false) | tojson @> - RequireEmailVerification: <@ input.configJSON.EmailSettings.RequireEmailVerification | default(false) | tojson @> - FeedbackName: "<@ input.configJSON.EmailSettings.FeedbackName | default('') @>" - FeedbackEmail: "<@ input.configJSON.EmailSettings.FeedbackEmail | default('') @>" - FeedbackOrganization: "<@ input.configJSON.EmailSettings.FeedbackOrganization | default('') @>" - SMTPUsername: "<@ input.configJSON.EmailSettings.SMTPUsername | default('') @>" - SMTPPassword: "<@ input.configJSON.EmailSettings.SMTPPassword | default('') @>" - EnableSMTPAuth: "<@ input.configJSON.EmailSettings.EnableSMTPAuth | default('') @>" - SMTPServer: "<@ input.configJSON.EmailSettings.SMTPServer | default('') @>" - SMTPPort: "<@ input.configJSON.EmailSettings.SMTPPort | default('') @>" - ConnectionSecurity: "<@ input.configJSON.EmailSettings.ConnectionSecurity | default('') @>" - InviteSalt: "<@ input.configJSON.EmailSettings.InviteSalt | default('') @>" - SendPushNotifications: <@ input.configJSON.EmailSettings.SendPushNotifications | default(true) | tojson @> - PushNotificationServer: "<@ input.configJSON.EmailSettings.PushNotificationServer | default('https://push-test.mattermost.com') @>" - PushNotificationContents: "<@ input.configJSON.EmailSettings.PushNotificationContents | default('generic') @>" - EnableEmailBatching: <@ input.configJSON.EmailSettings.EnableEmailBatching | default(false) | tojson @> - EmailBatchingBufferSize: <@ input.configJSON.EmailSettings.EmailBatchingBufferSize | default(256) @> - EmailBatchingInterval: <@ input.configJSON.EmailSettings.EmailBatchingInterval | default(30) @> - SkipServerCertificateVerification: <@ input.configJSON.EmailSettings.SkipServerCertificateVerification | default(false) | tojson @> - RateLimitSettings: - Enable: <@ input.configJSON.RateLimitSettings.Enable | default(false) | tojson @> - PerSec: <@ input.configJSON.RateLimitSettings.PerSec | default(10) @> - MaxBurst: <@ input.configJSON.RateLimitSettings.MaxBurst | default(100) @> - MemoryStoreSize: <@ input.configJSON.RateLimitSettings.MemoryStoreSize | default(10000) @> - VaryByRemoteAddr: <@ input.configJSON.RateLimitSettings.VaryByRemoteAddr | default(true) | tojson @> - VaryByHeader: "<@ input.configJSON.RateLimitSettings.VaryByHeader | default('') @>" - PrivacySettings: - ShowEmailAddress: <@ input.configJSON.PrivacySettings.ShowEmailAddress | default(true) | tojson @> - ShowFullName: <@ input.configJSON.PrivacySettings.ShowFullName | default(true) | tojson @> - SupportSettings: - TermsOfServiceLink: "<@ input.configJSON.SupportSettings.TermsOfServiceLink | default('https://about.mattermost.com/default-terms/') @>" - PrivacyPolicyLink: "<@ input.configJSON.SupportSettings.PrivacyPolicyLink | default('https://about.mattermost.com/default-privacy-policy/') @>" - AboutLink: "<@ input.configJSON.SupportSettings.AboutLink | default('https://about.mattermost.com/default-about/') @>" - HelpLink: "<@ input.configJSON.SupportSettings.HelpLink | default('https://about.mattermost.com/default-help/') @>" - ReportAProblemLink: "<@ input.configJSON.SupportSettings.ReportAProblemLink | default('https://about.mattermost.com/default-report-a-problem/') @>" - SupportEmail: "<@ input.configJSON.SupportSettings.SupportEmail | default('feedback@mattermost.com') @>" - AnnouncementSettings: - EnableBanner: <@ input.configJSON.AnnouncementSettings.EnableBanner | default(false) | tojson @> - BannerText: "<@ input.configJSON.AnnouncementSettings.BannerText | default('') @>" - BannerColor: "<@ input.configJSON.AnnouncementSettings.BannerColor | default('#f2a93b') @>" - BannerTextColor: "<@ input.configJSON.AnnouncementSettings.BannerTextColor | default('#333333') @>" - AllowBannerDismissal: <@ input.configJSON.AnnouncementSettings.AllowBannerDismissal | default(true) | tojson @> - GitLabSettings: - Enable: <@ input.configJSON.GitLabSettings.Enable | default(false) | tojson @> - Secret: "<@ input.configJSON.GitLabSettings.Secret | default('') @>" - Id: "<@ input.configJSON.GitLabSettings.Id | default('') @>" - Scope: "<@ input.configJSON.GitLabSettings.Scope | default('') @>" - AuthEndpoint: "<@ input.configJSON.GitLabSettings.AuthEndpoint | default('') @>" - TokenEndpoint: "<@ input.configJSON.GitLabSettings.TokenEndpoint | default('') @>" - UserApiEndpoint: "<@ input.configJSON.GitLabSettings.UserApiEndpoint | default('') @>" - LocalizationSettings: - DefaultServerLocale: "<@ input.configJSON.LocalizationSettings.DefaultServerLocale | default('en') @>" - DefaultClientLocale: "<@ input.configJSON.LocalizationSettings.DefaultClientLocale | default('en') @>" - AvailableLocales: "<@ input.configJSON.LocalizationSettings.AvailableLocales | default('') @>" - NativeAppSettings: - AppDownloadLink: "<@ input.configJSON.NativeAppSettings.AppDownloadLink | default('https://about.mattermost.com/downloads/') @>" - AndroidAppDownloadLink: "<@ input.configJSON.NativeAppSettings.AndroidAppDownloadLink | default('https://about.mattermost.com/mattermost-android-app/') @>" - IosAppDownloadLink: "<@ input.configJSON.NativeAppSettings.IosAppDownloadLink | default('https://about.mattermost.com/mattermost-ios-app/') @>" - AnalyticsSettings: - MaxUsersForStatistics: <@ input.configJSON.AnalyticsSettings.MaxUsersForStatistics | default(2500) @> - WebrtcSettings: - Enable: <@ input.configJSON.WebrtcSettings.Enable | default(false) | tojson @> - GatewayWebsocketUrl: "<@ input.configJSON.WebrtcSettings.GatewayWebsocketUrl | default('') @>" - GatewayAdminUrl: "<@ input.configJSON.WebrtcSettings.GatewayAdminUrl | default('') @>" - GatewayAdminSecret: "<@ input.configJSON.WebrtcSettings.GatewayAdminSecret | default('') @>" - StunURI: "<@ input.configJSON.WebrtcSettings.StunURI | default('') @>" - TurnURI: "<@ input.configJSON.WebrtcSettings.TurnURI | default('') @>" - TurnUsername: "<@ input.configJSON.WebrtcSettings.TurnUsername | default('') @>" - TurnSharedKey: "<@ input.configJSON.WebrtcSettings.TurnSharedKey | default('') @>" - DisplaySettings: - CustomUrlSchemes: <@ input.configJSON.DisplaySettings.CustomUrlSchemes | default([]) @> - ExperimentalTimezone: <@ input.configJSON.DisplaySettings.ExperimentalTimezone | default(true) | tojson @> - TimezoneSettings: - SupportedTimezonesPath: "<@ input.configJSON.TimezoneSettings.SupportedTimezonesPath | default('timezones.json') @>" - PluginSettings: - Enable: <@ input.configJSON.PluginSettings.Enable | default(true) @> - EnableUploads: <@ input.configJSON.PluginSettings.EnableUploads | default(true) | tojson @> - Directory: "<@ input.configJSON.PluginSettings.Directory | default('./plugins') @>" - ClientDirectory: "<@ input.configJSON.PluginSettings.ClientDirectory | default('./client/plugins') @>" - Plugins: <@ input.configJSON.PluginSettings.Plugins | default({}) @> - PluginStates: <@ input.configJSON.PluginSettings.PluginStates | default({}) @> - - name: configuration - raw: - data: | - prefix: input + - name: additional-parameters + from: "{{inputs.artifacts.additional-parameters}}" + optional: true + - name: psql + from: "{{steps.install-db.outputs.artifacts.postgresql}}" + - name: db + from: "{{steps.create-db.outputs.artifacts.database}}" + - name: user + from: "{{steps.create-user.outputs.artifacts.user}}" # Install Mattermost - - name: create-helm-args @@ -441,268 +238,215 @@ spec: configJSON: ServiceSettings: SiteURL: "https://<@ input.host @>" - LicenseFileLocation: <@ input.configJSON.ServiceSettings.LicenseFileLocation @> - ListenAddress: <@ input.configJSON.ServiceSettings.ListenAddress @> - ConnectionSecurity: <@ input.configJSON.ServiceSettings.ConnectionSecurity @> - TLSCertFile: <@ input.configJSON.ServiceSettings.TLSCertFile @> - TLSKeyFile: <@ input.configJSON.ServiceSettings.TLSKeyFile @> - UseLetsEncrypt: <@ input.configJSON.ServiceSettings.UseLetsEncrypt @> - LetsEncryptCertificateCacheFile: <@ input.configJSON.ServiceSettings.LetsEncryptCertificateCacheFile @> - Forward80To443: <@ input.configJSON.ServiceSettings.Forward80To443 @> - ReadTimeout: <@ input.configJSON.ServiceSettings.ReadTimeout @> - WriteTimeout: <@ input.configJSON.ServiceSettings.WriteTimeout @> - MaximumLoginAttempts: <@ input.configJSON.ServiceSettings.MaximumLoginAttempts @> - GoroutineHealthThreshold: <@ input.configJSON.ServiceSettings.GoroutineHealthThreshold @> - GoogleDeveloperKey: <@ input.configJSON.ServiceSettings.GoogleDeveloperKey @> - EnableOAuthServiceProvider: <@ input.configJSON.ServiceSettings.EnableOAuthServiceProvider @> - EnableIncomingWebhooks: <@ input.configJSON.ServiceSettings.EnableIncomingWebhooks @> - EnableOutgoingWebhooks: <@ input.configJSON.ServiceSettings.EnableOutgoingWebhooks @> - EnableCommands: <@ input.configJSON.ServiceSettings.EnableCommands @> - EnableOnlyAdminIntegrations: <@ input.configJSON.ServiceSettings.EnableOnlyAdminIntegrations @> - EnablePostUsernameOverride: <@ input.configJSON.ServiceSettings.EnablePostUsernameOverride @> - EnablePostIconOverride: <@ input.configJSON.ServiceSettings.EnablePostIconOverride @> - EnableBotAccountCreation: <@ input.configJSON.ServiceSettings.EnableBotAccountCreation @> - EnableUserAccessTokens: <@ input.configJSON.ServiceSettings.EnableUserAccessTokens @> - EnableLinkPreviews: <@ input.configJSON.ServiceSettings.EnableLinkPreviews @> - EnableTesting: <@ input.configJSON.ServiceSettings.EnableTesting @> - EnableDeveloper: <@ input.configJSON.ServiceSettings.EnableDeveloper @> - EnableSecurityFixAlert: <@ input.configJSON.ServiceSettings.EnableSecurityFixAlert @> - EnableInsecureOutgoingConnections: <@ input.configJSON.ServiceSettings.EnableInsecureOutgoingConnections @> - EnableMultifactorAuthentication: <@ input.configJSON.ServiceSettings.EnableMultifactorAuthentication @> - EnforceMultifactorAuthentication: <@ input.configJSON.ServiceSettings.EnforceMultifactorAuthentication @> - AllowCorsFrom: <@ input.configJSON.ServiceSettings.AllowCorsFrom @> - SessionLengthWebInDays: <@ input.configJSON.ServiceSettings.SessionLengthWebInDays @> - SessionLengthMobileInDays: <@ input.configJSON.ServiceSettings.SessionLengthMobileInDays @> - SessionLengthSSOInDays: <@ input.configJSON.ServiceSettings.SessionLengthSSOInDays @> - SessionCacheInMinutes: <@ input.configJSON.ServiceSettings.SessionCacheInMinutes @> - WebsocketSecurePort: <@ input.configJSON.ServiceSettings.WebsocketSecurePort @> - WebsocketPort: <@ input.configJSON.ServiceSettings.WebsocketPort @> - WebserverMode: <@ input.configJSON.ServiceSettings.WebserverMode @> - EnableCustomEmoji: <@ input.configJSON.ServiceSettings.EnableCustomEmoji @> - RestrictCustomEmojiCreation: <@ input.configJSON.ServiceSettings.RestrictCustomEmojiCreation @> - RestrictPostDelete: <@ input.configJSON.ServiceSettings.RestrictPostDelete @> - AllowEditPost: <@ input.configJSON.ServiceSettings.AllowEditPost @> - PostEditTimeLimit: <@ input.configJSON.ServiceSettings.PostEditTimeLimit @> - TimeBetweenUserTypingUpdatesMilliseconds: <@ input.configJSON.ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds @> - EnablePostSearch: <@ input.configJSON.ServiceSettings.EnablePostSearch @> - EnableUserTypingMessages: <@ input.configJSON.ServiceSettings.EnableUserTypingMessages @> - EnableUserStatuses: <@ input.configJSON.ServiceSettings.EnableUserStatuses @> - ClusterLogTimeoutMilliseconds: <@ input.configJSON.ServiceSettings.ClusterLogTimeoutMilliseconds @> + LicenseFileLocation: "<@ input.configJSON.ServiceSettings.LicenseFileLocation | default('') @>" + ListenAddress: "<@ input.configJSON.ServiceSettings.ListenAddress | default(':8065') @>" + ConnectionSecurity: "<@ input.configJSON.ServiceSettings.ConnectionSecurity | default('') @>" + TLSCertFile: "<@ input.configJSON.ServiceSettings.TLSCertFile | default('') @>" + TLSKeyFile: "<@ input.configJSON.ServiceSettings.TLSKeyFile | default('') @>" + UseLetsEncrypt: <@ input.configJSON.ServiceSettings.UseLetsEncrypt | default(false) | tojson @> + LetsEncryptCertificateCacheFile: "<@ input.configJSON.ServiceSettings.LetsEncryptCertificateCacheFile | default('./config/letsencrypt.cache') @>" + Forward80To443: <@ input.configJSON.ServiceSettings.Forward80To443 | default(false) | tojson @> + ReadTimeout: <@ input.configJSON.ServiceSettings.ReadTimeout | default(300) @> + WriteTimeout: <@ input.configJSON.ServiceSettings.WriteTimeout | default(300) @> + MaximumLoginAttempts: <@ input.configJSON.ServiceSettings.MaximumLoginAttempts | default(10) @> + GoroutineHealthThreshold: <@ input.configJSON.ServiceSettings.GoroutineHealthThreshold | default(-1) @> + GoogleDeveloperKey: "<@ input.configJSON.ServiceSettings.GoogleDeveloperKey | default('') @>" + EnableOAuthServiceProvider: <@ input.configJSON.ServiceSettings.EnableOAuthServiceProvider | default(false) | tojson @> + EnableIncomingWebhooks: <@ input.configJSON.ServiceSettings.EnableIncomingWebhooks | default(true) | tojson @> + EnableOutgoingWebhooks: <@ input.configJSON.ServiceSettings.EnableOutgoingWebhooks | default(true) | tojson @> + EnableCommands: <@ input.configJSON.ServiceSettings.EnableCommands | default(true) | tojson @> + EnableOnlyAdminIntegrations: <@ input.configJSON.ServiceSettings.EnableOnlyAdminIntegrations | default(false) | tojson @> + EnablePostUsernameOverride: <@ input.configJSON.ServiceSettings.EnablePostUsernameOverride | default(false) | tojson @> + EnablePostIconOverride: <@ input.configJSON.ServiceSettings.EnablePostIconOverride | default(false) | tojson @> + EnableBotAccountCreation: <@ input.configJSON.ServiceSettings.EnableBotAccountCreation | default(false) | tojson @> + EnableUserAccessTokens: <@ input.configJSON.ServiceSettings.EnableUserAccessTokens | default(false) | tojson @> + EnableLinkPreviews: <@ input.configJSON.ServiceSettings.EnableLinkPreviews | default(false) | tojson @> + EnableTesting: <@ input.configJSON.ServiceSettings.EnableTesting | default(false) | tojson @> + EnableDeveloper: <@ input.configJSON.ServiceSettings.EnableDeveloper | default(false) | tojson @> + EnableSecurityFixAlert: <@ input.configJSON.ServiceSettings.EnableSecurityFixAlert | default(true) | tojson @> + EnableInsecureOutgoingConnections: <@ input.configJSON.ServiceSettings.EnableInsecureOutgoingConnections | default(false) | tojson @> + EnableMultifactorAuthentication: <@ input.configJSON.ServiceSettings.EnableMultifactorAuthentication | default(false) | tojson @> + EnforceMultifactorAuthentication: <@ input.configJSON.ServiceSettings.EnforceMultifactorAuthentication | default(false) | tojson @> + AllowCorsFrom: "<@ input.configJSON.ServiceSettings.AllowCorsFrom | default('') @>" + SessionLengthWebInDays: <@ input.configJSON.ServiceSettings.SessionLengthWebInDays | default(30) @> + SessionLengthMobileInDays: <@ input.configJSON.ServiceSettings.SessionLengthMobileInDays | default(30) @> + SessionLengthSSOInDays: <@ input.configJSON.ServiceSettings.SessionLengthSSOInDays | default(30) @> + SessionCacheInMinutes: <@ input.configJSON.ServiceSettings.SessionCacheInMinutes | default(10) @> + WebsocketSecurePort: <@ input.configJSON.ServiceSettings.WebsocketSecurePort | default(443) @> + WebsocketPort: <@ input.configJSON.ServiceSettings.WebsocketPort | default(80) @> + WebserverMode: "<@ input.configJSON.ServiceSettings.WebserverMode | default('gzip') @>" + EnableCustomEmoji: <@ input.configJSON.ServiceSettings.EnableCustomEmoji | default(false) @> + RestrictCustomEmojiCreation: "<@ input.configJSON.ServiceSettings.RestrictCustomEmojiCreation | default('all') @>" + RestrictPostDelete: "<@ input.configJSON.ServiceSettings.RestrictPostDelete | default('all') @>" + AllowEditPost: "<@ input.configJSON.ServiceSettings.AllowEditPost | default('always') @>" + PostEditTimeLimit: <@ input.configJSON.ServiceSettings.PostEditTimeLimit | default(300) @> + TimeBetweenUserTypingUpdatesMilliseconds: <@ input.configJSON.ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds | default(5000) @> + EnablePostSearch: <@ input.configJSON.ServiceSettings.EnablePostSearch | default(true) | tojson @> + EnableUserTypingMessages: <@ input.configJSON.ServiceSettings.EnableUserTypingMessages | default(true) | tojson @> + EnableUserStatuses: <@ input.configJSON.ServiceSettings.EnableUserStatuses | default(true) | tojson @> + ClusterLogTimeoutMilliseconds: <@ input.configJSON.ServiceSettings.ClusterLogTimeoutMilliseconds | default(2000) @> TeamSettings: - SiteName: <@ input.configJSON.TeamSettings.SiteName @> - MaxUsersPerTeam: <@ input.configJSON.TeamSettings.MaxUsersPerTeam @> - EnableTeamCreation: <@ input.configJSON.TeamSettings.EnableTeamCreation @> - EnableUserCreation: <@ input.configJSON.TeamSettings.EnableUserCreation @> - EnableOpenServer: <@ input.configJSON.TeamSettings.EnableOpenServer @> - RestrictCreationToDomains: <@ input.configJSON.TeamSettings.RestrictCreationToDomains @> - EnableCustomBrand: <@ input.configJSON.TeamSettings.EnableCustomBrand @> - CustomBrandText: <@ input.configJSON.TeamSettings.CustomBrandText @> - CustomDescriptionText: <@ input.configJSON.TeamSettings.CustomDescriptionText @> - RestrictDirectMessage: <@ input.configJSON.TeamSettings.RestrictDirectMessage @> - RestrictTeamInvite: <@ input.configJSON.TeamSettings.RestrictTeamInvite @> - RestrictPublicChannelManagement: <@ input.configJSON.TeamSettings.RestrictPublicChannelManagement @> - RestrictPrivateChannelManagement: <@ input.configJSON.TeamSettings.RestrictPrivateChannelManagement @> - RestrictPublicChannelCreation: <@ input.configJSON.TeamSettings.RestrictPublicChannelCreation @> - RestrictPrivateChannelCreation: <@ input.configJSON.TeamSettings.RestrictPrivateChannelCreation @> - RestrictPublicChannelDeletion: <@ input.configJSON.TeamSettings.RestrictPublicChannelDeletion @> - RestrictPrivateChannelDeletion: <@ input.configJSON.TeamSettings.RestrictPrivateChannelDeletion @> - RestrictPrivateChannelManageMembers: <@ input.configJSON.TeamSettings.RestrictPrivateChannelManageMembers @> - UserStatusAwayTimeout: <@ input.configJSON.TeamSettings.UserStatusAwayTimeout @> - MaxChannelsPerTeam: <@ input.configJSON.TeamSettings.MaxChannelsPerTeam @> - MaxNotificationsPerChannel: <@ input.configJSON.TeamSettings.MaxNotificationsPerChannel @> + SiteName: "<@ input.configJSON.TeamSettings.SiteName | default('Mattermost') @>" + MaxUsersPerTeam: <@ input.configJSON.TeamSettings.MaxUsersPerTeam | default(50000) @> + EnableTeamCreation: <@ input.configJSON.TeamSettings.EnableTeamCreation | default(true) | tojson @> + EnableUserCreation: <@ input.configJSON.TeamSettings.EnableUserCreation | default(true) | tojson @> + EnableOpenServer: <@ input.configJSON.TeamSettings.EnableOpenServer | default(true) | tojson @> + RestrictCreationToDomains: "<@ input.configJSON.TeamSettings.RestrictCreationToDomains | default('') @>" + EnableCustomBrand: <@ input.configJSON.TeamSettings.EnableCustomBrand | default(false) | tojson @> + CustomBrandText: "<@ input.configJSON.TeamSettings.CustomBrandText | default('') @>" + CustomDescriptionText: "<@ input.configJSON.TeamSettings.CustomDescriptionText | default('') @>" + RestrictDirectMessage: "<@ input.configJSON.TeamSettings.RestrictDirectMessage | default('any') @>" + RestrictTeamInvite: "<@ input.configJSON.TeamSettings.RestrictTeamInvite | default('all') @>" + RestrictPublicChannelManagement: "<@ input.configJSON.TeamSettings.RestrictPublicChannelManagement | default('all') @>" + RestrictPrivateChannelManagement: "<@ input.configJSON.TeamSettings.RestrictPrivateChannelManagement | default('all') @>" + RestrictPublicChannelCreation: "<@ input.configJSON.TeamSettings.RestrictPublicChannelCreation | default('all') @>" + RestrictPrivateChannelCreation: "<@ input.configJSON.TeamSettings.RestrictPrivateChannelCreation | default('all') @>" + RestrictPublicChannelDeletion: "<@ input.configJSON.TeamSettings.RestrictPublicChannelDeletion | default('all') @>" + RestrictPrivateChannelDeletion: "<@ input.configJSON.TeamSettings.RestrictPrivateChannelDeletion | default('all') @>" + RestrictPrivateChannelManageMembers: "<@ input.configJSON.TeamSettings.RestrictPrivateChannelManageMembers | default('all') @>" + UserStatusAwayTimeout: <@ input.configJSON.TeamSettings.UserStatusAwayTimeout | default(300) @> + MaxChannelsPerTeam: <@ input.configJSON.TeamSettings.MaxChannelsPerTeam | default(50000) @> + MaxNotificationsPerChannel: <@ input.configJSON.TeamSettings.MaxNotificationsPerChannel | default(1000) @> SqlSettings: - DriverName: <@ input.configJSON.SqlSettings.DriverName @> - DataSource: <@ input.configJSON.SqlSettings.DataSource @> - DataSourceReplicas: <@ input.configJSON.SqlSettings.DataSourceReplicas @> - DataSourceSearchReplicas: <@ input.configJSON.SqlSettings.DataSourceSearchReplicas @> - MaxIdleConns: <@ input.configJSON.SqlSettings.MaxIdleConns @> - MaxOpenConns: <@ input.configJSON.SqlSettings.MaxOpenConns @> - Trace: <@ input.configJSON.SqlSettings.Trace @> - AtRestEncryptKey: <@ input.configJSON.SqlSettings.AtRestEncryptKey @> - QueryTimeout: <@ input.configJSON.SqlSettings.QueryTimeout @> + DriverName: "<@ input.configJSON.SqlSettings.DriverName | default('') @>" + DataSource: "<@ input.configJSON.SqlSettings.DataSource | default('') @>" + DataSourceReplicas: <@ input.configJSON.SqlSettings.DataSourceReplicas | default([]) @> + DataSourceSearchReplicas: <@ input.configJSON.SqlSettings.DataSourceSearchReplicas | default([]) @> + MaxIdleConns: <@ input.configJSON.SqlSettings.MaxIdleConns | default(20) @> + MaxOpenConns: <@ input.configJSON.SqlSettings.MaxOpenConns | default(35) @> + Trace: <@ input.configJSON.SqlSettings.Trace | default(false) | tojson @> + AtRestEncryptKey: "<@ input.configJSON.SqlSettings.AtRestEncryptKey | default('') @>" + QueryTimeout: <@ input.configJSON.SqlSettings.QueryTimeout | default(30) @> LogSettings: - EnableConsole: <@ input.configJSON.LogSettings.EnableConsole @> - ConsoleLevel: <@ input.configJSON.LogSettings.ConsoleLevel @> - EnableFile: <@ input.configJSON.LogSettings.EnableFile @> - FileLevel: <@ input.configJSON.LogSettings.FileLevel @> - FileFormat: <@ input.configJSON.LogSettings.FileFormat @> - FileLocation: <@ input.configJSON.LogSettings.FileLocation @> - EnableWebhookDebugging: <@ input.configJSON.LogSettings.EnableWebhookDebugging @> - EnableDiagnostics: <@ input.configJSON.LogSettings.EnableDiagnostics @> + EnableConsole: <@ input.configJSON.LogSettings.EnableConsole | default(true) | tojson @> + ConsoleLevel: "<@ input.configJSON.LogSettings.ConsoleLevel | default('INFO') @>" + EnableFile: <@ input.configJSON.LogSettings.EnableFile | default(true) | tojson @> + FileLevel: "<@ input.configJSON.LogSettings.FileLevel | default('INFO') @>" + FileFormat: "<@ input.configJSON.LogSettings.FileFormat | default('') @>" + FileLocation: "<@ input.configJSON.LogSettings.FileLocation | default('') @>" + EnableWebhookDebugging: <@ input.configJSON.LogSettings.EnableWebhookDebugging | default(true) | tojson @> + EnableDiagnostics: <@ input.configJSON.LogSettings.EnableDiagnostics | default(true) | tojson @> PasswordSettings: - MinimumLength: <@ input.configJSON.PasswordSettings.MinimumLength @> - Lowercase: <@ input.configJSON.PasswordSettings.Lowercase @> - Number: <@ input.configJSON.PasswordSettings.Number @> - Uppercase: <@ input.configJSON.PasswordSettings.Uppercase @> - Symbol: <@ input.configJSON.PasswordSettings.Symbol @> + MinimumLength: <@ input.configJSON.PasswordSettings.MinimumLength | default(5) @> + Lowercase: <@ input.configJSON.PasswordSettings.Lowercase | default(false) | tojson @> + Number: <@ input.configJSON.PasswordSettings.Number | default(false) | tojson @> + Uppercase: <@ input.configJSON.PasswordSettings.Uppercase | default(false) | tojson @> + Symbol: <@ input.configJSON.PasswordSettings.Symbol | default(false) | tojson @> FileSettings: - EnableFileAttachments: <@ input.configJSON.FileSettings.EnableFileAttachments @> - MaxFileSize: <@ input.configJSON.FileSettings.MaxFileSize @> - DriverName: <@ input.configJSON.FileSettings.DriverName @> - Directory: <@ input.configJSON.FileSettings.Directory @> - EnablePublicLink: <@ input.configJSON.FileSettings.EnablePublicLink @> - PublicLinkSalt: <@ input.configJSON.FileSettings.PublicLinkSalt @> - ThumbnailWidth: <@ input.configJSON.FileSettings.ThumbnailWidth @> - ThumbnailHeight: <@ input.configJSON.FileSettings.ThumbnailHeight @> - PreviewWidth: <@ input.configJSON.FileSettings.PreviewWidth @> - PreviewHeight: <@ input.configJSON.FileSettings.PreviewHeight @> - ProfileWidth: <@ input.configJSON.FileSettings.ProfileWidth @> - ProfileHeight: <@ input.configJSON.FileSettings.ProfileHeight @> - InitialFont: <@ input.configJSON.FileSettings.InitialFont @> - AmazonS3AccessKeyId: <@ input.configJSON.FileSettings.AmazonS3AccessKeyId @> - AmazonS3SecretAccessKey: <@ input.configJSON.FileSettings.AmazonS3SecretAccessKey @> - AmazonS3Bucket: <@ input.configJSON.FileSettings.AmazonS3Bucket @> - AmazonS3Region: <@ input.configJSON.FileSettings.AmazonS3Region @> - AmazonS3Endpoint: <@ input.configJSON.FileSettings.AmazonS3Endpoint @> - AmazonS3SSL: <@ input.configJSON.FileSettings.AmazonS3SSL @> - AmazonS3SignV2: <@ input.configJSON.FileSettings.AmazonS3SignV2 @> + EnableFileAttachments: <@ input.configJSON.FileSettings.EnableFileAttachments | default(true) | tojson @> + MaxFileSize: <@ input.configJSON.FileSettings.MaxFileSize | default(52428800) @> + DriverName: "<@ input.configJSON.FileSettings.DriverName | default('local') @>" + Directory: "<@ input.configJSON.FileSettings.Directory | default('./data/') @>" + EnablePublicLink: <@ input.configJSON.FileSettings.EnablePublicLink | default(false) | tojson @> + PublicLinkSalt: "<@ input.configJSON.FileSettings.PublicLinkSalt | default('') @>" + ThumbnailWidth: <@ input.configJSON.FileSettings.ThumbnailWidth | default(120) @> + ThumbnailHeight: <@ input.configJSON.FileSettings.ThumbnailHeight | default(100) @> + PreviewWidth: <@ input.configJSON.FileSettings.PreviewWidth | default(1024) @> + PreviewHeight: <@ input.configJSON.FileSettings.PreviewHeight | default(0) @> + ProfileWidth: <@ input.configJSON.FileSettings.ProfileWidth | default(128) @> + ProfileHeight: <@ input.configJSON.FileSettings.ProfileHeight | default(128) @> + InitialFont: "<@ input.configJSON.FileSettings.InitialFont | default('luximbi.ttf') @>" + AmazonS3AccessKeyId: "<@ input.configJSON.FileSettings.AmazonS3AccessKeyId | default('') @>" + AmazonS3SecretAccessKey: "<@ input.configJSON.FileSettings.AmazonS3SecretAccessKey | default('') @>" + AmazonS3Bucket: "<@ input.configJSON.FileSettings.AmazonS3Bucket | default('') @>" + AmazonS3Region: "<@ input.configJSON.FileSettings.AmazonS3Region | default('') @>" + AmazonS3Endpoint: "<@ input.configJSON.FileSettings.AmazonS3Endpoint | default('s3.amazonaws.com') @>" + AmazonS3SSL: <@ input.configJSON.FileSettings.AmazonS3SSL | default(false) | tojson @> + AmazonS3SignV2: <@ input.configJSON.FileSettings.AmazonS3SignV2 | default(false) | tojson @> EmailSettings: - EnableSignUpWithEmail: <@ input.configJSON.EmailSettings.EnableSignUpWithEmail @> - EnableSignInWithEmail: <@ input.configJSON.EmailSettings.EnableSignInWithEmail @> - EnableSignInWithUsername: <@ input.configJSON.EmailSettings.EnableSignInWithUsername @> - SendEmailNotifications: <@ input.configJSON.EmailSettings.SendEmailNotifications @> - RequireEmailVerification: <@ input.configJSON.EmailSettings.RequireEmailVerification @> - FeedbackName: <@ input.configJSON.EmailSettings.FeedbackName @> - FeedbackEmail: <@ input.configJSON.EmailSettings.FeedbackEmail @> - FeedbackOrganization: <@ input.configJSON.EmailSettings.FeedbackOrganization @> - SMTPUsername: <@ input.configJSON.EmailSettings.SMTPUsername @> - SMTPPassword: <@ input.configJSON.EmailSettings.SMTPPassword @> - EnableSMTPAuth: <@ input.configJSON.EmailSettings.EnableSMTPAuth @> - SMTPServer: <@ input.configJSON.EmailSettings.SMTPServer @> - SMTPPort: <@ input.configJSON.EmailSettings.SMTPPort @> - ConnectionSecurity: <@ input.configJSON.EmailSettings.ConnectionSecurity @> - InviteSalt: <@ input.configJSON.EmailSettings.InviteSalt @> - SendPushNotifications: <@ input.configJSON.EmailSettings.SendPushNotifications @> - PushNotificationServer: <@ input.configJSON.EmailSettings.PushNotificationServer @> - PushNotificationContents: <@ input.configJSON.EmailSettings.PushNotificationContents @> - EnableEmailBatching: <@ input.configJSON.EmailSettings.EnableEmailBatching @> - EmailBatchingBufferSize: <@ input.configJSON.EmailSettings.EmailBatchingBufferSize @> - EmailBatchingInterval: <@ input.configJSON.EmailSettings.EmailBatchingInterval @> - SkipServerCertificateVerification: <@ input.configJSON.EmailSettings.SkipServerCertificateVerification @> + EnableSignUpWithEmail: <@ input.configJSON.EmailSettings.EnableSignUpWithEmail | default(true) | tojson @> + EnableSignInWithEmail: <@ input.configJSON.EmailSettings.EnableSignInWithEmail | default(true) | tojson @> + EnableSignInWithUsername: <@ input.configJSON.EmailSettings.EnableSignInWithUsername | default(true) | tojson @> + SendEmailNotifications: <@ input.configJSON.EmailSettings.SendEmailNotifications | default(false) | tojson @> + RequireEmailVerification: <@ input.configJSON.EmailSettings.RequireEmailVerification | default(false) | tojson @> + FeedbackName: "<@ input.configJSON.EmailSettings.FeedbackName | default('') @>" + FeedbackEmail: "<@ input.configJSON.EmailSettings.FeedbackEmail | default('') @>" + FeedbackOrganization: "<@ input.configJSON.EmailSettings.FeedbackOrganization | default('') @>" + SMTPUsername: "<@ input.configJSON.EmailSettings.SMTPUsername | default('') @>" + SMTPPassword: "<@ input.configJSON.EmailSettings.SMTPPassword | default('') @>" + EnableSMTPAuth: "<@ input.configJSON.EmailSettings.EnableSMTPAuth | default('') @>" + SMTPServer: "<@ input.configJSON.EmailSettings.SMTPServer | default('') @>" + SMTPPort: "<@ input.configJSON.EmailSettings.SMTPPort | default('') @>" + ConnectionSecurity: "<@ input.configJSON.EmailSettings.ConnectionSecurity | default('') @>" + InviteSalt: "<@ input.configJSON.EmailSettings.InviteSalt | default('') @>" + SendPushNotifications: <@ input.configJSON.EmailSettings.SendPushNotifications | default(true) | tojson @> + PushNotificationServer: "<@ input.configJSON.EmailSettings.PushNotificationServer | default('https://push-test.mattermost.com') @>" + PushNotificationContents: "<@ input.configJSON.EmailSettings.PushNotificationContents | default('generic') @>" + EnableEmailBatching: <@ input.configJSON.EmailSettings.EnableEmailBatching | default(false) | tojson @> + EmailBatchingBufferSize: <@ input.configJSON.EmailSettings.EmailBatchingBufferSize | default(256) @> + EmailBatchingInterval: <@ input.configJSON.EmailSettings.EmailBatchingInterval | default(30) @> + SkipServerCertificateVerification: <@ input.configJSON.EmailSettings.SkipServerCertificateVerification | default(false) | tojson @> RateLimitSettings: - Enable: <@ input.configJSON.RateLimitSettings.Enable @> - PerSec: <@ input.configJSON.RateLimitSettings.PerSec @> - MaxBurst: <@ input.configJSON.RateLimitSettings.MaxBurst @> - MemoryStoreSize: <@ input.configJSON.RateLimitSettings.MemoryStoreSize @> - VaryByRemoteAddr: <@ input.configJSON.RateLimitSettings.VaryByRemoteAddr @> - VaryByHeader: <@ input.configJSON.RateLimitSettings.VaryByHeader @> + Enable: <@ input.configJSON.RateLimitSettings.Enable | default(false) | tojson @> + PerSec: <@ input.configJSON.RateLimitSettings.PerSec | default(10) @> + MaxBurst: <@ input.configJSON.RateLimitSettings.MaxBurst | default(100) @> + MemoryStoreSize: <@ input.configJSON.RateLimitSettings.MemoryStoreSize | default(10000) @> + VaryByRemoteAddr: <@ input.configJSON.RateLimitSettings.VaryByRemoteAddr | default(true) | tojson @> + VaryByHeader: "<@ input.configJSON.RateLimitSettings.VaryByHeader | default('') @>" PrivacySettings: - ShowEmailAddress: <@ input.configJSON.PrivacySettings.ShowEmailAddress @> - ShowFullName: <@ input.configJSON.PrivacySettings.ShowFullName @> + ShowEmailAddress: <@ input.configJSON.PrivacySettings.ShowEmailAddress | default(true) | tojson @> + ShowFullName: <@ input.configJSON.PrivacySettings.ShowFullName | default(true) | tojson @> SupportSettings: - TermsOfServiceLink: <@ input.configJSON.SupportSettings.TermsOfServiceLink @> - PrivacyPolicyLink: <@ input.configJSON.SupportSettings.PrivacyPolicyLink @> - AboutLink: <@ input.configJSON.SupportSettings.AboutLink @> - HelpLink: <@ input.configJSON.SupportSettings.HelpLink @> - ReportAProblemLink: <@ input.configJSON.SupportSettings.ReportAProblemLink @> - SupportEmail: <@ input.configJSON.SupportSettings.SupportEmail @> + TermsOfServiceLink: "<@ input.configJSON.SupportSettings.TermsOfServiceLink | default('https://about.mattermost.com/default-terms/') @>" + PrivacyPolicyLink: "<@ input.configJSON.SupportSettings.PrivacyPolicyLink | default('https://about.mattermost.com/default-privacy-policy/') @>" + AboutLink: "<@ input.configJSON.SupportSettings.AboutLink | default('https://about.mattermost.com/default-about/') @>" + HelpLink: "<@ input.configJSON.SupportSettings.HelpLink | default('https://about.mattermost.com/default-help/') @>" + ReportAProblemLink: "<@ input.configJSON.SupportSettings.ReportAProblemLink | default('https://about.mattermost.com/default-report-a-problem/') @>" + SupportEmail: "<@ input.configJSON.SupportSettings.SupportEmail | default('feedback@mattermost.com') @>" AnnouncementSettings: - EnableBanner: <@ input.configJSON.AnnouncementSettings.EnableBanner @> - BannerText: <@ input.configJSON.AnnouncementSettings.BannerText @> - BannerColor: <@ input.configJSON.AnnouncementSettings.BannerColor @> - BannerTextColor: <@ input.configJSON.AnnouncementSettings.BannerTextColor @> - AllowBannerDismissal: <@ input.configJSON.AnnouncementSettings.AllowBannerDismissal @> + EnableBanner: <@ input.configJSON.AnnouncementSettings.EnableBanner | default(false) | tojson @> + BannerText: "<@ input.configJSON.AnnouncementSettings.BannerText | default('') @>" + BannerColor: "<@ input.configJSON.AnnouncementSettings.BannerColor | default('#f2a93b') @>" + BannerTextColor: "<@ input.configJSON.AnnouncementSettings.BannerTextColor | default('#333333') @>" + AllowBannerDismissal: <@ input.configJSON.AnnouncementSettings.AllowBannerDismissal | default(true) | tojson @> GitLabSettings: - Enable: <@ input.configJSON.GitLabSettings.Enable @> - Secret: <@ input.configJSON.GitLabSettings.Secret @> - Id: <@ input.configJSON.GitLabSettings.Id @> - Scope: <@ input.configJSON.GitLabSettings.Scope @> - AuthEndpoint: <@ input.configJSON.GitLabSettings.AuthEndpoint @> - TokenEndpoint: <@ input.configJSON.GitLabSettings.TokenEndpoint @> - UserApiEndpoint: <@ input.configJSON.GitLabSettings.UserApiEndpoint @> + Enable: <@ input.configJSON.GitLabSettings.Enable | default(false) | tojson @> + Secret: "<@ input.configJSON.GitLabSettings.Secret | default('') @>" + Id: "<@ input.configJSON.GitLabSettings.Id | default('') @>" + Scope: "<@ input.configJSON.GitLabSettings.Scope | default('') @>" + AuthEndpoint: "<@ input.configJSON.GitLabSettings.AuthEndpoint | default('') @>" + TokenEndpoint: "<@ input.configJSON.GitLabSettings.TokenEndpoint | default('') @>" + UserApiEndpoint: "<@ input.configJSON.GitLabSettings.UserApiEndpoint | default('') @>" LocalizationSettings: - DefaultServerLocale: <@ input.configJSON.LocalizationSettings.DefaultServerLocale @> - DefaultClientLocale: <@ input.configJSON.LocalizationSettings.DefaultClientLocale @> - AvailableLocales: <@ input.configJSON.LocalizationSettings.AvailableLocales @> + DefaultServerLocale: "<@ input.configJSON.LocalizationSettings.DefaultServerLocale | default('en') @>" + DefaultClientLocale: "<@ input.configJSON.LocalizationSettings.DefaultClientLocale | default('en') @>" + AvailableLocales: "<@ input.configJSON.LocalizationSettings.AvailableLocales | default('') @>" NativeAppSettings: - AppDownloadLink: <@ input.configJSON.NativeAppSettings.AppDownloadLink @> - AndroidAppDownloadLink: <@ input.configJSON.NativeAppSettings.AndroidAppDownloadLink @> - IosAppDownloadLink: <@ input.configJSON.NativeAppSettings.IosAppDownloadLink @> + AppDownloadLink: "<@ input.configJSON.NativeAppSettings.AppDownloadLink | default('https://about.mattermost.com/downloads/') @>" + AndroidAppDownloadLink: "<@ input.configJSON.NativeAppSettings.AndroidAppDownloadLink | default('https://about.mattermost.com/mattermost-android-app/') @>" + IosAppDownloadLink: "<@ input.configJSON.NativeAppSettings.IosAppDownloadLink | default('https://about.mattermost.com/mattermost-ios-app/') @>" AnalyticsSettings: - MaxUsersForStatistics: <@ input.configJSON.AnalyticsSettings.MaxUsersForStatistics @> + MaxUsersForStatistics: <@ input.configJSON.AnalyticsSettings.MaxUsersForStatistics | default(2500) @> WebrtcSettings: - Enable: <@ input.configJSON.WebrtcSettings.Enable @> - GatewayWebsocketUrl: <@ input.configJSON.WebrtcSettings.GatewayWebsocketUrl @> - GatewayAdminUrl: <@ input.configJSON.WebrtcSettings.GatewayAdminUrl @> - GatewayAdminSecret: <@ input.configJSON.WebrtcSettings.GatewayAdminSecret @> - StunURI: <@ input.configJSON.WebrtcSettings.StunURI @> - TurnURI: <@ input.configJSON.WebrtcSettings.TurnURI @> - TurnUsername: <@ input.configJSON.WebrtcSettings.TurnUsername @> - TurnSharedKey: <@ input.configJSON.WebrtcSettings.TurnSharedKey @> + Enable: <@ input.configJSON.WebrtcSettings.Enable | default(false) | tojson @> + GatewayWebsocketUrl: "<@ input.configJSON.WebrtcSettings.GatewayWebsocketUrl | default('') @>" + GatewayAdminUrl: "<@ input.configJSON.WebrtcSettings.GatewayAdminUrl | default('') @>" + GatewayAdminSecret: "<@ input.configJSON.WebrtcSettings.GatewayAdminSecret | default('') @>" + StunURI: "<@ input.configJSON.WebrtcSettings.StunURI | default('') @>" + TurnURI: "<@ input.configJSON.WebrtcSettings.TurnURI | default('') @>" + TurnUsername: "<@ input.configJSON.WebrtcSettings.TurnUsername | default('') @>" + TurnSharedKey: "<@ input.configJSON.WebrtcSettings.TurnSharedKey | default('') @>" DisplaySettings: - CustomUrlSchemes: <@ input.configJSON.DisplaySettings.CustomUrlSchemes @> - ExperimentalTimezone: <@ input.configJSON.DisplaySettings.ExperimentalTimezone @> + CustomUrlSchemes: <@ input.configJSON.DisplaySettings.CustomUrlSchemes | default([]) @> + ExperimentalTimezone: <@ input.configJSON.DisplaySettings.ExperimentalTimezone | default(true) | tojson @> TimezoneSettings: - SupportedTimezonesPath: <@ input.configJSON.TimezoneSettings.SupportedTimezonesPath @> + SupportedTimezonesPath: "<@ input.configJSON.TimezoneSettings.SupportedTimezonesPath | default('timezones.json') @>" PluginSettings: - Enable: <@ input.configJSON.PluginSettings.Enable @> - EnableUploads: <@ input.configJSON.PluginSettings.EnableUploads @> - Directory: <@ input.configJSON.PluginSettings.Directory @> - ClientDirectory: <@ input.configJSON.PluginSettings.ClientDirectory @> - Plugins: <@ input.configJSON.PluginSettings.Plugins @> - PluginStates: <@ input.configJSON.PluginSettings.PluginStates @> + Enable: <@ input.configJSON.PluginSettings.Enable | default(true) @> + EnableUploads: <@ input.configJSON.PluginSettings.EnableUploads | default(true) | tojson @> + Directory: "<@ input.configJSON.PluginSettings.Directory | default('./plugins') @>" + ClientDirectory: "<@ input.configJSON.PluginSettings.ClientDirectory | default('./client/plugins') @>" + Plugins: <@ input.configJSON.PluginSettings.Plugins | default({}) @> + PluginStates: <@ input.configJSON.PluginSettings.PluginStates | default({}) @> output: goTemplate: | host: "{{ index .Values.ingress.hosts 0 }}" version: "{{ .Values.image.tag }}" - name: input-parameters - from: "{{inputs.artifacts.additional-parameters}}" - - name: configuration - raw: - data: | - prefix: additionalinput - - - - name: fill-input-in-module-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.create-helm-args.outputs.artifacts.render}}" - - name: input-parameters - from: "{{steps.fill-default-input.outputs.artifacts.render}}" - - name: configuration - raw: - data: | - prefix: input - - - - name: fill-psql - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-input-in-module-args.outputs.artifacts.render}}" - - name: input-parameters - from: "{{steps.install-db.outputs.artifacts.postgresql}}" - - name: configuration - raw: - data: | - prefix: psql - - - - name: fill-user - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-psql.outputs.artifacts.render}}" - - name: input-parameters - from: "{{steps.create-user.outputs.artifacts.user}}" + from: "{{steps.prepare-parameters.outputs.artifacts.merged}}" - name: configuration raw: data: | - prefix: user - - - - name: fill-db - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-user.outputs.artifacts.render}}" - - name: input-parameters - from: "{{steps.create-db.outputs.artifacts.database}}" - - name: configuration - raw: - data: | - prefix: db - - name: helm-install capact-action: helm.install @@ -714,6 +458,27 @@ spec: arguments: artifacts: - name: input-parameters - from: "{{steps.fill-db.outputs.artifacts.render}}" + from: "{{steps.create-helm-args.outputs.artifacts.render}}" - name: runner-context from: "{{workflow.outputs.artifacts.runner-context}}" + + - name: prepare-parameters + inputs: + artifacts: + - name: input-parameters + path: /yamls/input.yaml + - name: additional-parameters + path: /yamls/additionalinput.yaml + optional: true + - name: psql + path: /yamls/psql.yaml + - name: db + path: /yamls/db.yaml + - name: user + path: /yamls/user.yaml + container: + image: ghcr.io/capactio/pr/infra/merger:PR-428 + outputs: + artifacts: + - name: merged + path: /merged.yaml diff --git a/manifests/implementation/postgresql/change-password.yaml b/manifests/implementation/postgresql/change-password.yaml index da0a5cb3..a4bed76e 100644 --- a/manifests/implementation/postgresql/change-password.yaml +++ b/manifests/implementation/postgresql/change-password.yaml @@ -57,6 +57,17 @@ spec: - name: user from: "{{steps.change-password.outputs.artifacts.user}}" steps: + - - name: prepare-parameters + template: prepare-parameters + arguments: + artifacts: + - name: input-parameters + from: "{{inputs.artifacts.input-parameters}}" + - name: user + from: "{{workflow.outputs.artifacts.user}}" + - name: postgresql + from: "{{workflow.outputs.artifacts.postgresql}}" + - - name: render-change-password-script capact-action: jinja2.template arguments: @@ -75,34 +86,10 @@ spec: EOF sync - name: input-parameters - from: "{{workflow.outputs.artifacts.postgresql}}" - - name: configuration - raw: - data: "prefix: postgresql" - - - - name: fill-params-from-user - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.render-change-password-script.outputs.artifacts.render}}" - - name: input-parameters - from: "{{workflow.outputs.artifacts.user}}" - - name: configuration - raw: - data: "prefix: user" - - - - name: fill-params-from-user-input - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-params-from-user.outputs.artifacts.render}}" - - name: input-parameters - from: "{{inputs.artifacts.input-parameters}}" + from: "{{steps.prepare-parameters.outputs.artifacts.merged}}" - name: configuration raw: - data: "prefix: input" + data: - - name: change-password template: change-password @@ -112,7 +99,7 @@ spec: arguments: artifacts: - name: script - from: "{{steps.fill-params-from-user-input.outputs.artifacts.render}}" + from: "{{steps.render-change-password-script.outputs.artifacts.render}}" - name: change-password inputs: @@ -127,3 +114,19 @@ spec: artifacts: - name: user path: /user.yml + + - name: prepare-parameters + inputs: + artifacts: + - name: input-parameters + path: /yamls/input.yaml + - name: user + path: /yamls/user.yaml + - name: postgresql + path: /yamls/postgresql.yaml + container: + image: ghcr.io/capactio/pr/infra/merger:PR-428 + outputs: + artifacts: + - name: merged + path: /merged.yaml diff --git a/manifests/implementation/rocketchat/install.yaml b/manifests/implementation/rocketchat/install.yaml index b278d207..7e8e69d1 100644 --- a/manifests/implementation/rocketchat/install.yaml +++ b/manifests/implementation/rocketchat/install.yaml @@ -98,49 +98,17 @@ spec: username: "mongo" defaultDBName: "mongo" - - - name: render-mongodb-connection-url - capact-action: jinja2.template - arguments: - artifacts: - - name: template - raw: - data: | - <%- set ns = namespace(replicas="") %> - <% for r in mongo.replicas -%> - <%- set ns.replicas = ns.replicas + r %> - <% if not loop.last -%> - <%- set ns.replicas = ns.replicas + "," %> - <%- endif %> - <%- endfor %> - mongoURL: "mongodb://<@ mongo.user.username @>:<@ mongo.user.password@>@<@ ns.replicas @>/<@ mongo.defaultDBName @>?replicaSet=<@ mongo.replicaSetName @>" - oplogURL: "mongodb://root:<@ mongo.rootPassword@>@<@ ns.replicas @>/local?replicaSet=<@ mongo.replicaSetName @>&authSource=admin" - - name: input-parameters - from: "{{steps.install-db.outputs.artifacts.mongodb}}" - - name: configuration - raw: - data: | - prefix: mongo - - - - name: fill-default-input - capact-action: jinja2.template + - - name: prepare-parameters + template: prepare-parameters arguments: artifacts: - name: input-parameters from: "{{inputs.artifacts.input-parameters}}" - - name: template - raw: - data: | - host: <@ input.host @> - smtp: - enabled: <@ input.smtp.enabled | default(false) | tojson @> - username: "<@ input.smtp.username | default('') @>" - password: "<@ input.smtp.password | default('') @>" - host: "<@ input.smtp.host | default('') @>" - port: <@ input.smtp.port | default(587) @> - - name: configuration - raw: - data: | - prefix: input + - name: additional-parameters + from: "{{inputs.artifacts.additional-parameters}}" + optional: true + - name: mongo + from: "{{steps.install-db.outputs.artifacts.mongodb}}" - - name: render-helm-args capact-action: jinja2.template @@ -156,8 +124,15 @@ spec: values: mongodb: enabled: false - externalMongodbUrl: <@ mongo.mongoURL @> - externalMongodbOplogUrl: <@ mongo.oplogURL @> + <%- set ns = namespace(replicas="") %> + <% for r in mongo.replicas -%> + <%- set ns.replicas = ns.replicas + r %> + <% if not loop.last -%> + <%- set ns.replicas = ns.replicas + "," %> + <%- endif %> + <%- endfor %> + externalMongodbUrl: "mongodb://<@ mongo.user.username @>:<@ mongo.user.password@>@<@ ns.replicas @>/<@ mongo.defaultDBName @>?replicaSet=<@ mongo.replicaSetName @>" + externalMongodbOplogUrl: "mongodb://root:<@ mongo.rootPassword@>@<@ ns.replicas @>/local?replicaSet=<@ mongo.replicaSetName @>&authSource=admin" ingress: enabled: <@ additionalinput.ingress.enabled | default(true) | tojson @> @@ -181,11 +156,11 @@ spec: minAvailable: <@ additionalinput.minAvailable | default(1) @> smtp: - enabled: <@ input.smtp.enabled @> - username: <@ input.smtp.username @> - password: <@ input.smtp.password @> - host: <@ input.smtp.host @> - port: <@ input.smtp.port @> + enabled: <@ input.smtp.enabled | default(false) | tojson @> + username: "<@ input.smtp.username | default('') @>" + password: "<@ input.smtp.password | default('') @>" + host: "<@ input.smtp.host | default('') @>" + port: <@ input.smtp.port | default(587) @> extraEnv: | - name: EXIT_UNHANDLEDPROMISEREJECTION @@ -267,37 +242,10 @@ spec: host: "{{ .Values.host }}" version: "{{ .Values.image.tag }}" - name: input-parameters - from: "{{inputs.artifacts.additional-parameters}}" + from: "{{steps.prepare-parameters.outputs.artifacts.merged}}" - name: configuration raw: data: | - prefix: additionalinput - - - - name: fill-input-in-module-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.render-helm-args.outputs.artifacts.render}}" - - name: input-parameters - from: "{{steps.fill-default-input.outputs.artifacts.render}}" - - name: configuration - raw: - data: | - prefix: input - - - - name: fill-input-params-in-helm-args - capact-action: jinja2.template - arguments: - artifacts: - - name: template - from: "{{steps.fill-input-in-module-args.outputs.artifacts.render}}" - - name: input-parameters - from: "{{steps.render-mongodb-connection-url.outputs.artifacts.render}}" - - name: configuration - raw: - data: | - prefix: mongo - - name: helm-install capact-action: helm.install @@ -309,6 +257,23 @@ spec: arguments: artifacts: - name: input-parameters - from: "{{steps.fill-input-params-in-helm-args.outputs.artifacts.render}}" + from: "{{steps.render-helm-args.outputs.artifacts.render}}" - name: runner-context from: "{{workflow.outputs.artifacts.runner-context}}" + + - name: prepare-parameters + inputs: + artifacts: + - name: input-parameters + path: /yamls/input.yaml + - name: additional-parameters + path: /yamls/additionalInput.yaml + optional: true + - name: mongo + path: /yamls/mongo.yaml + container: + image: ghcr.io/capactio/pr/infra/merger:PR-428 + outputs: + artifacts: + - name: merged + path: /merged.yaml