Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,24 @@ helm install eck-stack-with-apm-server elastic/eck-stack \
--values https://raw.githubusercontent.com/elastic/cloud-on-k8s/{{version.eck | M.M}}/deploy/eck-stack/examples/apm-server/basic.yaml -n elastic-stack
```

## Package Registry along with {{es}} and {{kib}} [k8s-install-package-registry-elasticsearch-kibana-helm]

```{applies_to}
eck: ga 3.3
```

The following section describes how to install a {{package-registry}} resource along with {{es}}, {{kib}} and {{fleet-server}}.

```sh subs=true
# Install an eck-managed {{es}}, {{kib}} and {{fleet-server}} and connect to {{package-registry}} using custom values.
helm install eck-stack-with-package-registry elastic/eck-stack \
--values https://raw.githubusercontent.com/elastic/cloud-on-k8s/{{version.eck | M.M}}/deploy/eck-stack/examples/package-registry/basic-eck.yaml -n elastic-stack
```

The `eck-package-registry` chart creates a `PackageRegistry` resource that connects your {{kib}} instance to the {{package-registry}}. {{eck}} automatically handles the creation of the {{package-registry}} and the connection to {{kib}} and {{fleet-server}}.

For more information about configuring the {{package-registry}}, refer to the [](/deploy-manage/deploy/cloud-on-k8s/package-registry.md).

## Enterprise Search server along with {{es}} and {{kib}} [k8s-install-enterprise-search-elasticsearch-kibana-helm]

Enterprise Search is not available in {{stack}} versions 9.0 and later. For an example deployment of {{es}} version 8.x, {{kib}} 8.x, and an 8.x Enterprise Search server using the Helm chart, refer to the [previous ECK documentation](https://www.elastic.co/guide/en/cloud-on-k8s/2.16/k8s-stack-helm-chart.html).
Expand Down Expand Up @@ -192,4 +210,5 @@ helm show values elastic/eck-beats
helm show values elastic/eck-apm-server
helm show values elastic/eck-fleet-server
helm show values elastic/eck-logstash
helm show values elastic/eck-package-registry
```
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ The following guides provide specific instructions for deploying and configuring
* [Elastic Maps Server](elastic-maps-server.md)
* [Beats](beats.md)
* [{{ls}}](logstash.md)
* [{{package-registry}}](package-registry.md)

