Skip to content

Commit 7e2d99c

Browse files
authored
Merge branch 'main' into 2025/11/26/s3-linearizable-register-9_3_0
2 parents 41ec46a + 8262874 commit 7e2d99c

13 files changed

+318
-35
lines changed

deploy-manage/remote-clusters/_snippets/apikeys-local-ece-remote-private.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
This snippet is in use in the following locations:
33
- ece-remote-cluster-self-managed.md
44
- ece-remote-cluster-other-ece.md
5+
- ece-enable-ccs-for-eck.md
56
67
It requires remote_type substitution to be defined
78
-->
@@ -10,7 +11,7 @@ It requires remote_type substitution to be defined
1011

1112
Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters.
1213

13-
3. Access the **Security** page of the deployment.
14+
3. From the navigation menu, select **Security**.
1415
4. Select **Remote Connections > Add trusted environment** and choose **{{remote_type}}**. Then click **Next**.
1516
5. Select **API keys** as authentication mechanism and click **Next**.
1617
6. When asked whether the Certificate Authority (CA) of the remote environment’s proxy or load-balancing infrastructure is public, select **No, it is private**.
@@ -21,13 +22,13 @@ It requires remote_type substitution to be defined
2122
* For the **Remote cluster name**, enter the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
2223
* For the **Cross-cluster API key**, paste the encoded cross-cluster API key.
2324

24-
2. Click **Add** to save the API key to the keystore.
25+
2. Click **Add** to save the API key.
2526
3. Repeat these steps for each API key you want to add. For example, if you want to use several clusters of the remote environment for CCR or CCS.
2627

2728
8. Add the CA certificate of the remote environment.
2829
9. Provide a name for the trusted environment. That name will appear in the trust summary of your deployment's **Security** page.
2930
10. Select **Create trust** to complete the configuration.
30-
11. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
31+
11. Restart the local deployment to reload the new settings. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
3132

3233
::::{note}
3334
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.

deploy-manage/remote-clusters/_snippets/apikeys-local-ece-remote-public.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,24 @@ This snippet is in use in the following locations:
44
- ece-remote-cluster-same-ece.md
55
- ece-remote-cluster-other-ece.md
66
- ece-remote-cluster-ece-ess.md
7+
- ece-enable-ccs-for-eck.md
78
-->
89
1. [Log into the Cloud UI](/deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md).
910
2. On the **Deployments** page, select your deployment.
1011

1112
Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters.
1213

13-
3. From the deployment menu, select **Security**.
14+
3. From the navigation menu, select **Security**.
1415
4. Locate **Remote Connections > Trust management > Connections using API keys** and select **Add API key**.
1516

1617
1. Fill both fields.
1718

18-
* For the **Remote cluster name**, enter the the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
19+
* For the **Remote cluster name**, enter the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
1920
* For the **Cross-cluster API key**, paste the encoded cross-cluster API key.
2021

21-
2. Click **Add** to save the API key to the keystore.
22+
2. Click **Add** to save the API key.
2223

23-
5. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment's main page (named after your deployment's name), locate the **Actions** menu, and select **Restart {{es}}**.
24+
5. Restart the local deployment to reload the new setting. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
2425

2526
::::{note}
2627
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.

deploy-manage/remote-clusters/_snippets/apikeys-local-ech-remote-private.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
This snippet is in use in the following locations:
33
- ec-remote-cluster-self-managed.md
44
- ec-remote-cluster-ece.md
5+
- ec-enable-ccs-for-eck.md
56
67
It requires remote_type substitution to be defined
78
-->
@@ -21,13 +22,13 @@ It requires remote_type substitution to be defined
2122
* For the **Remote cluster name**, enter the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
2223
* For the **Cross-cluster API key**, paste the encoded cross-cluster API key.
2324

24-
2. Click **Add** to save the API key to the keystore.
25+
2. Click **Add** to save the API key.
2526
3. Repeat these steps for each API key you want to add. For example, if you want to use several clusters of the remote environment for CCR or CCS.
2627

