package
0.0.0-20240928232002-2583a758a6a6
Repository: https://github.com/pulp/pulp-operator.git
Documentation: pkg.go.dev

# README

Custom Resources

Sub Resources

Api

Api defines desired state of pulpcore-api resources

FieldDescriptionSchemeRequired
replicasSize is the size of number of pulp-api replicas. Default: 1int32true
affinityAffinity is a group of affinity scheduling rules.*corev1.Affinityfalse
node_selectorNodeSelector for the Pulp pods.map[string]stringfalse
tolerationsNode tolerations for the Pulp pods.[]corev1.Tolerationfalse
topology_spread_constraintsTopology rule(s) for the pods.[]corev1.TopologySpreadConstraintfalse
gunicorn_timeoutThe timeout for the gunicorn process. Default: 90intfalse
gunicorn_workersThe number of gunicorn workers to use for the api. Default: 2intfalse
resource_requirementsResource requirements for the pulp api container.corev1.ResourceRequirementsfalse
readinessProbePeriodic probe of container service readiness. Container will be removed from service endpoints if the probe fails.*corev1.Probefalse
livenessProbePeriodic probe of container liveness. Container will be restarted if the probe fails.*corev1.Probefalse
pdbPodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods*policy.PodDisruptionBudgetSpecfalse
strategyThe deployment strategy to use to replace existing pods with new ones.appsv1.DeploymentStrategyfalse
init_containerInitContainer defines configuration of the init-containers that run in pulpcore podsPulpContainerfalse
env_varsEnvironment variables to add to pulpcore-api container[]corev1.EnvVarfalse
deployment_annotationsAnnotations for the api deploymentmap[string]stringfalse

Back to Custom Resources

Cache

Cache defines desired state of redis resources

FieldDescriptionSchemeRequired
external_cache_secretName of the secret with the parameters to connect to an external Redis clusterstringfalse
enabledDefines if cache should be enabled. Default: trueboolfalse
redis_imageThe image name for the redis image. Default: "redis:latest"stringfalse
redis_storage_classStorage class to use for the Redis PVCstringfalse
redis_portThe port that will be exposed by Redis Service. [default: 6379]intfalse
redis_resource_requirementsResource requirements for the Redis containercorev1.ResourceRequirementsfalse
pvcPersistenVolumeClaim name that will be used by Redis pods If defined, the PVC must be provisioned by the user and the operator will only configure the deployment to use itstringfalse
readinessProbePeriodic probe of container service readiness. Container will be removed from service endpoints if the probe fails.*corev1.Probefalse
livenessProbePeriodic probe of container liveness. Container will be restarted if the probe fails.*corev1.Probefalse
affinityAffinity is a group of affinity scheduling rules.*corev1.Affinityfalse
tolerationsNode tolerations for the Pulp pods.[]corev1.Tolerationfalse
node_selectorNodeSelector for the Pulp pods.map[string]stringfalse
strategyThe deployment strategy to use to replace existing pods with new ones.appsv1.DeploymentStrategyfalse
deployment_annotationsAnnotations for the cache deploymentmap[string]stringfalse

Back to Custom Resources

Content

Content defines desired state of pulpcore-content resources

FieldDescriptionSchemeRequired
replicasSize is the size of number of pulp-content replicas. Default: 2int32true
resource_requirementsResource requirements for the pulp-content containercorev1.ResourceRequirementsfalse
affinityAffinity is a group of affinity scheduling rules.*corev1.Affinityfalse
node_selectorNodeSelector for the Pulp pods.map[string]stringfalse
tolerationsNode tolerations for the Pulp pods.[]corev1.Tolerationfalse
topology_spread_constraintsTopology rule(s) for the pods.[]corev1.TopologySpreadConstraintfalse
gunicorn_timeoutThe timeout for the gunicorn process. Default: 90intfalse
gunicorn_workersThe number of gunicorn workers to use for the api. Default: 2intfalse
readinessProbePeriodic probe of container service readiness. Container will be removed from service endpoints if the probe fails.*corev1.Probefalse
livenessProbePeriodic probe of container liveness. Container will be restarted if the probe fails.*corev1.Probefalse
pdbPodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods*policy.PodDisruptionBudgetSpecfalse
strategyThe deployment strategy to use to replace existing pods with new ones.appsv1.DeploymentStrategyfalse
init_containerInitContainer defines configuration of the init-containers that run in pulpcore podsPulpContainerfalse
env_varsEnvironment variables to add to pulpcore-content container[]corev1.EnvVarfalse
deployment_annotationsAnnotations for the content deploymentmap[string]stringfalse

