Skip to content

Commit

Permalink
R2025a Prerelease: Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
esteinerMW committed Nov 26, 2024
1 parent 7bbf2ce commit a86a42d
Show file tree
Hide file tree
Showing 9 changed files with 165 additions and 81 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/helm-chart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ on:
- Helm_artifacts

env:
HELM_CHART_VERSION: 1.1.0
MATLAB_APP_VERSION: "R2024b"
HELM_CHART_VERSION: 1.2.0
MATLAB_APP_VERSION: "R2025a"

jobs:
release-helm-chart:
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The files in this GitHub repository refer to commercial software products and se

The following license terms apply only to the files in this GitHub repository, including files in this folder and its subfolders, and do not apply to MathWorks Programs. References to “software” and “code” in the following license terms refer to the files in this GitHub repository.

Copyright (c) 2024, The MathWorks, Inc.
Copyright (c) 2025, The MathWorks, Inc.

All rights reserved.

Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,10 @@ The Quick Start option only requires you to download a single file, rather than
To accept the license terms, set global > agreeToLicense to "yes".
To specify the address of the license server, set global > licenseServer using the format port_number@host.
Next, install the Helm chart for MATLAB Production Server by using the following `helm install` command:
Next, install the Helm chart for MATLAB Production Server R2025a by using the following `helm install` command:
```
helm install -f <path/to/values-overrides.yaml> [-n <k8s-namespace>] --generate-name oci://containers.mathworks.com/matlab-prodserver-k8s --version 1.1.0
helm install -f <path/to/values-overrides.yaml> [-n <k8s-namespace>] --generate-name oci://containers.mathworks.com/matlab-prodserver-k8s --version 1.2.0
```
4. After the deployment is complete, upload the MATLAB Production Server deployable archive to your network file server or Azure file share. All users must have read permission to the deployable archive.
Expand All @@ -71,7 +71,7 @@ The MATLAB Production Server on Kubernetes GitHub repository contains Helm chart
```
This repository includes Helm chart folders for each supported MATLAB Production Server release and a `values-overrides.yaml` file containing configuration options that apply across all release deployments.
2. Navigate to the Helm chart folder for the release you want to use. Replace `<release>` with the release version, for example, `R2024b`.
2. Navigate to the Helm chart folder for the release you want to use. Replace `<release>` with the release version, for example, `R2025a`.
```
cd matlab-production-server-on-kubernetes/releases/<release>/matlab-prodserver
```
Expand All @@ -88,7 +88,7 @@ The MATLAB Production Server on Kubernetes GitHub repository contains Helm chart
```
* `containers.mathworks.com` is the name of the container registry.
* `matlab-production-server` is the name of the repository.
* `<release-tag>` is the tag name of the MATLAB Production Server release, for example, `r2024b`.
* `<release-tag>` is the tag name of the MATLAB Production Server release, for example, `r2025a`.
The `values.yaml` file specifies these values in the `productionServer` section, in the `registry`, `repository`, and `tag` variables, respectively.
Expand All @@ -99,7 +99,7 @@ The MATLAB Production Server on Kubernetes GitHub repository contains Helm chart
```
* `containers.mathworks.com` is the name of the container registry.
* `matlab-runtime` is the name of the repository.
* `<release-tag>` is the tag name of the MATLAB Runtime release. Update this value to the release version of the MATLAB Runtime you are using, for example, `r2024b`. MATLAB Production Server supports MATLAB Runtime versions up to six releases back from the MATLAB Production Server version you are using.
* `<release-tag>` is the tag name of the MATLAB Runtime release. Update this value to the release version of the MATLAB Runtime you are using, for example, `r2025a`. MATLAB Production Server supports MATLAB Runtime versions up to six releases back from the MATLAB Production Server version you are using.
The `values.yaml` file specifies these values in the `matlabRuntime` section, in the `registry`, `repository`, and `tag` variables, respectively.
Expand Down Expand Up @@ -187,5 +187,5 @@ If you require assistance, contact [MathWorks Technical Support](https://www.mat
## License
MATHWORKS CLOUD REFERENCE ARCHITECTURE LICENSE © 2024 The MathWorks, Inc.
MATHWORKS CLOUD REFERENCE ARCHITECTURE LICENSE © 2025 The MathWorks, Inc.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
apiVersion: v2
appVersion: "R2022a"
appVersion: "R2025a"
description: MATLAB Production Server Helm chart for Kubernetes
name: matlab-prodserver-k8s
version: 0.1.1
version: 1.2.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
#
# Expose MATLAB Production Server internal endpoint
#
kind: Service
apiVersion: v1
metadata:
name: matlab-production-server
namespace: {{ .Release.Namespace }}
labels:
app: mps
release: {{ .Release.Name }}
spec:
selector:
app: mps
ports:
- name: mps-port
port: 9910
targetPort: 9910
type: ClusterIP

---
{{- if .Values.global.ingressController.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: matlab-production-server-ingress
namespace: {{ .Release.Namespace }}
labels:
release: {{ .Release.Name }}
annotations:
{{ if .Values.global.ingressController }}
## set ingress-conroller vendor-specific annotations:
{{- range $key, $value := .Values.global.ingressController.annotations }}
{{ $key }}: {{ quote $value }}
{{- end }}
{{ end }}
spec:
ingressClassName: {{ .Values.global.ingressController.name }}
{{ if .Values.global.ingressController.tls.enabled }}
tls:
- hosts:
- {{ .Values.global.ingressController.domainBase }}
{{- if .Values.global.ingressController.tls.secretName }}
secretName: {{ .Values.global.ingressController.tls.secretName }}
{{- end }}
{{ end }}

rules:
- host: {{ .Values.global.ingressController.domainBase }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: matlab-production-server
port:
number: 9910
{{- end }}

---
{{ if and (.Values.optionalSettings.Prometheus.enabled) (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1/ServiceMonitor") }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: matlab-production-server-monitor
labels:
app: mps
app.kubernetes.io/part-of: {{ .Values.optionalSettings.Prometheus.matchOn }}
release: {{ .Values.optionalSettings.Prometheus.matchOn }}
spec:
selector:
matchLabels:
app: mps
release: {{ .Release.Name }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
endpoints:
- port: mps-port
path: /api/metrics
{{ end }}

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ data:
main_config: |
--http 9910
--ssl-verify-peer-mode no-verify-peer
--ssl-protocols TLSv1.1,TLSv1.2
--ssl-protocols TLSv1.2
--ssl-ciphers ALL
--mcr-root /opt/matlabruntime/{{ .Values.images.matlabRuntime.variant }}
--num-workers {{ .Values.matlabProductionServerSettings.numWorkers | default 1 }}
Expand Down Expand Up @@ -42,15 +42,26 @@ data:
--server-memory-threshold-overflow-action purge_responses
--enable-discovery
--enable-metrics
--routes-file ./config/routes.json
{{- if .Values.optionalSettings.Redis.host }}
mps_cache_config: |
{"Connections":
{"{{ .Values.optionalSettings.Redis.name }}":
{"Provider":"Redis",
"Host":{{ .Values.optionalSettings.Redis.host | quote }},
"Port":{{ .Values.optionalSettings.Redis.port | default 6379 }}}
"Port":{{ .Values.optionalSettings.Redis.port | default 6379 }}
{{- if .Values.optionalSettings.Redis.auth }}
,"Key":{{ .Values.optionalSettings.Redis.auth | quote }}
{{- end }}
}
}
}
{{- end }}

routes.json: |
{
"version": "1.0.0",
"pathmap": []
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,34 @@ spec:
labels:
app: mps
annotations:
{{ if not .Values.optionalSettings.Prometheus.enabled }}
prometheus.io/scrape: 'true'
prometheus.io/path: '/api/metrics'
prometheus.io/port: '9910'
{{ end }}
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
runAsUser: 1001
runAsGroup: 1001

containers:
- name: mps
image: {{ .Values.images.productionServer.registry }}/{{ .Values.images.productionServer.repository }}:{{ .Values.images.productionServer.tag }}
image: {{ .Values.global.images.registry | default .Values.images.productionServer.registry }}/{{ .Values.images.productionServer.repository }}:{{ .Values.images.productionServer.tag }}
env:
- name: AGREE_TO_MATHWORKS_SOFTWARE_LICENSE
value: {{ .Values.global.agreeToLicense | default "no" | lower | quote }}
value: {{ required "agreeToLicense must be set to \"yes\"." .Values.global.agreeToLicense | default "no" | lower | quote }}
- name: AGREE_TO_MATLAB_RUNTIME_LICENSE
value: {{ .Values.global.agreeToLicense | default "no" | lower | quote }}
value: {{ required "agreeToLicense must be set to \"yes\"." .Values.global.agreeToLicense | default "no" | lower | quote }}
- name: LD_LIBRARY_PATH
value: "/opt/matlabruntime/{{ .Values.images.matlabRuntime.variant }}/runtime/glnxa64:/opt/matlabruntime/{{ .Values.images.matlabRuntime.variant }}/bin/glnxa64:/opt/matlabruntime/{{ .Values.images.matlabRuntime.variant }}/sys/os/glnxa64:/opt/matlabruntime/{{ .Values.images.matlabRuntime.variant }}/extern/bin/glnxa64:/opt/matlabruntime/{{ .Values.images.matlabRuntime.variant }}/sys/opengl/lib/glnxa64"
{{ if .Values.optionalSettings.Redis.secretName }}
- name: MPS_REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.optionalSettings.Redis.secretName }}
key: {{ .Values.optionalSettings.Redis.secretKey | default "redis-password" }}
{{ end }}

ports:
- containerPort: 9910
Expand All @@ -62,8 +71,8 @@ spec:
exec:
command:
- ls
- /opt/matlabruntime/{{ .Values.images.matlabRuntime.variant }}/MCR_license.txt
initialDelaySeconds: 30
- /opt/matlabruntime/{{ .Values.images.matlabRuntime.variant }}/matlabruntime_license_agreement.pdf
initialDelaySeconds: 10
periodSeconds: 30

livenessProbe:
Expand All @@ -82,7 +91,7 @@ spec:

initContainers:
- name: matlab-runtime
image: {{ .Values.images.matlabRuntime.registry }}/{{ .Values.images.matlabRuntime.repository }}:{{ .Values.images.matlabRuntime.tag }}
image: {{ .Values.global.images.registry | default .Values.images.matlabRuntime.registry }}/{{ .Values.images.matlabRuntime.repository }}:{{ .Values.images.matlabRuntime.tag }}

command:
- /bin/sh
Expand All @@ -97,10 +106,13 @@ spec:

restartPolicy: {{ .Values.deploymentSettings.restartPolicy }}
imagePullSecrets:
{{- if .Values.global.images.pullSecret }}
- name: {{ .Values.global.images.pullSecret }}
{{- end }}
{{- if .Values.images.productionServer.pullSecret }}
- name: {{ .Values.images.productionServer.pullSecret }}
{{- end }}
{{- if .Values.images.matlabRuntime.pullSecret }}
{{- if and .Values.images.matlabRuntime.pullSecret (ne .Values.images.matlabRuntime.pullSecret .Values.images.productionServer.pullSecret) }}
- name: {{ .Values.images.matlabRuntime.pullSecret }}
{{- end }}

Expand All @@ -120,6 +132,9 @@ spec:
server: {{ .Values.matlabProductionServerSettings.autoDeploy.server }}
path: {{ .Values.matlabProductionServerSettings.autoDeploy.path }}
readOnly: true
{{- else if eq .Values.matlabProductionServerSettings.autoDeploy.volumeType "pvc" }}
persistentVolumeClaim:
claimName: {{ .Values.matlabProductionServerSettings.autoDeploy.claimName }}
{{- else if eq .Values.matlabProductionServerSettings.autoDeploy.volumeType "azurefileshare" }}
azureFile:
shareName: {{ .Values.matlabProductionServerSettings.autoDeploy.shareName }}
Expand Down
Loading

0 comments on commit a86a42d

Please sign in to comment.