discourse k8s #29

Supports: kubernetes

Deploy this charm on Kubernetes with the CLI. Find out how by reading the docs.

Description

Discourse is the 100% open source discussion platform built for the next decade of the Internet. Use it as a mailing list, discussion forum, long-form chat room and more! https://www.discourse.org


Discourse Operator

A juju charm deploying and managing Discourse on Kubernetes, configurable to use a PostgreSQL backend.

Overview

Supported features include SAML authentication, scaling to multiple pods and the storage of files and images in S3. This charm also offers seamless Discourse version upgrades, initiated by switching to an image with a newer version of Discourse than the one currently deployed.

Usage

For details on using Kubernetes with Juju see here, and for details on using Juju with MicroK8s for easy local testing see here.

To deploy into a Juju K8s model:

juju deploy postgresql-k8s
juju deploy redis-k8s
juju deploy discourse-k8s
juju relate discourse-k8s postgresql-k8s:db-admin
juju relate discourse-k8s redis-k8s

Once the deployment is completed and the "discourse" workload state in juju status has changed to "active" you can visit http://{$discourse_ip}:3000 in a browser and log in to your Discourse instance.

For further details, see here.


Configuration

cors_origin
(string) Cors origin string to use, defaults to '*'
*
db_name
(string) PostgreSQL database name. Defaults to Juju Application name.
developer_emails
(string) Comma delimited list of email addresses that should have developer level access
user@foo.internal
discourse_image
(string) Discourse image to use
discoursecharmers/discourse:v2.6.1
enable_cors
(boolean) Enable Cross-origin Resource Sharing (CORS) at the application level (required for SSO)
True
external_hostname
(string) External hostname this discourse instance should respond to
foo.internal
force_saml_login
(boolean) Force SAML login (full screen, no local database logins)
image_pass
(string) Private registry password
image_user
(string) Private registry username
max_body_size
(int) Max allowed body-size (for file uploads) in megabytes, set to 0 to disable limits
20
redis_host
(string) Redis host name / IP
saml_sync_groups
(string) Comma-separated list of groups to sync from SAML provider.
saml_target_url
(string) SAML authentication target url
smtp_address
(string) Hostname / IP that should be used to send SMTP mail
127.0.0.1
smtp_authentication
(string) Type of smtp authentication to use
none
smtp_domain
(string) Hostname that email sent by this discourse should appear to come from
foo.internal
smtp_openssl_verify_mode
(string) Should discourse verify SSL certs
none
smtp_password
(string) Password to use when sending mail via SMTP
smtp_port
(int) Port to use when connecting to SMTP server
587
smtp_username
(string) Username to use when sending mail via SMTP
throttle_level
(string) Throttle level - blocks excessive usage by ip. Valid values: none, permissive, strict
none
tls_secret_name
(string) The name of the K8s secret to be associated with the ingress resource.