Back to Custom Resources

Database

Database defines desired state of postgres

FieldDescriptionSchemeRequired
external_db_secretSecret name with the configuration to use an external databasestringfalse
versionPostgreSQL version [default: "13"]stringfalse
postgres_portPostgreSQL port. Default: 5432intfalse
postgres_ssl_modeConfigure PostgreSQL connection sslmode option. Default: "prefer"stringfalse
postgres_imagePostgreSQL container image. Default: "postgres:13"stringfalse
postgres_extra_argsArguments to pass to postgres process[]stringfalse
postgres_data_pathRegistry path to the PostgreSQL container to use. Default: "/var/lib/postgresql/data/pgdata"stringfalse
postgres_initdb_argsArguments to pass to PostgreSQL initdb command when creating a new cluster. Default: "--auth-host=scram-sha-256"stringfalse
postgres_host_auth_methodPostgreSQL host authentication method. Default: "scram-sha-256"stringfalse
postgres_resource_requirementsResource requirements for the database container.corev1.ResourceRequirementsfalse
affinityAffinity is a group of affinity scheduling rules.*corev1.Affinityfalse
node_selectorNodeSelector for the database pod.map[string]stringfalse
tolerationsNode tolerations for the database pod.[]corev1.Tolerationfalse
postgres_storage_requirementsTemporarily modifying it as a string to avoid an issue with backup and json.Unmarshal when set as resource.Quantity and no value passed on pulp CR, during backup steps json.Unmarshal is settings it with "0"stringfalse
postgres_storage_className of the StorageClass required by the claim.*stringfalse
pvcPersistenVolumeClaim name that will be used by database pods If defined, the PVC must be provisioned by the user and the operator will only configure the deployment to use itstringfalse
readinessProbePeriodic probe of container service readiness. Container will be removed from service endpoints if the probe fails.*corev1.Probefalse
livenessProbePeriodic probe of container liveness. Container will be restarted if the probe fails.*corev1.Probefalse

Back to Custom Resources

LDAP

LDAP defines the ldap resources used by pulpcore containers to integrate Pulp with LDAP authentication

FieldDescriptionSchemeRequired
configThe name of the Secret with ldap config.stringfalse
caThe name of the Secret with the CA chain to connect to ldap server.stringfalse

Back to Custom Resources

Pulp

Pulp is the Schema for the pulps API

FieldDescriptionSchemeRequired
metadatametav1.ObjectMetafalse
specPulpSpecfalse
statusPulpStatusfalse

Back to Custom Resources

PulpContainer

PulpContainer defines configuration of the "auxiliary" containers that run in pulpcore pods

FieldDescriptionSchemeRequired
imageThe image name for the container. By default, if not provided, it will use the same image from .Spec.Image. WARN: defining a different image than the one used by API pods can cause unexpected behaviors!stringfalse
resource_requirementsResource requirements for pulpcore aux container.corev1.ResourceRequirementsfalse
env_varsEnvironment variables to add to the container[]corev1.EnvVarfalse

Back to Custom Resources

PulpJob

PulpJob defines the jobs used by pulpcore containers to run single-shot administrative tasks

FieldDescriptionSchemeRequired
containerPulpContainerfalse

Back to Custom Resources

PulpList

PulpList contains a list of Pulp

FieldDescriptionSchemeRequired
metadatametav1.ListMetafalse
items[]Pulptrue

Back to Custom Resources

PulpSpec

PulpSpec defines the desired state of Pulp

