Expose Pulp to outside of Kubernetes cluster¶
To configure how Pulp will be externally accessible it is possible to define the ingress_type
with
the following options:
nodeport
: expose Pulp resources through a k8sNodePort
Service
ingress
: expose Pulp resources using k8sIngress
route
: expose Pulp resources by creating OCPRoutes
(available only in OpenShift clusters)loadbalancer
: expose Pulp resources through a k8sLoadBalancer
Service
Only a single definition of ingress_type
is allowed, which means, if Pulp CR is
configured with ingress_type: nodeport
it is not possible to also define Pulp operator
to deploy route
or loadbalancer
resources for example.
If the configuration deployed by Pulp operator does not meet the required architecture
it is possible to manually provision the desired resources following the samples
provided in this documentation. For example, if it is required to deploy route
resources to allow external access to Pulp, but also pulp-web
to serve as a reverse proxy
for internal applications communication, the operator can be configured with
ingress_type: route
and the pulp-web
resources should be manually provisioned.
NodePort¶
The nodeport
type will create pulp-web
load balancers that will redirect the
traffic of pulpcore-api
and pulpcore-content
pods. pulp-web
Service
will be
exposed on one port of every node.
It is possible to define the port that will be exposed, but if no one is defined
a random port from k8s service-node-port-range
definition will be used.
Example of nodeport
configuration:
spec:
ingress_type: nodeport
nodeport_port: 30001
For more information on what is a k8s Service
type LoadBalancer
check the Kubernetes project documentation.
Ingress¶
Defining ingress_type: ingress
will create Ingress
resources to Pulp endpoints.
Since the k8s Ingressess
will redirect the traffic to pulpcore components, there
will be no need to provision pulp-web
objects.
More information on configuring Pulp operator with Ingress
can be found in Reverse Proxy section .
Route¶
Note
Routes
are resources available only in OpenShift clusters.
Defining ingress_type: route
will create Route
resources to Pulp endpoints.
Since OCP Routes
will redirect the traffic to pulpcore components, there
will be no need to provision pulp-web
objects.
More information on configuring Pulp operator with Routes
can be found in Routes section.
LoadBalancer¶
The loadbalancer
type will create pulp-web
load balancers that will redirect the
traffic of pulpcore-api
and pulpcore-content
pods. pulp-web
will be exposed
by an external loadbalancer (if the cloud provider supports it).
Example of loadbalancer
configuration:
spec:
ingress_type: loadbalancer
For more information on what is a k8s Service
type LoadBalancer
check the Kubernetes project documentation.