Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions content/en/docs/private-platform/quickstart/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
title: "Private Mendix Platform Quick Start Guide"
url: /private-mendix-platform/quickstart/
description: "Documents the installation and upgrade process for the Private Mendix Platform."
weight: 20
no_list: false
description_list: true
aliases:
- /private-mendix-platform-quickstart/
---

## Introduction

This document provides a comprehensive guide for installing Private Mendix Platform, along with its optional components, in your own Kubernetes environment.

Private Mendix Platform supports using secret storage. If required, you can store some configuration in a secret vault (for example, AWS, Azure, or Hashicorp) without setting up a storage plan, database plan, PCLM admin and Mendix admin info in the Private Mendix Platform installer.

{{% alert color="info" %}}
Using a secret storage incorrectly may reduce the security of your app. Consult your secrets store provider to ensure that it is set up securely for your production environment.
{{% /alert %}}

### Overview

Before you start the installation process, review the following considerations:

#### FIPS Compliance

Private Mendix Platform can run with FIPS-compliant encryption across the entire Platform, including Mendix Runtime, Private Mendix Platofrm itself, Mendix Operator, and Studio Pro.

#### Installation Mode

You can perform the installation in interactive or non-interactive mode. In [interactive mode](/private-mendix-platform/interactive-installation/), you manually install Private Mendix Platform components. In [non-interactive](/private-mendix-platform/noninteractive-installation/) mode, you use commands to automatically install Private Mendix Platform components.

#### Installation Order

Start the process by installing the Mendix Operator before you install the components. Components are dependent on the Operator. Because of that, if you try to install a component without installing the Operator, the installation process fails and displays an error message.

#### Installing Components

Only the Private Cloud License Manager (PCLM) component is required. All other components are optional.

The following components must be installed in the same namespace as Private Mendix Platform:

* PCLM
* Svix
* Maia
* Private Cloud components

Other components, such as the Build agent and PDF DocGen module, can be installed in any namespace.

