SetupEnterprise Edition Control Plane Setup
This is part of our commercial offering.

Overview

This guide is for Polyaxon Enterprise Edition Control Plane Setup for Kubernetes.

In order to deploy Polyaxon Enterprise Control Plane to manage agent (compute cluster) deployments, you need to set some extra configuration.

Set the EE License

Running Polyaxon Enterprise Control Plane requires a valid license.

As part of the sign-up process for Polyaxon EE, you should have received a license file. If you do not have one, please contact us. Save the license file temporarily to disk with filename license (no file extension) and execute the following:

kubectl create secret generic polyaxon-enterprise-license --from-file=./license -n polyaxon

Configure Polyaxon Enterprise Docker registry access

Set up Docker credentials to allow Kubernetes nodes to pull down the Polyaxon Enterprise Docker images, which are hosted in a private repository. You receive credentials for the Polyaxon Enterprise Docker image when you sign up for Polyaxon Enterprise.

kubectl create secret -n polyaxon docker-registry polyaxon-docker-enterprise-k8s \
    --docker-server=<polyaxon-docker-enterprise-k8s-server> \
    --docker-username=<your-username> \
    --docker-password=<your-api-key>

Add your organization key

api:
  organizationKey: ...

Use Polyaxon Enterprise Docker images

You need to set your configuration file to use Polyaxon Enterprise Docker images.

api:
  image: ...
scheduler:
  image: ...
compiler:
  image: ...
worker:
  image: ...
beat:
  image: ...

Disable the default agent services

Since some services will be managed by Polyaxon Agents on each cluster/namespace you don't need the default agent deployed:

agent:
  enabled: false
operator:
  enabled: false

Enable the scheduler

Polyaxon control plane requires the scheduler to be running. e.g. using redis:

broker: redis
redis:
  enabled: true
scheduler:
  enabled: true

Note: You can have more control about the broker, please check this guide.

Enable extra services

Some services are only available to Polyaxon control plane:

compiler:
  enabled: true
worker:
  enabled: true
beat:
  enabled: true

Connections

Remove all configuration related to connections, each agent will be managing its own connections and artifacts store.

artifactsStore: {}
connections: []

Rate limits

The API limits how many requests each user can send, per scope. Organization and agent tokens are counted per token, and anonymous requests per IP. To change a limit, set its scope under gateway.throttle.rates. Scopes you don't set keep their defaults:

gateway:
  throttle:
    rates:
      run: 600
      user: 480
ScopeDefaultUnitRequests
user240per minuteAPI endpoints without a more specific scope
run300per minuteRun detail and run actions, such as stop, restart and archive
run_status120per minuteRun statuses
run_lineage120per minuteRun artifacts lineage
impersonate500per minuteRun impersonation tokens
agent500per minuteAgent sync, reconcile, status and state
auth20per secondAuthentication checks for proxied requests
anon20per minuteUnauthenticated requests
checks10per minuteHealth and status checks

Values are numbers of requests, and a scope's unit can't be changed. Without the shared cache, each API worker counts requests separately, so the effective limit is the value times the number of workers and replicas.

Changing a value updates the platform config and restarts the API pods.

Requires Polyaxon v2.20 or later.