Allow kubernetes storageclass resturl HTTPS with self-signed certificate

2/19/2020

I'm currently trying to setup GlusterFS integration for a Kubernetes cluster. Volume provisioning is done with Heketi.

GlusterFS-cluster has a pool of 3 VMs 1st node has Heketi server and client configured. Heketi API is secured with a self-signed certificate OpenSSL and can be accessed.

e.g. curl https://heketinodeip:8080/hello -k returns the expected response.

StorageClass definition sets the "resturl" to Heketi API https://heketinodeip:8080

When storageclass was created successfully and I try to create a PVC, this fails:

"x509: certificate signed by unknown authority"

This is expected, as ususally one has to allow this insecure HTTPS-connection or explicitly import the issuer CA (e.g. a file simply containing the pem-String)

But: How is this done for Kubernetes? How do I allow this insecure connection to Heketi from Kubernetes, allowing insecure self-signed cert HTTPS or where/how do I import a CA?

It is not an DNS/IP problem, this was resolved with correct subjectAltName settings.

(seems that everybody is using Heketi, and it seems to be still a standard usecase for GlusterFS integration, but always without SSL, if connected to Kubernetes)

Thank you!

-- Patrick
glusterfs
kubernetes
openssl
ssl

1 Answer

2/20/2020

To skip verification of server cert, caller just need specify InsecureSkipVerify: true. Refer this github issue for more information (https://github.com/heketi/heketi/issues/1467)

In this page, they have specified a way to use self signed certificate. Not explained thoroughly but still can be useful (https://github.com/gluster/gluster-kubernetes/blob/master/docs/design/tls-security.md#self-signed-keys).

-- anmol agrawal
Source: StackOverflow