2728
8. Add the CA certificate of the remote environment.
2829
9. Provide a name for the trusted environment. That name will appear in the trust summary of your deployment's **Security** page.
2930
10. Select **Create trust** to complete the configuration.
30-
11. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
31+
11. Restart the local deployment to reload the new settings. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
3132

3233
::::{note}
3334
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.

deploy-manage/remote-clusters/_snippets/apikeys-local-ech-remote-public.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ This snippet is in use in the following locations:
44
- ec-remote-cluster-same-ess.md
55
- ec-remote-cluster-other-ess.md
66
- ec-remote-cluster-ece.md
7+
- ec-enable-ccs-for-eck.md
8+
79
-->
810
1. Log in to the [{{ecloud}} Console](https://cloud.elastic.co?page=docs&placement=docs-body).
911
2. On the home page, find your hosted deployment and select **Manage** to access it directly. Or, select **Hosted deployments** to go to the **Hosted deployments** page to view all of your deployments.
@@ -15,12 +17,12 @@ This snippet is in use in the following locations:
1517

1618
1. Fill both fields.
1719

18-
* For the **Remote cluster name**, enter the the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
20+
* For the **Remote cluster name**, enter the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
1921
* For the **Cross-cluster API key**, paste the encoded cross-cluster API key.
2022

2123
2. Click **Add** to save the API key.
2224

23-
5. Restart the local deployment to reload the new setting. To do that, go to the deployment's main page (named after your deployment's name), locate the **Actions** menu, and select **Restart {{es}}**.
25+
5. Restart the local deployment to reload the new setting. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
2426

