Skip to content

Commit d1fdcf2

Browse files
Merge pull request #10008 from zlogic/DES-6972_mxok-2.23.0-release-notes
Release notes for Mx4PC (MxOK) Operator 2.23.0, planned for release around August 27
2 parents fd49200 + f98f9bb commit d1fdcf2

File tree

7 files changed

+63
-7
lines changed

7 files changed

+63
-7
lines changed

content/en/docs/deployment/private-cloud/_index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,12 @@ This percentage can be adjusted by providing a custom value in Custom JVM Option
104104

105105
### Operator License
106106

107+
{{% alert color="info" %}}
108+
Mendix Operator versions older than 2.23.0 require an Operator licence. Starting from Operator version 2.23.0, Operator licenses are no longer needed.
109+
110+
A valid subscription and support contract is still necessary to be receive technical support.
111+
{{% /alert %}}
112+
107113
Mendix on Kubernetes is a premium offering from Mendix, and you will need an additional license to use it for your applications. This **Operator license** allows you to manage Mendix apps in your cluster through the Mendix Operator and, optionally, the Mendix Gateway Agent.
108114

109115
You need one license for each namespace you want to manage.

content/en/docs/deployment/private-cloud/private-cloud-cluster/_index.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ spec:
417417
livenessProbe:
418418
failureThreshold: 3
419419
httpGet:
420-
path: /m2ee-sidecar/v1/healthz
420+
path: /m2ee-sidecar/v1/livez
421421
port: 8800
422422
scheme: HTTP
423423
initialDelaySeconds: 60
@@ -427,8 +427,8 @@ spec:
427427
readinessProbe:
428428
failureThreshold: 3
429429
httpGet:
430-
path: /
431-
port: mendix-app
430+
path: /m2ee-sidecar/v1/readyz
431+
port: 8800
432432
scheme: HTTP
433433
initialDelaySeconds: 5
434434
periodSeconds: 1
@@ -539,6 +539,12 @@ An app will return a successful health check status if all of these conditions a
539539
3. If the Runtime is `running`, and a healthcheck microflow is configured, the healthcheck microflow needs to return a `healthy` state. If there is no `check_health` microflow configured, or the Runtime's state is not `running`, this condition is ignored.
540540
{{% /alert %}}
541541

542+
{{% alert color="info" %}}
543+
Starting from Mendix Operator 2.23.0, environments running in `leaderless` mode use the Mendix Runtime's built-in liveness and readiness checks.
544+
545+
When another **runtimeLeaderSelection** mode is used (default, unspecified `assigned` mode, or `none`), the healthcheck microflow is used, as described above.
546+
{{% /alert %}}
547+
542548
#### Customize Liveness Probe to Resolve Crash Loopback Scenarios
543549

544550
The `liveness probe` informs the cluster whether the pod is dead or alive. If the pod fails to respond to the liveness probe, the pod will be restarted (this is called a `crash loopback`).
@@ -555,7 +561,7 @@ Let us now analyze the `liveness probe` section from the application deployment
555561
livenessProbe:
556562
failureThreshold: 3
557563
httpGet:
558-
path: /m2ee-sidecar/v1/healthz
564+
path: /m2ee-sidecar/v1/readyz
559565
port: 8800
560566
scheme: HTTP
561567
initialDelaySeconds: 60