If you add any components after installing Private Mendix Platform, you must re-run the Platform installer. For more information, see [Adding Additional Components After Installing the Private Mendix Platform](#adding-components).

### Prerequisites {#prerequisites}

Private Mendix Platform depends on Mendix on Kubernetes for the installation and deployment of Mendix apps.

Before starting the installation process, make sure that you have all the necessary prerequisites:

* A Kubernetes instance where the target namespace has already been created. For more information, see [Supported Providers: Supported Versions](/developerportal/deploy/private-cloud-supported-environments/#supported-versions).
* A database. For more information, see [Supported Providers: Databases](https://docs.mendix.com/developerportal/deploy/private-cloud-supported-environments/#databases).
* File storage. For more information, see [Supported Providers: File Storage](/developerportal/deploy/private-cloud-supported-environments/#file-storage).
* A registry. For more information, see [Supported Providers: Container Registries](/developerportal/deploy/private-cloud-supported-environments/#container-registries).
* A domain.
* For the PCLM component:

* Mendix Operator in version 2.21.0 or above
* A dedicated Postgres or SQLServer database server.

* Optionally, if your Private Mendix Platform app requires its own certificate: a TLS certificate with HTTPS support.
* An environment to run installer tools with the following requirements:

* A kubeconfig file with administrator privileges for your Kubernetes or OpenShift platform
* A command line terminal that supports the console API and mouse interactions. In Windows, this can be PowerShell or the Windows Command Prompt.
* For OpenShift clusters, OpenShift CLI. For more information, see [Getting started with the CLI](https://docs.openshift.com/container-platform/4.1/cli_reference/getting-started-cli.html).
* Kubectl installed if you are deploying to another Kubernetes platform. For more information, see [Install and Set Up kubectl](https://kubernetes.io/docs/tasks/tools/).

* Optionally, if you plan to install the Svix component:

* An existing PostgreSQL database instance.
* An optional Redis server version 6.2.0 or higher, for the task queue and cache. Using Redis is recommended for high availability, where you expect a high volume of webhook calls, or if you have multiple Svix servers. As a best practice, enable persistence in Redis so that tasks are persisted across Redis server restarts and upgrades.

* If you plan to use the AWS Secret Manager, install an AWS provider at your cluster, as described in [Kubernetes Secrets Store CSI Driver](https://secrets-store-csi-driver.sigs.k8s.io/).
* If you plan to use Azure Key Vault, see [Configuring a Secret Store with Azure Key Vault](/developerportal/deploy/secret-store-credentials/#azure-key-vault).

## Read More


Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
---
title: "Install Private Mendix Platform in Non-Interactive Mode"
linktitle: "Non-Interactive Installation"
url: /private-mendix-platform/noninteractive-installation/
description: "Documents the installation process for Private Mendix Platform in non-interactive (automatic) mode."
weight: 30
---

## Introduction

To support automated namespace installation and configuration, we have provided a non-interactive mode in the configuration tool. In non-interactive mode, you use commands to automatically install Private Mendix Platform components. If you would like to perform a manual installation instead, see [Install Private Mendix Platform in Interactive Mode](/private-mendix-platform/interactive-installation/).

Non-interactive mode supports the following tasks:

* Automated namespace installation, upgrade, and Operator configuration
* Installation and upgrade of components such as Svix, PCLM, and others
* Installation and upgrade of Private Mendix Platform

## Performing the Installation

To install and configure Private Mendix Platform and its components, perform the following steps:

1. Download the release binary from your [Private Mendix Platform download portal](https://privateplatform.mendix.com/). If you do not have access to the download portal, contact your Mendix partner for information.

2. Unzip the release binary to a local folder on your Windows or Linux server. The release binary contains the following files:

* **Tools** - *mx-pclm-cli*, which can be used to manage PCLM
* **helm**, and **helmfile** tools, which are used to deploy and manage Private Mendix Platform charts and Svix charts
* **images** - Private Mendix Platform image, PCLM image, Svix image, test application image
* **Installer** - installer tools
* **mxpc-cli** - installation tools which can be used to manage or configure the Mendix Operator
* **charts** - charts, including Private Mendix Platform charts and Svix charts

{{< figure src="/attachments/private-platform/pmp-binary.png" class="no-border" >}}

3. Upload the images to your private repository in an air-gapped environment by running the following command `./installer init migrate`.
4. Initiate the creation of configuration files for non-interactive installation by running the following commands, where `-n` indicates the namespace:

* `./installer operator configure -n=<Private Mendix Platform namespace>` - To generate a configuration file for the Operator. For more information, see [Operator](#operator).
* `./installer component -n=<Private Mendix Platform namespace>` - To generate configuration files for the components. You can select the component in the configuration tool. For more information, see [Components](#components).
* `./installer platform -n=<Private Mendix Platform namespace>` - To generate a configuration file for the Private Mendix Platform. For more information, see [Private Mendix Platform](#pmp).

5. Fill out the required configuration parameters, and then click **Write Configuration** to generate the file.

{{< figure src="/attachments/private-platform/pmp-install-ni1.png" class="no-border" >}}

6. Apply the configuration by running the following command: `./installer apply-config -f <config-file path>`.

## Configuration File Structure

The configuration file is organized into four main sections:

* **General Settings** – Defines the overall information, such as the namespace name.
* **Operator** – Configures the Mendix Operator, including cluster type, registry, cluster mode, database plan, storage plan, and so on.
* **Components** – Specifies the optional platform components to be enabled or disabled, for example, PCLM, Svix, PDFGen, Build Agent, and Maia. You must specify the configuration for enabled components.
* **Private Platform** – Defines the Mendix Private Platform application settings, including the app URL, database and storage plans, resource limits, runtime configuration, and feature toggles.

### Sample Configuration File

```text
namespace: installertest
mx-privatecloud-license-manager:
enable: true
dbname: pclminstallertest
authMode: static
dbhost: pmp-qa-sgp-postgres-db.csgiuoqgq1ut.ap-southeast-1.rds.amazonaws.com
dbport: "5432"
dbuser: postgres
dbpassword: TempautoxxMendix2000
dbtype: postgres
image: private-cloud.registry.mendix.com/privatecloud-license-manager
image-tag: 0.10.9
operator-user: operatoruser
operator-password: operatorpass
admin-password: adminpass
customerclusterdomain: cluster.local
svix-server:
enable: true
postgres: postgresql://postgres:TempautoxxMendix2000@pmp-qa-sgp-postgres-db.csgiuoqgq1ut.ap-southeast-1.rds.amazonaws.com/svixinstallertest
image:
registry: docker.io
name: svix/svix-server
tag: v1.95.1
maia-appgen:
enable: true
image:
registry: 216906236208.dkr.ecr.eu-central-1.amazonaws.com
name: maia-appgen
tag: 0.39.1
env:
- name: MXASSIST_COPILOT_MXID3_URL
value: dafdaf/oidc/
ingress:
enable: false
mx-privatecloud:
enable: true
image:
registry: "216906236208.dkr.ecr.eu-central-1.amazonaws.com"
nats:
server_addr: "nats://my-nats.installertest:4222"
authenticator:
database:
host: "mx-privatecloud.csgiuoqgq1ut.ap-southeast-1.rds.amazonaws.com"
port: "5432"
name: "authenticatordaisy"
user: "authuserdaisy"
password: "def"
collector:
database:
host: "mx-privatecloud.csgiuoqgq1ut.ap-southeast-1.rds.amazonaws.com"
port: "5432"
name: "collectordaisy"
user: "colluserdaisy"
password: "abc"
interactor_bridge:
ingress:
enable: false
mx-private-document-generation:
enable: true
namespace: "abc2"
image:
registry: "private-cloud.registry.mendix.com"
name: "mendix/document-generation-service"
tag: "1.0.0"
maia-llm-gateway:
image:
registry: autoinfraazure.azurecr.io
name: maia-llm-gateway
tag: 0.13.2
enable: true
env:
- name: MXASSIST_COPILOT_MXID3_URL
value: https://md.mxplatform.net/oidc/
ingress:
enable: true
hostName: maia-appgen-llm-azure.mxplatform.net
mxplatform-kube-agent:
enable: true
namespace: "abc2"
image:
registry: "216906236208.dkr.ecr.eu-central-1.amazonaws.com"
name: "mxplatform-kube-agent"
tag: "1.18.0"
mxplatform:
enable: true
name: mxplatform
kubeAgentNamespace: abc2 # specify the kubeagent namespace
maiaEnabled: true # if you install maia appgen
svixEnabled: true # if you install svix
privateCloudEnabled: true # if you install privatecloud
pclm:
username: administrator #pclm admin username
password: adminpass #pclm admin password
spec:
appURL: am.mxplatform.net
database:
servicePlan: new-pmp-db-eph
storage:
servicePlan: storage-test-eph
replicas: 1
resources:
limits:
cpu: 1000m
memory: 2048Mi
requests:
cpu: 500m
memory: 1024Mi
sourceURL: oci-image://public.ecr.aws/p2w4x6l6/mendix-private-platform:2.6.0.7df5550a
runtime:
mxAdminPassword: Abcd1234....
microflowConstants:
UserAdmin.TOGGLE_CAPS_ENABLECI: "True"
UserAdmin.TOGGLE_CAPS_IDP: "True"
UserAdmin.TOGGLE_CAPS_MKTPLS: "True"
UserAdmin.TOGGLE_CAPS_PRJMGMT: "True"
UserAdmin.TOGGLE_CAPS_WEBHOOK: "True"
UserAdmin.TOGGLE_MKTPLS_APPROVAL: "True"
UserAdmin.TOGGLE_MKTPLS_IMPORT: "True"
UserAdmin.TOGGLE_PERSIST_CONFIG: "False"
dtapMode: P
```

## Required Configuration

For non-interactive installation of Private Mendix Platform, you must configure the following parameters.

### Namespace

The `namespace` is the cluster namespace where your Private Mendix Platform will be installed.

## Operator {#operator}

For general information about configuring Mendix Operator in non-interactive mode, see [Install and Configure Mendix on Kubernetes Non-Interactive Mode](/developerportal/deploy/private-cloud-cli-non-interactive/).

To generate the configuration file for the Oprator part, run the following command:

```text
./installer operator configure -n=<Private Mendix Platform namespace>
```

The *mx_config_cli.yaml* file is generated when you click **Write YAML** during the **Review and Apply** phase of the interactive namespace configuration. You must then copy the contents of *mx_config_cli.yaml* into the Operator section.

```text
operator:
enable: false
base: # base installation info
cluster_type: generic #for Openshift set it to openshift
registry: private-cloud.registry.mendix.com # Operator registry info
config:
cluster_mode: standalone
namespace: aa
mask:
database_plan: true
storage_plan: true
proxy: false
custom_tls: false
database_plan:
name: db-config
type: ephemeral
storage_plan:
name: storage-config
type: ephemeral
```

### Components {#components}

Private Mendix Platform components include Svix, PCLM, Maia, PrivateCloud, and others.

To generate the configuration file for each component, run the following command:

```text
./installer component -n=<Private Mendix Platform namespace>
```

After that, choose the components, fill the configuration details, and click **Write configuration**.

{{< figure src="/attachments/private-platform/pmp-installni2.png" class="no-border" >}}

### Private Mendix Platform {#pmp}

To generate the configuration file for Private Mendix Platform, run the following command:

```text
./installer platform -n=<Private Mendix Platform namespace>
```

After that, fill the configuration info and click **Write Configuration**.

{{< figure src="/attachments/private-platform/pmp-installni1.png" class="no-border" >}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: "Upgrading the Private Mendix Platform"
url: /private-mendix-platform/upgrade/
description: "Documents the upgrade process for the Private Mendix Platform."
weight: 70
---

## Introduction

If you have installed Private Mendix Platform before, you can upgrade it by doing the following steps:

1. Ensure that your Mendix Operator version is 2.12 or above.
2. Ensure that the number of replicas is no higher than 1. If you have manually changed the default value, make sure you revert it to 1 before attempting the upgrade.
3. Run the command `./installer platform -n=<namespace name>`, where `-n` indicates the namespace where your Private Mendix Platform is installed.
4. Click **Upgrade Namespace**.

{{< figure src="/attachments/private-platform/pmp-upgrade1.png" class="no-border" >}}

5. Verify the following settings:

* **Persist Config** - When enabled, this setting locks the Private Mendix Platform configuration, so that it can no longer be modified from the user interface.
* **Project Management** - Recommended. Enables you to create and manage your app projects. Enables app projects and related settings across the portal. Must be enabled for CI/CD capabilities.
* **Marketplace** - Recommended. Enables you to use the Private Platform's Marketplace capabilities to upload, import and manage Marketplace contents. The Marketplace enabled here is hosted entirely within your Private Mendix Platform.
* **Marketplace Approvals** - Optional. If enabled, contents that users publish to the private Marketplace require administrator approval before publishing.
* **Marketplace Import** - Optional. Enables content import with an external source.
* **IDP** - Optional. Enable users to login using SSO by configuring your IdP integration.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [vale] reported by reviewdog 🐶
[Mendix.Capitalization] Use ''IdP'' (capitalized)

* **Webhook** - Optional. Webhooks allow to send information between platform and external systems, and can be triggered by events around Apps, Users, Groups, Marketplace and CI/CD.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [vale] reported by reviewdog 🐶
[Mendix.ProductNames] Use 'Projects' instead of 'Apps'


6. Click **Run Upgrade**.

{{< figure src="/attachments/private-platform/pmp-upgrade2.png" class="no-border" >}}

{{% alert color="info" %}}
To upgrade components other than Svix, select the relevant option in the upgrade wizard. For the Svix component, you can use the Svix panel to upgrade directly.
{{% /alert %}}
Loading