2527
::::{note}
2628
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Expose the transport service (defaults to port `9300`) of your ECK cluster to allow external {{es}} clusters to connect:
2+
3+
```yaml
4+
apiVersion: elasticsearch.k8s.elastic.co/v1
5+
kind: Elasticsearch
6+
metadata:
7+
name: <cluster-name>
8+
spec:
9+
transport:
10+
service:
11+
spec:
12+
type: LoadBalancer <1>
13+
```
14+
15+
1. On cloud providers which support external load balancers, setting the type field to `LoadBalancer` provisions a load balancer for your service. Alternatively, expose the service `<cluster-name>-es-transport` through one of the Kubernetes Ingress controllers that support TCP services.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
On the local deployment, add the remote ECK cluster using {{kib}} or the {{es}} API with the following connection settings:
2+
3+
* **Remote address**: Use the FQDN or IP address of the LoadBalancer service, or similar resource, you created to expose the remote cluster server interface (for API key-based authentication) or the transport interface (for TLS certificate-based authentication).
4+
5+
* **TLS server name**: You can try leaving this field empty first. If the connection fails, and your environment is presenting the ECK-managed certificates during the TLS handshake, use `<cluster-name>-es-remote-cluster.<namespace>.svc` as the server name. For example, for a cluster named `quickstart` in the `default` namespace, use `quickstart-es-remote-cluster.default.svc`.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
By default, the remote cluster server interface is deactivated on ECK-managed clusters. To use the API key–based security model for cross-cluster connections, you must first enable it on the remote {{es}} cluster:
2+
3+
```yaml subs=true
4+
apiVersion: elasticsearch.k8s.elastic.co/v1
5+
kind: Elasticsearch
6+
metadata:
7+
name: <cluster-name>
8+
namespace: <namespace>
9+
spec:
10+
version: {{version.stack}}
11+
remoteClusterServer:
12+
enabled: true
13+
nodeSets:
14+
- name: default
15+
count: 3
16+
...
17+
...
18+
```
19+
20+
::::{note}
21+
Enabling the remote cluster server triggers a restart of the {{es}} cluster.
22+
::::
23+
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
When the remote cluster server is enabled, ECK automatically creates a Kubernetes service named `<cluster-name>-es-remote-cluster` that exposes the server internally on port `9443`.
2+
3+
To allow clusters running outside your Kubernetes environment to connect to this {{es}} cluster, you must expose this service externally. The way to expose this service depends on your ECK version.
4+
5+
:::::{applies-switch}
6+
7+
::::{applies-item} eck: ga 3.3
8+
You can customize how the remote cluster service is exposed by overriding its service specification directly under `spec.remoteClusterServer.service` in the {{es}} resource. By default, this service listens on port 9443.
9+
10+
```yaml
11+
apiVersion: elasticsearch.k8s.elastic.co/v1
12+
kind: Elasticsearch
13+
metadata:
14+
name: <cluster-name>
15+
namespace: <namespace>
16+
spec:
17+
version: 9.2.1
18+
remoteClusterServer:
19+
enabled: true
20+
service:
21+
spec:
22+
type: LoadBalancer <1>
23+
nodeSets:
24+
- name: default
25+
count: 3
26+
...
27+
...
28+
```
29+
1. On cloud providers that support external load balancers, setting the type to `LoadBalancer` provisions a load balancer for your service. Alternatively, expose the service `<cluster-name>-es-remote-cluster` through one of the Kubernetes Ingress controllers that support TCP services.
30+
::::
31+
32+
::::{applies-item} eck: ga 3.0
33+
34+
In ECK 3.2 and earlier, you can't customize the service that ECK generates for the remote cluster interface, but you can create your own `LoadBalancer` service, `Ingress` object, or use another method available in your environment.
35+
36+
For example, for a cluster named `quickstart`, the following command creates a separate `LoadBalancer` service named `quickstart-es-remote-cluster-lb`, pointing to the ECK-managed service `quickstart-es-remote-cluster`:
37+
38+
```sh
39+
kubectl expose service quickstart-es-remote-cluster \
40+
--name=quickstart-es-remote-cluster-lb \
41+
--type=LoadBalancer \ <1>
42+
--port=9443 --target-port=9443
43+
```
44+
1. On cloud providers that support external load balancers, setting the type to `LoadBalancer` provisions a load balancer for your service. Alternatively, expose the service `<cluster-name>-es-remote-cluster` through one of the Kubernetes Ingress controllers that support TCP services.
45+
46+
::::
47+
:::::
48+
49+
:::{warning}
50+
If you change the service’s `port`, set `targetPort` explicitly to `9443`, which is the default remote cluster server listening port. Otherwise, Kubernetes uses the same value for both fields, resulting in failed connections.
51+
:::
52+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
The certificate authority (CA) used by ECK to issue certificates for the remote cluster server interface is stored in the `ca.crt` key of the secret named `<cluster_name>-es-transport-certs-public`.
2+
3+
If the external connections reach the {{es}} Pods on port `9443` without any intermediate TLS termination, you need to retrieve this CA because it is required in the local cluster configuration to establish trust.
4+
5+
If TLS is terminated by any intermediate component and the certificate presented is not the ECK-managed one, use the CA associated with that component, or omit the CA entirely if it uses a publicly trusted certificate.
6+
7+
To save the transport CA certificate of a cluster named `quickstart` into a local file, run the following command:
8+
9+
```sh
10+
kubectl get secret quickstart-es-transport-certs-public \
11+
-o go-template='{{index .data "ca.crt" | base64decode}}' > eck_transport_ca.crt
12+
```
13+
14+
::::{important}
15+
ECK-managed CA certificates are automatically rotated after one year by default, but you can [configure](/deploy-manage/deploy/cloud-on-k8s/configure-eck.md) a different validity period. When the CA certificate is rotated, ensure that this CA is updated in all environments where it's used to preserve trust.
16+
::::
17+

deploy-manage/remote-clusters/_snippets/rcs-elasticsearch-api-snippet-self.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
This snippet is in use in the following locations:
33
- ece-remote-cluster-self-managed.md
44
- ec-remote-cluster-self-managed.md
5+
- ece-enable-ccs-for-eck.md
6+
- ec-enable-ccs-for-eck.md
57
-->
68
To add a remote cluster, use the [cluster update settings API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-cluster-put-settings). Configure the following fields:
79

0 commit comments

Comments
 (0)