content/en/docs/deployment/private-cloud/private-cloud-deploy.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ All environments are defined as production environments, which means that [secur
169169
You can also filter the environment by the namespace name, environment ID, and environment name.
170170

171171
{{% alert color="info" %}}
172-
If the Operator managing the environment is licensed, **Licensed Operator** is displayed. If the Operator is not licensed, the display shows **Trial Operator**.
172+
If the Operator managing the environment has a valid license attached, **Licensed Operator** is displayed. If the Operator has no valid license, the display shows **Trial Operator**.
173173
{{% /alert %}}
174174

175175
### Deploying the Deployment Package{#deploy-package}
@@ -355,6 +355,12 @@ The Operator license is independent from a Mendix Runtime license. The Operator
355355
You can get an Operator license from [Mendix Support](https://support.mendix.com), together with instructions on how to configure it.
356356
{{% /alert %}}
357357

358+
{{% alert color="info" %}}
359+
Starting from version 2.23.0, the Operator no longer performs Operator license checks. The Operator shows as **Licensed Operator** even when no Operator license is installed.
360+
361+
Environments still need subscription secrets to remove Mendix Runtime trial limitations from the app.
362+
{{% /alert %}}
363+
358364
##### Service Account
359365

360366
The word **Service Account** indicates that this environment is successfully attached to a service account. If no service accounts are created specific to this environment, then this environment will be attached to the default service account.

content/en/docs/deployment/private-cloud/private-cloud-operator.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,10 @@ You must make the following changes:
229229
* **environmentVariables** - Set the environment variables for the Mendix app container, and JVM arguments through the `JAVA_TOOL_OPTIONS` environment variable.
230230
* **clientCertificates** - Specify client certificates to be used for TLS calls to Web Services and REST services.
231231
* **runtimeMetricsConfiguration** - Specify how metrics should be collected. Any non-empty values override the [default values](/developerportal/deploy/private-cloud-cluster/#customize-runtime-metrics) from `OperatorConfiguration`. Refer to [Monitoring Environments in Mendix on Kubernetes](/developerportal/deploy/private-cloud-monitor/) for details on how to monitor your environment.
232-
* **runtimeLeaderSelection** - Specify how the leader replica should be selected. Valid options are `assigned` (default mode; the `master` deployment will run one leader replica) and `none` (do not run any leader replicas, `master` deployment is scaled down to zero; this mode requires a specific infrastructure configuration, make sure to consult with Mendix Expert Services before using this feature).
232+
* **runtimeLeaderSelection** - Specify how the leader replica should be selected. The following options are available:
233+
* `assigned` (default mode) - The `master` deployment runs one leader replica, while the `worker` deployment runs all additional replicas.
234+
* `none` - Do not run any leader replicas, `master` deployment is scaled down to zero. This mode requires a specific infrastructure configuration. Contact Mendix Expert Services before using this feature.
235+
* `leaderless` - A mode where the nodes dynamically choose a leader. This feature is in preview mode. It requires Mendix Runtime 10.24 or newer, and Mendix Operator 2.23 or newer.
233236
* **customPodLabels** - Specify additional pod labels. Avoid using labels that start with the `privatecloud.mendix.com/` prefix.
234237
* **general** - Specify additional labels for all pods of the app.
235238
* **deploymentStrategy** - Specify parameters for the deployment strategy. For more information, see the reduced downtime deployment documentation.

content/en/docs/deployment/private-cloud/private-cloud-supported-environments.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ If deploying to Red Hat OpenShift, you need to specify that specifically when cr
3737
Mendix on Kubernetes Operator `v2.*.*` is the latest version which officially supports:
3838

3939
* Kubernetes versions 1.19 through 1.33
40-
* OpenShift 4.6 through 4.18
40+
* OpenShift 4.6 through 4.19
4141

4242
{{% alert color="warning" %}}
4343
Kubernetes 1.22 is a [new release](https://kubernetes.io/blog/2021/08/04/kubernetes-1-22-release-announcement/) which removes support for several deprecated APIs and features.

content/en/docs/deployment/private-cloud/private-cloud-technical-appendix/private-cloud-technical-appendix-02.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,12 @@ These dependency CRs include `StorageInstance`, `Build`, and `Endpoint` CRs. Eac
125125

126126
Once all dependencies are processed (report their status as Ready), the Operator will process the `Runtime` CR.
127127

128+
{{% alert color="info" %}}
129+
Starting from version 2.23.0 of the Mendix Operator, the Operator no longer waits for the `Endpoint` CR. Instead, it updates the `Runtime` CR before the `Endpoint` is created.
130+
131+
In addition, if a `Build` CR has failed or is processing changes, the Operator will process some changes in the `Runtime` CR, as long as the previous build is available.
132+
{{% /alert %}}
133+
128134
{{< figure src="/attachments/deployment/private-cloud/private-cloud-technical-appendix/private-cloud-technical-appendix-02/crd-controller-hierarchy.png" class="no-border" >}}
129135

130136
Any time a CR's status is changed, the Operator will propagate it to the `MendixApp` CR. The Agent will receive events any time the `MendixApp` CR changes its status.

content/en/docs/releasenotes/deployment/mendix-for-private-cloud.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,35 @@ For information on the current status of deployment to Mendix on Kubernetes and
1212

1313
## 2025
1414

15+
### August 29, 2025
16+
17+
#### Mendix Operator v2.23.0 {#2.23.0}
18+
19+
* In addition to the current `assigned` and `none` modes, we have added a new `leaderless` deployment mode for the `runtimeLeaderSelection` option. This mode is currently in preview.
20+
21+
Setting `runtimeLeaderSelection` to `leaderless` uses only one Deployment instead of `master` and `worker`. Mendix Runtime nodes decide which one gets to run any exclusive task. The mode uses a simplified Java launch process and uses a more efficient way of generating JSON logs. To use `leaderless` mode, the Mendix app needs to be based on Mendix 10.24 or a higher version.
22+
23+
* We have adjusted the Runtime liveness and readiness probes. In `leaderless` deployment mode, the Mendix Runtime's built-in self-test is now used for the liveness and readiness probes.
24+
* We have addressed a few redundant API calls to reduce API calls in a small number of scenarios.
25+
* We have fixed an issue when a Prometheus metrics scaper would reject metrics from Mendix 11 apps.
26+
* We have added a workaround to improve handling of bucket prefixes containing `/` characters.
27+
* To provide clearer error messages and more relevant context, we have improved the logging of some startup and other errors.
28+
* We have removed license checks from the Mendix Operator. Starting version 2.23.0 of the Mendix Opeartor, only Runtime licenses are required (to remove [trial restrictions](/developerportal/deploy/licensing-apps-outside-mxcloud/) from the Mendix Runtime). The Operator will show its status as **Licensed** even when no Operator license is applied.
29+
* We updated internal handling logic for the `MendixApp`, `Build` and `Runtime` CRD controllers (Ticket 251404).
30+
31+
* The `Build` controller now only checks pod attributes that are necessary to complete a build.
32+
* The `MendixApp` and `Runtime` controllers now allow processing of some chnages if a build fails.
33+
34+
For example, it is possible to start an environment or change the **MxAdmin** password even when the build fails - in this case, the previous build will be used instead.
35+
36+
* When enabling the **Prevent data deletion** option, Mendix 9.6 (or newer) apps will no longer try to delete files from unreferenced *System.FileDocument*, so that Mendix apps would be able to run without permissions to delete files.
37+
* We have updated components to use Go 1.24 and the latest dependency versions in order to improve security score ratings for container images.
38+
* We have updated documentation that OpenShift 4.19 is supported by the Mendix Operator.
39+
* We have deprecated support for Tencent COS storage.
40+
* If an app pod crashes or restarts, the MendixApp CR now shows the reason for the restart and the Mendix Runtime's UNIX exit code.
41+
* We have addressed a rare bug where the Agent sometimes crashed with a panic when a network connection was lost.
42+
* Upgrading to Mendix Operator v2.23.0 from a previous version will restart environments managed by that version of the Operator. Environments with two or more replicas and a **PreferRolling** update strategy are restarted without downtime.
43+
1544
### August 7, 2025
1645

1746
#### Portal Improvements

0 commit comments

Comments
 (0)