Deploy Elastic Package Registry on Elastic Cloud on Kubernetes
Elastic Cloud on Kubernetes extends Kubernetes orchestration capabilities to allow you to deploy and manage components of the Elastic Stack. Availability This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
ECK
3.3+
Generally available since 3.3
The Elastic Package Registry is a service that stores Elastic package definitions in a central location, making it easier to manage integrations in air-gapped environments or when you need to use a private registry. You can deploy and manage the Elastic Package Registry (EPR) as a Kubernetes resource using ECK. When deployed with ECK, the registry runs as a containerized service in your Kubernetes cluster and can be used by Kibana instances to download and manage integration packages for Fleet.
Create a PackageRegistry resource to deploy the registry. By default, ECK deploys the lite distribution that matches spec.version. To use a different image, set spec.image. ECK uses that image as-is: operator flags that change the default image, such as --ubi-only and --container-suffix, don't apply to it.
This example deploys a single instance with the default image:
apiVersion: packageregistry.k8s.elastic.co/v1alpha1
kind: PackageRegistry
metadata:
name: package-registry-sample
namespace: default
spec:
version: 9.5.6
count: 1
The operator automatically creates the necessary Kubernetes resources, including:
- A Deployment for the Elastic Package Registry pods
- A Service to expose the Elastic Package Registry within your cluster
- TLS certificates for secure communication
The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability We plan to add this functionality in a future Elastic Stack update. Subject to changes. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Stack
Planned
Planned
If your environment requires FIPS 140-3 validated cryptography, set spec.image to a -fips distribution tag. This example uses the lite distribution, which is what ECK deploys by default. For all packages, use docker.elastic.co/package-registry/distribution:<version>-fips instead. For details on the FIPS images, refer to FIPS 140-3 images. To also run the operator itself in FIPS mode, refer to Deploy a FIPS compatible version of ECK.
The FIPS images have no UBI variant. If you run the operator with --ubi-only, setting a -fips image moves the registry off UBI.
apiVersion: packageregistry.k8s.elastic.co/v1alpha1
kind: PackageRegistry
metadata:
name: package-registry-sample
namespace: default
spec:
version: 9.5.6
count: 1
image: docker.elastic.co/package-registry/distribution:lite-9.5.6-fips
After deploying the Elastic Package Registry, configure your Kibana instance to use it by setting the spec.packageRegistryRef field:
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: kibana-sample
namespace: default
spec:
version: 9.5.6
count: 1
packageRegistryRef:
name: package-registry-sample
Refer to the recipes directory in the ECK source repository for additional configuration examples.
Since the Elastic Package Registry distribution images contain a snapshot of packages, if you are seeing issues where packages are not available, ensure you're using the correct image version that is equal to or greater than your Elastic Stack version.
By default, ECK deploys the lite Elastic Package Registry distribution, that matches the .spec.version configured. For the latest packages, specify .spec.image and use the production or lite distribution tags, for example:
docker.elastic.co/package-registry/distribution:production- All packages from the production registry. This image is updated every time a new version of a package gets published.docker.elastic.co/package-registry/distribution:lite- Subset of commonly used packages. This image is updated every time a new version of a package gets published.
apiVersion: packageregistry.k8s.elastic.co/v1alpha1
kind: PackageRegistry
metadata:
name: package-registry-sample
namespace: default
spec:
version: 9.5.6
count: 1
image: docker.elastic.co/package-registry/distribution:production