FieldDescriptionSchemeRequired
unmanagedDefine if the operator should stop managing Pulp resources. If set to true, the operator will not execute any task (it will be "disabled"). Default: falseboolfalse
enable_debuggingBy default Pulp logs at INFO level, but enabling DEBUG logging can be a helpful thing to get more insight when things don’t go as expected. Default: falseboolfalse
deployment_typeName of the deployment type. Default: "pulp"stringfalse
file_storage_sizeThe size of the file storage; for example 100Gi. This field should be used only if file_storage_storage_class is providedstringfalse
file_storage_access_modeThe file storage access mode. This field should be used only if file_storage_storage_class is providedstringfalse
file_storage_storage_classStorage class to use for the file persistentVolumeClaimstringfalse
object_storage_azure_secretThe secret for Azure compliant object storage configuration.stringfalse
object_storage_s3_secretThe secret for S3 compliant object storage configuration.stringfalse
pvcPersistenVolumeClaim name that will be used by Pulp pods. If defined, the PVC must be provisioned by the user and the operator will only configure the deployment to use itstringfalse
db_fields_encryption_secretSecret where the Fernet symmetric encryption key is stored. Default: <operators's name>-"-db-fields-encryption"stringfalse
signing_secretName of the Secret where the gpg key is stored.stringfalse
signing_scripts_configmap[DEPRECATED] ConfigMap where the signing scripts are stored. This field is deprecated and will be removed in the future, use the signing_scripts field instead.stringfalse
signing_scriptsName of the Secret where the signing scripts are stored.stringfalse
ingress_typeThe ingress type to use to reach the deployed instance. Default: none (will not expose the service)stringfalse
ingress_annotationsAnnotations for the Ingressmap[string]stringfalse
ingress_class_nameIngressClassName is used to inform the operator which ingressclass should be used to provision the ingress. Default: "" (will use the default ingress class)stringfalse
is_nginx_ingressDefine if the IngressClass provided has Nginx as Ingress Controller. If the Ingress Controller is not nginx the operator will automatically provision pulp-web pods to redirect the traffic. If it is a nginx controller the traffic will be forwarded to api and content pods. This variable is a workaround to avoid having to grant a ClusterRole (to do a get into the IngressClass and verify the controller). Default: falseboolfalse
ingress_hostIngress DNS hoststringfalse
ingress_tls_secretIngress TLS secretstringfalse
route_hostRoute DNS host. Default: <operator's name> + "." + ingress.Spec.Domainstringfalse
route_labelsRouteLabels will append custom label(s) into routes (used by router shard routeSelector). Default: {"pulp_cr": "<operator's name>", "owner": "pulp-dev" }map[string]stringfalse
route_annotationsRouteAnnotations will append custom annotation(s) into routes (used by router shard routeSelector).map[string]stringfalse
route_tls_secretName of the secret with the certificates/keys used by route encryptionstringfalse
nodeport_portProvide requested port valueint32false
haproxy_timeoutThe timeout for HAProxy. Default: "180s"stringfalse
nginx_client_max_body_sizeThe client max body size for Nginx Ingress. Default: "10m"stringfalse
nginx_proxy_body_sizeThe proxy body size for Nginx Ingress. Default: "0"stringfalse
nginx_proxy_read_timeoutThe proxy read timeout for Nginx Ingress. Default: "120s"stringfalse
nginx_proxy_connect_timeoutThe proxy connect timeout for Nginx Ingress. Default: "120s"stringfalse
nginx_proxy_send_timeoutThe proxy send timeout for Nginx Ingress. Default: "120s"stringfalse
container_token_secretSecret where the container token certificates are stored. Default: <operator's name> + "-container-auth"stringfalse
container_auth_public_key_namePublic Key name from <operator's name> + \"-container-auth-certs\" Secret. Default: "container_auth_public_key.pem"stringfalse
container_auth_private_key_namePrivate Key name from <operator's name> + \"-container-auth-certs\" Secret. Default: "container_auth_private_key.pem"stringfalse
imageThe image name (repo name) for the pulp image. Default: "quay.io/pulp/pulp-minimal:stable"stringfalse
image_versionThe image version for the pulp image. Default: "stable"stringfalse
inhibit_version_constraintRelax the check of image_version and image_web_version not matching. Default: "false"boolfalse
image_pull_policyImage pull policy for container image. Default: "IfNotPresent"stringfalse
apiApi defines desired state of pulpcore-api resourcesApitrue
databaseDatabase defines desired state of postgres resourcesDatabasefalse
contentContent defines desired state of pulpcore-content resourcesContentfalse
workerWorker defines desired state of pulpcore-worker resourcesWorkerfalse
webWeb defines desired state of pulpcore-web (reverse-proxy) resourcesWebfalse
cacheCache defines desired state of redis resourcesCachefalse
pulp_settings[DEPRECATED] Definition of /etc/pulp/settings.py config file. This field is deprecated and will be removed in the future, use the custom_pulp_settings field instead.runtime.RawExtensionfalse
custom_pulp_settingsName of the ConfigMap to define Pulp configurations not available through this CR.stringfalse
image_webThe image name (repo name) for the pulp webserver image. Default: "quay.io/pulp/pulp-web"stringfalse
image_web_versionThe image version for the pulp webserver image. Default: "stable"stringfalse
admin_password_secretSecret where the administrator password can be found. Default: <operator's name> + "-admin-password"stringfalse
image_pull_secretsImage pull secrets for container images. Default: [][]stringfalse
sa_annotationsServiceAccount.metadata.annotations that will be used in Pulp pods.map[string]stringfalse
sa_labelsServiceAccount.metadata.labels that will be used in Pulp pods.map[string]stringfalse
sso_secretSecret where Single Sign-on configuration can be foundstringfalse
mount_trusted_caDefine if the operator should or should not mount the custom CA certificates added to the cluster via cluster-wide proxy config. Default: falseboolfalse
deploy_ee_defaultsDefine if the operator should or should not deploy the default Execution Environments. Default: falseboolfalse
ee_defaultsName of the ConfigMap with the list of Execution Environments that should be synchronized. Default: ee-default-imagesstringfalse
admin_password_jobJob to reset pulp admin passwordPulpJobfalse
migration_jobJob to run django migrationsPulpJobfalse
signing_jobJob to store signing metadata scriptsPulpJobfalse
disable_migrationsDisable database migrations. Useful for situations in which we don't want to automatically run the database migrations, for example, during restore.boolfalse
pulp_secret_keyName of the Secret to provide Django cryptographic signing. Default: "pulp-secret-key"stringfalse
allowed_content_checksumsList of allowed checksum algorithms used to verify repository's integrity. Valid options: ["md5","sha1","sha256","sha512"].[]stringfalse
loadbalancer_protocolProtocol used by pulp-web service when ingress_type==loadbalancerstringfalse
loadbalancer_portPort exposed by pulp-web service when ingress_type==loadbalancerint32false
telemetryTelemetry defines the OpenTelemetry configurationTelemetryfalse
ldapLDAP defines the ldap resources used by pulpcore containers to integrate Pulp with LDAP authenticationLDAPfalse
ipv6_disabledDisable ipv6 for pulpcore and pulp-web pods*boolfalse