::::{note}
Enterprise Search is not available in {{stack}} versions 9.0 and later. To deploy or manage Enterprise Search in earlier versions, refer to the [previous ECK documentation](https://www.elastic.co/guide/en/cloud-on-k8s/2.16/k8s-enterprise-search.html).
Expand Down
80 changes: 80 additions & 0 deletions deploy-manage/deploy/cloud-on-k8s/package-registry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
navigation_title: Elastic Package Registry
applies_to:
deployment:
eck: ga 3.3
products:
- id: cloud-kubernetes
---

# Deploy {{package-registry}} on {{eck}} [k8s-package-registry]

The {{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 {{package-registry}} (EPR) as a {{k8s}} resource using ECK. When deployed with ECK, the registry runs as a containerized service in your {{k8s}} cluster and can be used by {{kib}} instances to download and manage integration packages for {{fleet}}.

## Deploy the Package Registry

To deploy the {{package-registry}}, create a `PackageRegistry` resource:

```yaml subs=true
apiVersion: packageregistry.k8s.elastic.co/v1alpha1
kind: PackageRegistry
metadata:
name: package-registry-sample
namespace: default
spec:
version: {{version.stack}}
count: 1
```

The operator automatically creates the necessary {{k8s}} resources, including:

* A Deployment for the {{package-registry}} pods
* A Service to expose the {{package-registry}} within your cluster
* TLS certificates for secure communication

## Connect {{kib}} to the Package Registry

After deploying the {{package-registry}}, configure your {{kib}} instance to use it by setting the `spec.packageRegistryRef` field:

```yaml subs=true
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: kibana-sample
namespace: default
spec:
version: {{version.stack}}
count: 1
packageRegistryRef:
name: package-registry-sample
```

Refer to the [recipes directory](https://github.com/elastic/cloud-on-k8s/tree/{{version.eck | M.M}}/config/recipes/packageregistry) in the ECK source repository for additional configuration examples.

## Troubleshooting

### Packages are not available

Since the {{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 {{stack}} version. For the latest packages, use the `production` or `lite` distribution tags, for example:

Check notice on line 58 in deploy-manage/deploy/cloud-on-k8s/package-registry.md

View workflow job for this annotation

GitHub Actions / preview / vale

Elastic.Wordiness: Consider using 'because' instead of 'Since'.

* `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

```yaml subs=true
apiVersion: packageregistry.k8s.elastic.co/v1alpha1
kind: PackageRegistry
metadata:
name: package-registry-sample
namespace: default
spec:
version: {{version.stack}}
count: 1
image: docker.elastic.co/package-registry/distribution:production-{{version.stack}}
```

## See also

Check notice on line 75 in deploy-manage/deploy/cloud-on-k8s/package-registry.md

View workflow job for this annotation

GitHub Actions / preview / vale

Elastic.WordChoice: Consider using 'refer to (if it's a document), view (if it's a UI element)' instead of 'See', unless the term is in the UI.

* [](configuration-fleet.md)
* [](air-gapped-install.md)
* [](/reference/fleet/epr-proxy-setting.md)
* [](/reference/fleet/air-gapped.md#air-gapped-diy-epr)
2 changes: 2 additions & 0 deletions deploy-manage/deploy/self-managed/air-gapped-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ Refer to [Connect to {{ems}}](../../../explore-analyze/visualize/maps/maps-conne

## {{package-registry}} [air-gapped-elastic-package-registry]

If using {{eck}}, you can follow the instructions in [Deploy {{package-registry}} on {{eck}}](/deploy-manage/deploy/cloud-on-k8s/package-registry.md).

Air-gapped install of the EPR is possible using any OCI-compatible runtime like Podman (a typical choice for RHEL-like Linux systems) or Docker. Links to the official container image and usage guide is available on the [Air-gapped environments](/reference/fleet/air-gapped.md) page in the {{fleet}} and {{agent}} Guide.

::::{note}
Expand Down
1 change: 1 addition & 0 deletions deploy-manage/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,7 @@ toc:
- file: deploy/cloud-on-k8s/configuration-examples-logstash.md
- file: deploy/cloud-on-k8s/update-strategy-logstash.md
- file: deploy/cloud-on-k8s/advanced-configuration-logstash.md
- file: deploy/cloud-on-k8s/package-registry.md
- file: deploy/cloud-on-k8s/create-custom-images.md
- file: deploy/cloud-on-k8s/tools-apis.md
- file: deploy/self-managed.md
Expand Down
2 changes: 1 addition & 1 deletion reference/fleet/air-gapped.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ See the {{elastic-sec}} Solution documentation for air-gapped [offline endpoints

::::


When upgrading all the components in an air-gapped environment, it is recommended that you upgrade in the following order:

1. Upgrade the {{package-registry}}.
Expand Down Expand Up @@ -106,6 +105,7 @@ For more information, refer to [Using a proxy server with {{agent}} and {{fleet}
The {{package-registry}} packages include signatures used in [package verification](/reference/fleet/package-signatures.md). By default, {{fleet}} uses the Elastic public GPG key to verify package signatures. If you ever need to change this GPG key, use the `xpack.fleet.packageVerification.gpgKeyPath` setting in [`kibana.yml`](/deploy-manage/stack-settings.md). For more information, refer to [{{fleet}} settings](kibana://reference/configuration-reference/fleet-settings.md).
::::

If using {{eck}}, you can follow the instructions in [Deploy {{package-registry}} on {{eck}}](/deploy-manage/deploy/cloud-on-k8s/package-registry.md).

If routing traffic through a proxy server is not an option, you can host your own {{package-registry}}.

Expand Down