# FDB + SSL and operator automation

**URL:** <https://forums.foundationdb.org/t/fdb-ssl-and-operator-automation/4793>\
**Category:** Kubernetes Operator\
**Created:** [March 3, 2025, 4:40pm UTC](https://forums.foundationdb.org/t/fdb-ssl-and-operator-automation/4793 "2025-03-03T16:40:33Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mpatou\_openai](https://sea1.discourse-cdn.com/foundationdb/user_avatar/forums.foundationdb.org/mpatou_openai/32/1883_2.png) [@mpatou\_openai](https://forums.foundationdb.org/u/mpatou_openai)\
**Post date:** [March 3, 2025, 4:40pm UTC](https://forums.foundationdb.org/t/fdb-ssl-and-operator-automation/4793/1 "2025-03-03T16:40:33Z")

</div>

I have been trying to use SSL with FDB lately, initially I thought that a wild card SSL would be sufficient but it’s not as it seems that the operator use IP to connect to the sidecar when SSL is enabled for it:

```auto
"error":"GET https://10.193.1.80:8080/substitutions giving up after 1 attempt(s): Get \"https://10.193.1.80:8080/substitutions\": tls: failed to verify certificate: x509: cannot validate certificate for 10.193.1.80 because it doesn't contain any IP SANs"

```

With the help of cert-manager and some adhoc `Certificate` object it’s possible to get cert-manager to issue a certificate for the pod that has the pod’s name and IP.  
Could it be possible for the operator to optionally generate this, the main drawback is that it locks with one solution to issue certificates. Alternatively I was wondering why it uses the IP of the pod and not its name to connect.

---

<div class="post-metadata">

**Author:** ![johscheuer](https://avatars.discourse-cdn.com/v4/letter/j/f475e1/32.png) [@johscheuer](https://forums.foundationdb.org/u/johscheuer)\
**Post date:** [March 4, 2025, 4:16pm UTC](https://forums.foundationdb.org/t/fdb-ssl-and-operator-automation/4793/2 "2025-03-04T16:16:13Z")

</div>

> Could it be possible for the operator to optionally generate this, the main drawback is that it locks with one solution to issue certificates. Alternatively I was wondering why it uses the IP of the pod and not its name to connect.

The decision to connect to the pod sidecar using the Pod IP was made a long time ago and I don’t remember the details (and I think I didn’t worked on the operator at that time). Right now there are two options that would work without any additional modification:

1. Using the unified image instead of the split image (the unified image is the default in the operator since the 2.0 release).
2. Adding the `DISABLE_SIDECAR_TLS_CHECK=1` env variable to the operator (link: [fdb-kubernetes-operator/docs/manual/tls.md at main · FoundationDB/fdb-kubernetes-operator · GitHub](https://github.com/FoundationDB/fdb-kubernetes-operator/blob/main/docs/manual/tls.md#configuring-the-operator)) with all it’s implications.

In theory we could implement support for connecting to the sidecar with the DNS entry instead of the Pod IP, but I believe this requires at least a headless service and since the split image is in “maintenance mode” we are not spending much time on adding new feature to it. If that’s a feature you need and you don’t want to use the unified image yet, feel free to open a PR.

---

<div class="post-metadata">

**Author:** ![mpatou\_openai](https://sea1.discourse-cdn.com/foundationdb/user_avatar/forums.foundationdb.org/mpatou_openai/32/1883_2.png) [@mpatou\_openai](https://forums.foundationdb.org/u/mpatou_openai)\
**Post date:** [March 6, 2025, 3:01am UTC](https://forums.foundationdb.org/t/fdb-ssl-and-operator-automation/4793/3 "2025-03-06T03:01:54Z")

</div>

I will have to start to evaluate the unified image, so far the sidecar suited us well and we made some customization on how the zoneID is calculated by adding a script that is calculating the right value for us and setting ADDITIONAL\_ENV\_FILE so that this script is sourced before actually starting the pod.  
If this is still possible with the unified image then I guess I should look at switching.

---

<div class="post-metadata">

**Author:** ![johscheuer](https://avatars.discourse-cdn.com/v4/letter/j/f475e1/32.png) [@johscheuer](https://forums.foundationdb.org/u/johscheuer)\
**Post date:** [March 7, 2025, 4:28pm UTC](https://forums.foundationdb.org/t/fdb-ssl-and-operator-automation/4793/4 "2025-03-07T16:28:40Z")

</div>

This is already possible with the unified image: [foundationdb/fdbkubernetesmonitor/main.go at main · apple/foundationdb · GitHub](https://github.com/apple/foundationdb/blob/main/fdbkubernetesmonitor/main.go#L134), you would set in the main container (as the sidecar is only used for upgrades) the `ADDITIONAL_ENV_FILE`. In addition the unified image supports to read labels from the node where the pod is running: [fdb-kubernetes-operator/docs/manual/fault\_domains.md at main · FoundationDB/fdb-kubernetes-operator · GitHub](https://github.com/FoundationDB/fdb-kubernetes-operator/blob/main/docs/manual/fault_domains.md#fault-domain-from-node-label).
