diff --git a/deploy-manage/deploy/cloud-on-k8s/managing-deployments-using-helm-chart.md b/deploy-manage/deploy/cloud-on-k8s/managing-deployments-using-helm-chart.md index 19936a2e6b..5186e4e109 100644 --- a/deploy-manage/deploy/cloud-on-k8s/managing-deployments-using-helm-chart.md +++ b/deploy-manage/deploy/cloud-on-k8s/managing-deployments-using-helm-chart.md @@ -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). @@ -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 ``` diff --git a/deploy-manage/deploy/cloud-on-k8s/orchestrate-other-elastic-applications.md b/deploy-manage/deploy/cloud-on-k8s/orchestrate-other-elastic-applications.md index 6785da7562..12aaf04f9b 100644 --- a/deploy-manage/deploy/cloud-on-k8s/orchestrate-other-elastic-applications.md +++ b/deploy-manage/deploy/cloud-on-k8s/orchestrate-other-elastic-applications.md @@ -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). diff --git a/deploy-manage/deploy/cloud-on-k8s/package-registry.md b/deploy-manage/deploy/cloud-on-k8s/package-registry.md new file mode 100644 index 0000000000..4cc42083b1 --- /dev/null +++ b/deploy-manage/deploy/cloud-on-k8s/package-registry.md @@ -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: + +* `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 + +* [](configuration-fleet.md) +* [](air-gapped-install.md) +* [](/reference/fleet/epr-proxy-setting.md) +* [](/reference/fleet/air-gapped.md#air-gapped-diy-epr) diff --git a/deploy-manage/deploy/self-managed/air-gapped-install.md b/deploy-manage/deploy/self-managed/air-gapped-install.md index 0508f9b11a..0e84529e93 100644 --- a/deploy-manage/deploy/self-managed/air-gapped-install.md +++ b/deploy-manage/deploy/self-managed/air-gapped-install.md @@ -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} diff --git a/deploy-manage/toc.yml b/deploy-manage/toc.yml index 265b591fa2..a6c078c891 100644 --- a/deploy-manage/toc.yml +++ b/deploy-manage/toc.yml @@ -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 diff --git a/reference/fleet/air-gapped.md b/reference/fleet/air-gapped.md index 5a2719cd71..62a8c90f86 100644 --- a/reference/fleet/air-gapped.md +++ b/reference/fleet/air-gapped.md @@ -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}}. @@ -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}}.