Back to Custom Resources

PulpStatus

PulpStatus defines the observed state of Pulp

FieldDescriptionSchemeRequired
conditions[]metav1.Conditiontrue
deployment_typeName of the deployment type.stringfalse
object_storage_azure_secretThe secret for Azure compliant object storage configuration.stringfalse
object_storage_s3_secretThe secret for S3 compliant object storage configuration.stringfalse
db_fields_encryption_secretSecret where the Fernet symmetric encryption key is stored.stringfalse
imageName of pulp image deployed.stringfalse
ingress_typeThe ingress type to use to reach the deployed instancestringfalse
ingress_class_nameIngressClassName is used to inform the operator which ingressclass should be used to provision the ingress.stringfalse
container_token_secretSecret where the container token certificates are stored.stringfalse
admin_password_secretSecret where the administrator password can be foundstringfalse
external_cache_secretName of the secret with the parameters to connect to an external Redis clusterstringfalse
telemetry_enabledPulp metrics collection enabledboolfalse
pulp_secret_keyName of the Secret to provide Django cryptographic signing.stringfalse
allowed_content_checksumsList of allowed checksum algorithms used to verify repository's integrity.stringfalse
last_deployment_updateController status to keep tracking of deployment updatesstringfalse
managed_cache_enabledCache deployed by pulp-operator enabledboolfalse
storage_typeType of storage in use by pulpcore podsstringfalse

