Loading

Deploy Elastic Package Registry on Elastic Cloud on Kubernetes

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.

To deploy the Elastic Package Registry, create a PackageRegistry resource:

apiVersion: packageregistry.k8s.elastic.co/v1alpha1
kind: PackageRegistry
metadata:
  name: package-registry-sample
  namespace: default
spec:
  version: 9.3.0
  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

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.3.0
  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. For the latest packages, use the production or lite distribution tags, for example:

  • docker.elastic.co/package-registry/distribution:production - All packages from the production registry
  • docker.elastic.co/package-registry/distribution:lite - Subset of commonly used packages
apiVersion: packageregistry.k8s.elastic.co/v1alpha1
kind: PackageRegistry
metadata:
  name: package-registry-sample
  namespace: default
spec:
  version: 9.3.0
  count: 1
  image: docker.elastic.co/package-registry/distribution:production-9.3.0