Unified Deployment
In this guide, we’ll show you how to update your cluster configuration to support a unified installation and deployment of Pachyderm + .
Before You Start #
This guide assumes that you have already completed all of the following:
- Deployed Pachyderm using one of the cloud deployment guides (AWS, GCP, or Azure).
- Added an active Enterprise License Key.
- Set up TLS (SSL, HTTPS) for your Pachyderm cluster.
- Set up an OIDC connector for your Pachyderm cluster.
Self-Signed Certificates #
If you are using a self-signed certificate for your implementation, you must update the Determined Helm values.yaml file at .Values.externalCaCertSecretName
to include the name of the secret containing the root certificate.
How to Configure a Unified Setup #
1. Create Necessary Secrets #
You will need to create two secrets for Determined:
-
A Determined Enterprise docker image credentials secret (e.g.,
det-image
)kubectl create secret docker-registry det-image \ --docker-server=https://index.docker.io/v1/ \ --docker-username=<username> \ --docker-password=<password> \ --docker-email=<email> \ --output=json > det-image-secret.json
-
A Determined Enterprise admin credentials secret (e.g.,
det-creds
)kubectl create secret generic det-creds \ --from-literal=determined-username=admin \ --from-literal=determined-password="" \ --output=json > det-creds-secret.json
2. Update the Pachyderm Helm Chart #
- Open your
values.yaml
file or generate a local copy using the following command:helm get values pachyderm > values.yaml
- Update the
determined.enabled
field invalues.yaml
file totrue
. - Update the
determined.oidc
section of yourvalues.yaml
file to include the OIDC provider, client ID, and URLs:determined: oidc: enabled: true provider: "" # your oidc.upstreamIDPs.config.id; e.g., Auth0 or Okta idpRecipientUrl: "" # https://<proxy.host.value.com>:8080 idpSsoUrl: "" # https://<proxy.host.value.com>/dex clientId: "determined" clientSecretKey: "" clientSecretName: "" authenticationClaim: "" scimAuthenticationAttribute: "" autoProvisionUsers: false groupsAttributeName: "" displayNameAttributeName: ""
- Provide a
determined.tlsSecret
if applicable. - Update the
pachd
section of yourvalues.yaml
file to include the full endpoint address and the name of the Determined admin credentials secret:pachd: determined: apiEndpoint: # https://determined-master-service-internal-<HELM RELEASE NAME>:8082 credentialsSecretName: det-creds activateEnterprise: true
Adding Users to Pipelines #
You can add a determined
section to your pipeline specification file and make use of a user via the $DET_USER
and $DET_PASS
environment variables. This can be used by the user code that run determined work to talk back to Pachyderm and can be used with the Pachyderm SDK.
{
"pipeline": {
"name": "<PIPELINE NAME>"
},
"description": "<PIPELINE DESCRIPTION>",
"input": {
"pfs": {
"name": "data",
"repo": "input",
"branch": "master",
"glob": "/",
"emptyFiles": true
}
},
"transform": {
"cmd": ["/bin/sh"],
"stdin": ["pip install determined && echo $DET_PASS | det user login $DET_USER && det model list -w WORKSPACE-NAME > /pfs/out/WORKSPACE-NAME.txt"],
"image": "python:3.8"
},
"determined": {
"workspaces": ["WORKSPACE-NAME"]
}
}