mirror of
https://github.com/hanzoai/team.git
synced 2026-09-30 01:57:35 +00:00
* docs: restore missing e2e/mobile push-notification images These developer-docs images existed in mattermost-developer-documentation's static assets but were never copied into the monorepo during the docs migration, leaving broken image links in e2e-cheatsheets.md and the mobile push-notification pages. Also fixes e2e-cheatsheets.md's image paths, which used Hugo-style relative paths that don't resolve under Docusaurus. * docs: fix broken outgoing webhooks screenshot path The image reference used an absolute path left over from the old Hugo site (/integrate/faq/images/...), which doesn't resolve under Docusaurus since no matching file exists under site/static. The image already lives co-located in docs/develop/integrate/faq/images/, so point to it with a relative path instead. * docs: delete Azure AKS deployment guide page The page's screenshots never made it into the monorepo during migration and don't exist under any known source (docs, docs-experimental, or mattermost-developer-documentation). Remove the page rather than ship broken images; drop it from the PDF book manifest and repoint its legacy redirect to the general Kubernetes deployment guide accordingly. * docs: fix heading levels on Kubernetes deploy guides deploy-k8s.mdx and deploy-k8s-oke.mdx used H1 (#) for their top-level in-page sections (Installation steps, Common Errors, etc.) instead of H2. Docusaurus' contentTitle extraction grabs the first H1 it finds anywhere in the doc, which stole the page title slot from the actual frontmatter title, so no title rendered at the top of the page. The flat H1/H2 mix also meant TOC entries for install steps rendered as a flat list at the page's TOC root instead of nested under their section, which made the TOC sidebar overflow/misrender on narrower/zoomed viewports. Bump every heading in both files one level (H1->H2->H3->H4) so the page title renders and the TOC nests correctly. * docs: fix TOC/layout horizontal overflow on wide code blocks The Kubernetes prerequisites page's TOC sidebar overflowed off-screen at higher browser zoom levels. Root cause: `.docMainContainer` has `max-width: none !important` (intentional, so OpenAPI's 2-column layout gets full width), but that removes the container's only width ceiling. Combined with the default flexbox `min-width: auto` on both the main container (in its outer flex row with the left sidebar) and the doc content column (in the inner content/TOC row), a sufficiently wide code block's intrinsic min-content size could drag the whole row wider than the viewport instead of scrolling within itself. Add `min-width: 0` at both flex levels so `overflow-x: auto` on code blocks and tables actually contains overflow locally, and make the responsive table-scroll CSS apply unconditionally instead of only under the 996px breakpoint (zoom shrinks effective layout width without re-triggering the media query). Also shorten the illustrative base64 example values in the AWS Aurora Postgres secret example, which were long enough on their own to be a secondary contributor to the same overflow. * docs: restore additional missing images found via full static-resolution scan Docusaurus's build-time image validator doesn't reliably warn on every broken absolute-path reference, so npm run build alone missed these. A direct scan of every image reference in docs/develop and docs/main against the filesystem turned up 38 more genuinely missing images (desktop architecture, VPN/Pritunl setup, docker dev environment, i18n-extract tooling, MVP program, onboarding, schema migration guide, plugin best-practices, and interactive-message screenshots) that were never copied over from mattermost-developer-documentation during migration. Two references (interactive-dialog-date.png and interactive-dialog-datetime.png) remain unresolved because no source image exists anywhere in the legacy repo. * docs: fix broken cross-links after .md to .mdx migration Several Calls admin guide pages and the air-gapped quick-start runbook were renamed from .md to .mdx during migration, but their internal cross-links still pointed at the old .md filenames (and, for setup-tls, the old flattened path), so Docusaurus couldn't resolve them. Found via a full scan of every relative markdown link under docs/main and docs/develop against the filesystem, since the build's own "couldn't be resolved" warnings don't reliably surface every broken link. * docs: remove broken date/datetime element screenshots These screenshots were never captured before migration (broken on the currently live docs.mattermost.com too), and no source image exists anywhere in the legacy repos to restore. Remove the broken references rather than leave a dead image link. * docs: move newly-restored desktop architecture images to static/ These 4 images were restored co-located next to their content files, matching an existing (if inconsistent) convention elsewhere in docs/develop. Since these are new additions rather than pre-existing working references, move them to docs/site/static/ instead of perpetuating the co-located pattern. Repo-wide normalization of the other ~70 existing co-located image references is left for a separate follow-up PR. * docs: remove deleted AKS page from sidebar generator's manual grouping master (#37402) fixed the sidebar generator's SRC path but this branch's deletion of deploy-k8s-aks.mdx still left a dangling reference in the Deployment Guide's manual Kubernetes grouping, which fails Docusaurus's sidebar-doc-id validation at build time. --------- Co-authored-by: Hanzo Dev <[email protected]>
163 lines
7.0 KiB
Plaintext
163 lines
7.0 KiB
Plaintext
---
|
|
title: "Deploy Mattermost on Oracle Kubernetes Engine (OKE)"
|
|
sidebar_label: "Deploy on OKE (Oracle)"
|
|
---
|
|
You can use the supported [Oracle Cloud Marketplace listing](https://cloudmarketplace.oracle.com/marketplace/en_US/listing/188386963) to install Mattermost Enterprise Edition on Oracle Cloud Infrastructure (OCI) using Oracle Kubernetes Engine (OKE).
|
|
|
|
Before deploying, make sure you have the following:
|
|
|
|
- **Oracle Cloud Account** with appropriate permissions
|
|
- **Permissions** to create/manage OKE, Compute, Networking, Database, Resource Manager, and Secrets
|
|
- **Compartment** for deployment
|
|
- **Domain Name and TLS Certificate** for secure access
|
|
- **Mattermost License Key** (Trial or Enterprise)
|
|
- **Node Capacity**: At least 2 OKE nodes for high availability when deploying for 100 users or more
|
|
|
|
## Installation steps
|
|
|
|
The installation process includes deploying Mattermost and configuring the necessary components.
|
|
|
|
### Step 1: Start from Oracle Cloud Marketplace
|
|
|
|
Go to the Mattermost listing and select **Launch Stack**.
|
|
|
|

|
|
|
|
### Step 2: Stack Information
|
|
|
|
On the **Create stack** page, review the information, and then set the name, compartment, and Terraform version.
|
|
|
|

|
|
|
|
### Step 3: Configure Variables
|
|
|
|
Set all the details for your Mattermost deployment. Each section is important for a successful and secure installation.
|
|
|
|
#### OKE Cluster Configuration
|
|
|
|
- **Create new OKE Cluster:**
|
|
- Check this if you want to create a new Kubernetes cluster.
|
|
- If you already have a cluster, you can uncheck and select your existing one.
|
|
- **Kubernetes Version:**
|
|
- Choose the latest stable version unless you have a specific requirement.
|
|
- **Node Pool Shape (Flex/Fixed):**
|
|
- Select a shape that fits your workload. For production, use at least 2 OCPUs and 16GB RAM per node.
|
|
- **Number of Nodes:**
|
|
- Minimum 2 for high availability. For testing, 1 is enough. For production environments, always use at least 2 nodes and enable high availability.
|
|
- **Operating System:**
|
|
- Oracle Linux 8 is recommended for best compatibility.
|
|
|
|
#### OKE Network Configuration
|
|
|
|
- **Worker Node Visibility:**
|
|
- Private is more secure for production. Public is easier for testing. For production environments, use private nodes and restrict access to the API endpoint.
|
|
- **API Endpoint Visibility:**
|
|
- Public allows you to manage the cluster from anywhere. Private is more secure but requires VPN or bastion.
|
|
- **Create new Virtual Cloud Network (VCN):**
|
|
- Check this to create a new network, or uncheck to use an existing one.
|
|
- **VCN CIDR Block:**
|
|
- Set a unique network range (e.g., `10.20.0.0/16`). Avoid overlap with other networks.
|
|
|
|
#### OKE Worker Nodes
|
|
|
|
- **Enable Cluster Autoscaler:**
|
|
- Allows the cluster to automatically add or remove nodes based on usage.
|
|
- **Initial/Min Number of Worker Nodes:**
|
|
- Set the minimum number of nodes. For high availability, use at least 2. Autoscaling helps manage costs and performance automatically.
|
|
- **Node Shape:**
|
|
- Choose a shape (e.g., `VM.Standard.E4.Flex`) and set OCPUs and memory.
|
|
- **Auto Generate SSH Key:**
|
|
- Enable this if you do not have your own SSH key for node access.
|
|
- **Image OS and Version:**
|
|
- Oracle Linux 8 is recommended.
|
|
|
|
#### PostgreSQL Configuration
|
|
|
|
- **Admin Username:**
|
|
- The main user for your PostgreSQL database (e.g., `admin1`).
|
|
- **Password Type:**
|
|
- `PLAIN_TEXT` for testing, `SECRET` for production (uses Oracle Vault). Always use Oracle Vault for production passwords.
|
|
- **Password/Secret Name:**
|
|
- Enter a strong password or the name of a secret in Oracle Vault.
|
|
- **Database Password:**
|
|
- Required if not using a secret.
|
|
|
|
#### General Configuration
|
|
|
|
- **Cluster Name Prefix:**
|
|
- Used to identify all resources (e.g., `mm-oke`).
|
|
- **Show Advanced Options:**
|
|
- Enable for more control (encryption keys, SSH keys, etc.). Use advanced options if you need custom encryption or want to manage your own SSH keys.
|
|
- **PostgreSQL Deployment Strategy:**
|
|
- Use "Database For PostgreSQL" for managed service.
|
|
- **Object Storage for File Storage:**
|
|
- Enable to use OCI Object Storage for Mattermost files.
|
|
- **Mattermost Version:**
|
|
- Use the latest stable version.
|
|
- **Namespace:**
|
|
- Default is `mattermost`.
|
|
- **License Key:**
|
|
- Upload or paste your Mattermost license.
|
|
- **Helm Repository:**
|
|
- Default is `https://helm.mattermost.com`.
|
|
|
|
### Step 4: Review and Apply
|
|
|
|
Check all your settings and select **Create** to start the deployment. Monitor the Resource Manager job and logs.
|
|
|
|

|
|
|
|
### Step 5: After Deployment
|
|
|
|
When the job is finished, your OKE cluster, PostgreSQL database, and Mattermost will be ready. To find the Mattermost web address, run:
|
|
|
|
``` sh
|
|
kubectl -n mattermost-operator get ingress
|
|
```
|
|
|
|
Copy the address and create a DNS record for your domain. Open your browser and go to your Mattermost URL.
|
|
|
|
### Step 6: Upgrade Mattermost
|
|
|
|
To upgrade your Mattermost installation:
|
|
|
|
1. Access your OKE cluster through the Oracle Cloud Console
|
|
2. Navigate to the Mattermost operator deployment
|
|
3. Update the Mattermost version in the configuration
|
|
4. Apply the changes and wait for the upgrade to complete
|
|
|
|
<Tip>
|
|
|
|
**Tips for Success**
|
|
|
|
- Make sure you have all the permissions you need before you start.
|
|
- Use Oracle Vault to store passwords and sensitive data.
|
|
- Use private nodes and secure your network for production.
|
|
- Always monitor logs from the Resource Manager and pods using `kubectl logs` for more specific error messages.
|
|
- For more details, see the official [OCI Database with PostgreSQL documentation](https://www.oracle.com/cloud/postgresql/) and [OKE documentation](https://docs.oracle.com/en-us/iaas/Content/ContEng/Concepts/contengoverview.htm).
|
|
|
|
</Tip>
|
|
|
|
## Common Errors and How to Avoid Them
|
|
|
|
- **Error: Kubernetes API not reachable**
|
|
- *Cause:* API endpoint is private and you're not connected to the VCN via VPN or Bastion.
|
|
- *Solution:* Ensure you have access to the network or make the endpoint public for testing.
|
|
- **Error: Stack creation fails with missing permissions**
|
|
- *Cause:* IAM policies are not set properly for the user or group.
|
|
- *Solution:* Ensure you have permissions for Resource Manager, OKE, Networking, and Secrets.
|
|
- **Error: No ingress returned by kubectl**
|
|
- *Cause:* Mattermost Ingress might not be ready or was misconfigured.
|
|
- *Solution:* Check with `kubectl describe ingress` and validate DNS, TLS, and Helm values.
|
|
- **Error: PostgreSQL password rejected**
|
|
- *Cause:* Password not set or mismatched with Oracle Vault.
|
|
- *Solution:* Re-check the password value or Vault secret used during setup.
|
|
|
|
<Important>
|
|
|
|
You are responsible for Oracle Cloud Infrastructure costs for the resources you create. Oracle Cloud credits cannot be used to buy a Mattermost license.
|
|
|
|
</Important>
|
|
|
|
Learn more about managing your Mattermost server by visiting the [Administration Guide](/administration-guide/administration-guide-index).
|