Skip to content
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 fargate support in the EFS CSI driver #418

Merged
merged 4 commits into from
Apr 23, 2021

Conversation

anonymint
Copy link
Contributor

For driver deployment in Fargate tasks environment

Is this a bug fix or adding new feature?
New Feature

What is this PR about? / Why do we need it?
Current driver is aiming toward running on EC2 using IMDS which is not available in Fargate, so this PR is to add Fargate support and check if in Fargate environment we can use Task Metadata Endpoint as a way to pull data similar to IMDS.

What testing is done?

  • Unit tests added
  • Run E2E testing with success result
  • Manual testing in Fargate environment

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Apr 20, 2021
@k8s-ci-robot
Copy link
Contributor

Welcome @anonymint!

It looks like this is your first PR to kubernetes-sigs/aws-efs-csi-driver 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-sigs/aws-efs-csi-driver has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot
Copy link
Contributor

Hi @anonymint. 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 /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

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.

@k8s-ci-robot k8s-ci-robot added needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Apr 20, 2021
@wongma7
Copy link
Contributor

wongma7 commented Apr 21, 2021

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Apr 21, 2021
@@ -214,7 +219,9 @@ func (w *execWatchdog) updateConfig(efsClientSource string) error {
return fmt.Errorf("cannot create config file %s for efs-utils. Error: %v", w.efsUtilsCfgPath, err)
}
defer f.Close()
efsCfg := efsUtilsConfig{EfsClientSource: efsClientSource}
// used on Fargate, IMDS queries suffice otherwise
region := os.Getenv("AWS_REGION")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kbasv i wonder if we could add support for querying fargate task metadata to efs-utils? https://github.com/aws/efs-utils/blob/c5abeed1a90a20c0ac0ad1a592296f795cd33e7c/src/mount_efs/__init__.py#L293 will create issue later

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be possible since efs-utils queries ECS metadata for credentials - https://github.com/aws/efs-utils/blob/c5abeed1a90a20c0ac0ad1a592296f795cd33e7c/src/mount_efs/__init__.py#L442

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anonymint the comment "// used on Fargate, IMDS queries suffice otherwise" is not 100% clear, are you saying it is guaranteed that AWS_REGION will be set if this application is run as a fargate task/pod?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wongma7 ythere is another PR not merged regarding this and I would change this to be $AWS_DEFAULT_REGION as current setup in Fargate today, will update accordingly and send you package that Fargate uses and guarantee to have it.

on the side note, IMHOM It would be cleaner to add in attached efs-utils as you mention, there should be similar way/location to pull this region.

@wongma7
Copy link
Contributor

wongma7 commented Apr 23, 2021

/lgtm
/approve

thank you

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 23, 2021
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: anonymint, 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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 23, 2021
@wongma7 wongma7 merged commit f3e92e8 into kubernetes-sigs:master Apr 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants