Install Polyspace Access on Kubernetes
R2026bPolyspace®
Access™ is distributed as a Helm chart that deploys the application as a
set of containerized services. Before you begin, ensure you have a running
Kubernetes® cluster with an NGINX Ingress Controller, Helm 3 installed, and
kubectl configured to access the target cluster.
Validated Environments
Polyspace Access on Kubernetes is validated against the following:
PostgreSQL 15
Amazon EKS and Azure AKS clusters
NGINX Ingress Controller
Note
This topic describes one supported approach for deploying Polyspace Access on Kubernetes. Other installation paths are also possible. Adapt the steps as needed to match your environment.
Get the Polyspace Access Installation Package
To obtain the Helm chart for the Kubernetes installation, contact MathWorks® Technical Support.
Download the Polyspace Access Docker images from the MathWorks download page. When you install the Helm chart, the required container images are pulled automatically from the MathWorks public registry.
Prepare the Installation Configuration
Before installing, you must configure the values.yaml file to
match your environment. For detailed configuration guides, see:
Configure Polyspace Access on Kubernetes — Deployment flavors overview and quick-reference table
Configure Issue Tracker for Polyspace Access on Kubernetes — Jira, Polarion, or Redmine integration
Kubernetes values.yaml Reference — All properties with defaults
Create Kubernetes Secrets
The installation requires a Kubernetes Secret that contains sensitive
configuration. This Secret can include the license file, authentication private key,
database password, and Issue Tracker configuration. A template
file docs/secrets.yaml is provided with the Helm
chart.
Generate the Authentication Private Key
The User Manager service requires an RSA private key for signing
authentication tokens. Generate the key using
openssl:
openssl genrsa -out auth-private-key.pem 2048
The private key must not be password-protected. Do not reuse the private key that you use to generate SSL/TLS certificates. Restrict access to this key to only those administrators who manage the User Manager service.
Populate the Secrets File
Edit docs/secrets.yaml and insert your values. The
following example shows a complete secrets file:
apiVersion: v1
kind: Secret
metadata:
name: polyspace-access
namespace: NAMESPACE
stringData:
auth-private-key.pem: |
-----BEGIN RSA PRIVATE KEY-----
<contents of your generated private key>
-----END RSA PRIVATE KEY-----
license.lic: |
<contents of your Polyspace Access license file>
ps-db-password: your-polyspace-db-password
um-db-password: your-usermanager-db-password
config-issuetracker.json: |
{
"url": "https://jira.example.com:443",
"jiraType": "server",
"authnMethod": "cookie"
}| Key | Description | Required |
|---|---|---|
auth-private-key.pem
| RSA private key for User Manager token signing. | Yes |
license.lic
| Polyspace Access license key content. | Yes |
ps-db-password
| Password for the Polyspace
Access database role
(prs_data). Referenced by
polyspaceAccess.db.passwordSecret. | Yes |
um-db-password
| Password for the User Manager database role.
Referenced by
usermanager.server.config.db.password
when using a Secret. | Yes |
config-issuetracker.json
| Issue Tracker provider configuration in JSON format. Required only if Issue Tracker is enabled. | No |
Apply the Secret
Apply the secrets to your cluster:
kubectl apply -f docs/secrets.yaml
If you are using a namespace:
kubectl apply -f docs/secrets.yaml -n NAMESPACE
Verify that the Secret was created:
kubectl get secret polyspace-access -n NAMESPACE
Install Polyspace Access
After you configure the values.yaml file and apply the Secrets,
install Polyspace
Access using Helm. Navigate to the folder that contains
Chart.yaml and run:
helm upgrade --install RELEASE_NAME .
Replace RELEASE_NAME with a name for your
installation (for example, polyspace). If you are using a
namespace:
helm upgrade --install RELEASE_NAME . --namespace=NAMESPACE
After the command completes, verify the installation:
Check that all pods reach a
Runningstate:kubectl get pods -n NAMESPACE
All pods typically show
Runningstatus and1/1ready within a few minutes. If a pod remains inPendingorCrashLoopBackOffstate, see Troubleshoot Polyspace Access on Kubernetes.Access the application by navigating to
https://in a web browser, whereHOST:PORT/authn/signinHOSTandPORTcorrespond to your Ingress configuration.
Tool Installation Reference
The following tools are required to interact with your cluster. If you already have these tools installed, skip this section.
Install kubectl
kubectl is the Kubernetes command-line tool that enables you to run commands against
clusters.
For installation instructions, see the official kubectl installation guide.
Install Helm
Helm is a package manager for Kubernetes that simplifies the installation and management of applications.
For installation instructions, see the official Helm installation guide.
Create a Kubernetes Cluster
Polyspace Access requires a Kubernetes cluster with an Ingress controller configured for external access. Refer to the official documentation for your platform to create and configure your cluster:
Polyspace Access requires an NGINX Ingress controller. Install the Ingress controller following the instructions for your platform:
Verify the Ingress controller installation by checking the status of the pods:
kubectl get pods -n ingress-nginx
Pods with names such as
ingress-nginx-controller appear in a
Running state.
See Also
System Requirements for Polyspace Access | Storage and Port Configuration