This Helm chart deploys the Pulp Operator and related resources to manage Pulp clusters on Kubernetes.
- Installs the Pulp Operator and its RBAC resources
- Supports custom namespaces for operator and managed clusters
- Configurable images, resource limits, and security contexts
- Deploys required ServiceAccounts, Roles, RoleBindings, ClusterRoles, and ClusterRoleBindings
All options can be set in your values.yaml
or via --set
on the Helm CLI.
Value | Description | Default |
---|---|---|
fullnameOverride |
Override generated resource names | pulp-operator |
image |
Operator container image | quay.io/pulp/pulp-operator:v1.0.0 |
namespace |
Namespace for managed Pulp cluster resources | pulp |
operatorNamespace |
Namespace for operator resources | .Values.namespace |
podSecurityContext |
Pod security context for operator pods | See values.yaml |
imagePullSecrets |
List of image pull secrets | See values.yaml |
operator.securityContext |
Security context for operator container | See values.yaml |
operator.resources |
Resource requests/limits for operator container | See values.yaml |
operator.relatedImages |
Images for pulp, pulpWeb, redis, postgres | See values.yaml |
kubeProxy.image |
Image for kube-rbac-proxy | See values.yaml |
kubeProxy.securityContext |
Security context for kube-rbac-proxy | See values.yaml |
kubeProxy.resources |
Resource requests/limits for kube-rbac-proxy | See values.yaml |
-
Create the target namespaces (or use
--create-namespace
):kubectl create namespace <operatorNamespace> kubectl create namespace <namespace> # Or let Helm create them: helm install <release> ./helm-charts -n <operatorNamespace> --create-namespace -f my-values.yaml
-
Install the chart:
helm install <release> ./helm-charts -n <operatorNamespace> --create-namespace -f my-values.yaml
namespace: pulp
operatorNamespace: pulp-operator
image: quay.io/pulp/pulp-operator:v1.0.0
# ...other options...
- The operator will be running in
<operatorNamespace>
. - Managed Pulp resources will be created in
<namespace>
. - Check the operator manager pod status:
kubectl get pods -n <operatorNamespace>
- View operator logs:
kubectl logs -n <operatorNamespace> deployment/pulp-operator-controller-manager
- To uninstall:
helm uninstall <release> -n <operatorNamespace>
After installing the operator, you must create a Pulp custom resource (CR) to trigger the deployment of a Pulp cluster. Below is a sample manifest based on the official minimal.yaml
example:
---
apiVersion: repo-manager.pulpproject.org/v1
kind: Pulp
metadata:
name: example-pulp
spec:
database:
postgres_storage_class: standard
file_storage_storage_class: standard
file_storage_access_mode: "ReadWriteMany"
file_storage_size: "2Gi"
Apply these manifests in your managed namespace (e.g., dev-pulp
):
kubectl apply -f <your-manifest>.yaml -n <namespace>
For more advanced configuration, see the upstream samples.
- Edit your values file to change images, resource limits, or security settings.
- For advanced configuration (e.g., operator configmap), see chart templates and documentation.
For issues or questions, open an issue in this repository or see the upstream Pulp Operator documentation.
The Pulp Operator can be provisioned using Terraform to automate deployment and management of Pulp clusters on Kubernetes. This repository includes example Terraform configurations in the terraform/
directory.
- Deploys the Pulp Operator and required RBAC resources
- Provisions namespaces, ConfigMaps, and custom resources for Pulp clusters
- Supports customization via Terraform variables
- Review and update variables in
terraform.tfvars
to match your environment. - Initialize Terraform:
terraform -chdir=terraform init
- Apply the configuration:
terraform -chdir=terraform apply
- Terraform will create the necessary namespaces, ConfigMaps, and Pulp custom resources.
A minimal example is provided in terraform/pulp-simple.tf
to deploy a basic Pulp cluster. You can customize storage classes, resource sizes, and other options in the variables file.
- Ensure your Kubernetes context is set correctly before running Terraform.
- You may need appropriate permissions to create resources in the target cluster.
- For advanced customization, edit the Terraform files or add new resources as needed.