Back to Custom Resources

Telemetry

Telemetry defines the configuration for OpenTelemetry used by Pulp

FieldDescriptionSchemeRequired
enabledEnable Pulp Telemetry Default: falseboolfalse
exporter_otlp_protocolDefines the protocol used by the instrumentator to comunicate with the collector Default: http/protobufstringfalse
otel_collector_imageDefines the image to be used as collectorstringfalse
otel_collector_image_versionThe image version for opentelemetry-collector image. Default: "latest"stringfalse
resource_requirementsResource requirements for the sidecar container.corev1.ResourceRequirementsfalse

Back to Custom Resources

Web

Web defines desired state of pulpcore-web (reverse-proxy) resources

FieldDescriptionSchemeRequired
replicasSize is the size of number of pulp-web replicas. Default: 1int32true
resource_requirementsResource requirements for the pulp-web containercorev1.ResourceRequirementsfalse
readinessProbePeriodic probe of container service readiness. Container will be removed from service endpoints if the probe fails.*corev1.Probefalse
livenessProbePeriodic probe of container liveness. Container will be restarted if the probe fails.*corev1.Probefalse
node_selectorNodeSelector for the Web pods.map[string]stringfalse
pdbPodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods*policy.PodDisruptionBudgetSpecfalse
strategyThe deployment strategy to use to replace existing pods with new ones.appsv1.DeploymentStrategyfalse
service_annotationsAnnotations for the servicemap[string]stringfalse
tls_termination_mechanismThe secure TLS termination mechanism to use Default: "edge"stringfalse
env_varsEnvironment variables to add to pulpcore-web container[]corev1.EnvVarfalse
deployment_annotationsAnnotations for the web deploymentmap[string]stringfalse

Back to Custom Resources

Worker

Worker defines desired state of pulpcore-worker resources

FieldDescriptionSchemeRequired
replicasSize is the size of number of pulp-worker replicas. Default: 2int32true
resource_requirementsResource requirements for the pulp-api containercorev1.ResourceRequirementsfalse
affinityAffinity is a group of affinity scheduling rules.*corev1.Affinityfalse
node_selectorNodeSelector for the Pulp pods.map[string]stringfalse
tolerationsNode tolerations for the Pulp pods.[]corev1.Tolerationfalse
topology_spread_constraintsTopology rule(s) for the pods.[]corev1.TopologySpreadConstraintfalse
readinessProbePeriodic probe of container service readiness. Container will be removed from service endpoints if the probe fails.*corev1.Probefalse
livenessProbePeriodic probe of container liveness. Container will be restarted if the probe fails.*corev1.Probefalse
pdbPodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods*policy.PodDisruptionBudgetSpecfalse
strategyThe deployment strategy to use to replace existing pods with new ones.appsv1.DeploymentStrategyfalse
init_containerInitContainer defines configuration of the init-containers that run in pulpcore podsPulpContainerfalse
env_varsEnvironment variables to add to pulpcore-worker container[]corev1.EnvVarfalse
deployment_annotationsAnnotations for the worker deploymentmap[string]stringfalse

Back to Custom Resources

# Constants

No description provided by the author
No description provided by the author
No description provided by the author

# Structs

ApiResource has the definition and function to provision api objects.
ContentResource has the definition and function to provision content objects.
DeploymentAPIVanilla is the pulpcore-api Deployment definition for common k8s distributions.
DeploymentContentVanilla is the pulpcore-content Deployment definition for common k8s distributions.
DeploymentObj represents the k8s "Deployment" resource.
DeploymentWorkerVanilla is the pulpcore-worker Deployment definition for common k8s distributions.
GalaxyResource has the definition and function to provision galaxy objects.
No description provided by the author
IngressObj represents the k8s "Ingress" resource.
No description provided by the author
RepoManagerReconciler reconciles a Pulp object.
ResourceDefinition has the attributes of a Pulp Resource.

# Interfaces

Deployer is an interface for the several deployment types: - api Deployment in vanilla k8s or OCP - content Deployment in vanilla k8s or OCP - worker Deployment in vanilla k8s or OCP.
Ingresser is an interface for the several ingress types/controllers (nginx,haproxy).