-
Notifications
You must be signed in to change notification settings - Fork 807
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
Create volumes in outpost for outpost instances #561
Conversation
Hi @ayberk. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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. |
Pull Request Test Coverage Report for Build 1231
💛 - Coveralls |
/ok-to-test |
24d2a10
to
77006e8
Compare
/retest |
cb5f99f
to
f58f2e9
Compare
8d5671f
to
a7ad0a0
Compare
/retest |
1 similar comment
/retest |
lgtm but i think there is an edgecase where GetDiskByName returns an existing volume that needs tobe handled. |
/lgtm |
With this commit we start passing the outpost arn (if it's present) to EBS. Before this commit, when the request came from an outpost instance, we would ask the EBS to create the volume in the parent AZ, which is not the expected behavior. In order to determine if we're running in an outpost instance, we use the ec2 instance metadata "outpost-arn". It returns a '404' for non-outpost instances or the outpost-arn as string otherwise. Now we include it in the topology requiment and pass it along to CreateVolume request if it's present. Automated e2e tests can be considerd impossible for this case as getting an outpost rack is not an easy task.
I made minor changes and was able to run the dynamic provisioning example on a test outpost. Volume was attached properly.
|
/retest |
/lgtm |
/hold cancel |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ayberk, wongma7 The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@ayberk I am trying to do a poc with outpost but every time the volume is created in the parent region (no OutpostARN). my ec2 instance metadata returns OutpostARN. Any pointers would be helpful Error message that i get because my instance is in Outpost but the volume is not: AttachVolume.Attach failed for volume "pvc-1155bee4-0186-4a43-8047-a30b33d3bcdb" : rpc error: code = Internal desc = Could not attach volume "vol-0a41058da77cf512a" to node "i-09027f5cfb7d1455f": could not attach volume "vol-0a41058da77cf512a" to node "i-09027f5cfb7d1455f": operation error EC2: AttachVolume, https response error |
Is this a bug fix or adding new feature?
Bug Fix
What is this PR about? / Why do we need it?
Outposts Documentation for background.
Currently, we're running oblivious to outposts. Volumes are created in the parent region instead of the outpost itself. In order to fix it, we need to pass the
outpostArn
to CreateVolume.I'm leveraging the
outpost-arn
instance metadata to determine if we're in an outpost instance. There are two possible responses from the endpoint:404
if it's a regular non-outpost instance.I've verified the behavior using this test code on a test outpost.
What testing is done?
Tested on an actual outpost instance and verified it works.