-
Notifications
You must be signed in to change notification settings - Fork 813
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for customer AWS API endpoint Certificates #509
Comments
@dmc5179 I have successfully tested this workaround on Eucalyptus with custom endpoint and custom SSL certificate NOTE: Pull request #505 is for custom endpoint support in private AWS regions Create ConfigMap for custom CA certificates
Modify
Redeploy the csi-controller pod and it will overwrite the existing CA bundle with the one supplied in the ConfigMap. It should allow you to hit an endpoint with a custom SSL certificate. |
This is also discussed in issue #502 |
@jgallucci32 Thanks! This is great. Note that I didn't have to do anything to get the custom endpoint to work. I think that once the pods could reach the metadata endpoint they were able to look up what the EC2 API endpoint is. I don't know that for certain but the pods figured it out somehow. The custom certificate part is great. My solution of hostPath mounting is probably not ideal. A config map is a much better idea. Thanks again! |
@dmc5179 Glad I could help, let me know how things go. I have been investigating using a sidecar approach using the same ConfigMap construct. Cloudbees has a good example of how to do SSL cert injection using a sidecar and I think ultimately that might be the best approach here. Regarding the custom endpoint I am extremely intrigued how it is working out of the box for you. My first assumption would be some sort of DNS poisoning of amazonaws.com in your private AWS environment to allow the SDK to search for
Since I plan to update my SSL cert this week to include the Subject Alternative Name (SAN) for |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Is your feature request related to a problem? Please describe.
In private AWS regions the CA that signs the AWS API endpoint is not accepted by the driver. Need to add support for adding certificates to the driver for custom endpoints.
Describe the solution you'd like in detail
Add support for either disabling SSL/TLS (not the greatest option) or more preferably adding custom certificates so the driver will talk to custom endpoints.
Describe alternatives you've considered
The nodes in my cluster all have the custom certificates on the node. I can issue the following command from each node to access the metadata endpoint (which doesn't need the certificates)
The driver by default doesn't seem to work on OpenShift. I'm actually not entirely sure I understand how the driver works in it's current state at all. The metadata endpoint is a link-local address. Without hostNetwork:true set for the ebs-csi-controller it doesn't seem like the EBS CSI driver should ever work with IAM roles. To get it to this point I had to disable the liveness container and probes, then enable hostNetwork:true for the ebs-csi-controller pods.
I'm then able to deploy the driver, create a storage class, and create a PVC:
storage-class:
PVC:
At this point the PVC will be pending for some pod to try to claim it. When I deploy a pod that tries to claim the PVC I get:
I'm not assigning that endpoint. I think the driver is looking up the API endpoint with the metadata endpoint. I cannot find a way to add custom certs to the pods. I've tried to add onto the base images by overwriting this file: SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt, I've tried to add my certs to /etc/pki/ca-trust/source/anchors. Most of the images don't have update-ca-trust. Even when I put my certs into the anchors directory, they are not there when the container starts. I've not seen an image that would wipe out the anchors directory. It doesn't appear to be a volume mount.
What in the world is it doing....
The text was updated successfully, but these errors were encountered: