ds
image
The ds
Docker image contains the DS
configuration. You can customize the DS image before deploying it in
your production environment.
The customization described here is for use in new Ping Identity Platform deployments. |
This section covers:
-
Customize LDAP configuration by including LDIF format LDAP configuration files in
ldif-ext
directory. -
Customize LDAP schema by including customized schema LDIF files in the
config
directory. -
Customize DS setup behavior by updating the setup and post-init runtime scripts in the
runtime-scripts
directory. -
Build an updated DS Docker image that contains the above-mentioned customizations.
-
Redeploy DS.
-
Verify the changes you’ve made to the DS configuration are in the new Docker image.
Detailed steps
-
Verify that:
-
You have access to a single-instance ForgeOps deployment.
-
The namespace where the platform is deployed is set in your Kubernetes context.
-
All required third-party software is installed in your local environment (Minikube|GKE|EKS|AKS).
-
You have set up your environment to push to your Docker registry.
-
-
Perform version control activities on your
forgeops
repository clone:-
Run the git status command.
-
(Optional) Run the git commit command to commit the changes.
-
-
Add your DS customizations:
-
Learn more at custom LDAP configuration to add LDAP configuration.
-
Learn more in custom LDAP schema to add LDAP schema.
-
Customize DS’s setup behavior in the /path/to/forgeops/docker/ds/ds-new directory:
-
To set up profiles and indexes, edit the
runtime-scripts/setup
script. Learn more insetup
script details. -
To add custom configurations after indexes have been rebuilt, edit the
runtime-scripts/post-init
script. Learn more inpost-init
script details. -
To prepare the DS docker image for setup, edit the
ds-setup.sh
script. Learn more inds-setup.sh
script details.
-
-
-
Identify the repository where you’ll push the Docker image. You’ll use this location to specify the --push-to argument value in the build ds image step.
-
Decide on the DS image tag for each build of the image. You’ll use this tag to specify the
--tag
argument value in the build DS image step. -
Build a new DS image that includes your customization:
$ cd /path/to/forgeops/bin $ ./forgeops build ds --env-name my-env --config-profile my-profile --push-to my-repo --tag my-ds-tag
-
Redeploy DS using your new DS image:
-
Deploy using the
forgeops
command -
Deploy using Helm
The forgeops build
command calls Docker to build a new ds
Docker image and
to push the image to your Docker repository. The new image includes your custom
LDAP and schema files. It also updates the image defaulter file so that the next
time you install DS, the deployed DS server includes your custom DS image.
Perform version control activities on your forgeops
repository clone:
-
Run the git status command.
Review the state of the kustomize/deploy/image-defaulter/kustomization.yaml file.
-
(Optional) Run the git commit command to commit changes to the image defaulter file.
-
Remove DS from your ForgeOps deployment:
$ ./forgeops delete ds --env-name my-env ... deployment.apps "ds" deleted
-
Delete the PVCs attached to DS pods using the kubectl delete pvc command.
-
Redeploy DS using the new Docker image:
$ ./forgeops apply ds --env-name my-env --single-instance Checking cert-manager and related CRDs: cert-manager CRD found in cluster. Checking secret-agent operator and related CRDs: secret-agent CRD found in cluster
-
Locate the repository and tag for the new DS Docker image from the forgeops build command output.
-
Delete the PVCs attached to DS pods using the kubectl delete pvc command.
If the attached DS pod is running, the PVC is not deleted immediately. So you should stop the running DS pods.
In another terminal window, stop the DS pods using the kubectl delete pods command. This deletes the pods and its attached PVC.
-
Redeploy DS using the new Docker image:
$ cd /path/to/forgeops/charts/identity-platform $ helm upgrade identity-platform ./ \ --version 2025.1.0 --namespace my-namespace \ --set 'ds.image.repository=my-repository' \ --set 'ds.image.tag=my-ds-tag'