FoundationDb Operator class Port

Hello, I am trying to set up custom ports for each of my foundation db roles. If I am able to set the port for each class I think that would accomplish what I am trying to do. For example Id want to set storage port to 4501, log to 4601, resolvers to 4701, etc. Is this possible to do with the operator?

The reason for this is we have a custom metrics handler that is able to tell what each service is based on the port and it would be easier if I can do the same think in K8.

Currently the operator does not support this feature. The rules for the expected ports are hardcoded: fdb-kubernetes-operator/api/v1beta2/foundationdb_process_address.go at main · FoundationDB/fdb-kubernetes-operator · GitHub. Wouldn’t it be better if your custom metrics solution reads the type of a service from a label or annotation? If you use the machine-readable status from FDB you can also use the process class information: Machine-Readable Status — FoundationDB 7.2.

Thanks for the response! That’s an option but this is the way it was done before and we are testing with kubernetes right now so was just seeing if there was a way I could just make it work straight off the bat.

Thanks for the response! That’s an option but this is the way it was done before and we are testing with kubernetes right now so was just seeing if there was a way I could just make it work straight off the bat.

One way to implement this without any changes in the operator and your monitoring tool would be to add an additional sidecar that uses socat and redirects the port for your monitoring needs.

Personally I’m not a huge fan of adding a configuration options for the used ports, this would add additional complexity to the current CRD, which already has a lot of knobs to set, with a limited benefit.