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

Update the EKS blueprints module version in use to release v4.31 #731

Merged
merged 3 commits into from
May 10, 2023

Conversation

rrrkharse
Copy link
Contributor

@rrrkharse rrrkharse commented May 8, 2023

Which issue is resolved by this Pull Request:
Resolves #717

Description of your changes:

  • Updated the EKS Blueprints module version in use to v4.31, which contains the updated permissions fix for the EFS CSI driver to work correctly with Kubeflow. Details here.
  • Added the --skip-driver-installation flag to the EFS auto setup script as a temporary workaround for the missing full Terraform EFS add-on support

Testing:

Tested vanilla Kubeflow with Terraform + modified EFS auto setup script.

Testing the new flag

With flag:

ubuntu@ip-172-31-21-105:~/kfdistro/tf-efs/kubeflow-manifests/tests/e2e$ python utils/auto-efs-setup.py --region $CLUSTER_REGION --cluster $CLUSTER_NAME --efs_file_system_name $CLAIM_NAME --efs_security_group_name $SECURITY_GROUP_TO_CREATE --setup-for-terraform
=================================================================
                          EFS Setup
=================================================================
                   Prerequisites Verification
=================================================================
Verifying OIDC provider...
OIDC provider found
Verifying eksctl is installed...
eksctl found!
Verifying kubectl is installed...
kubectl found!
=================================================================
                      EFS File System Setup
=================================================================
Creating security group 'tf-efs-v4-31-claim'...
VPC_ID:   vpc-068818258b1eeeb17
CIDR:  10.0.0.0/16
Security group created!
Creating EFS file system...
Waiting for EFS file system to become available...
EFS file system is available!
EFS filesystem tf-efs-v4-31-claim created! filesystem id: fs-0a0806e124d8ff137
CLUSTER NODEGROUPS:  ['managed-ondemand-cpu-20230508220131128100000009']
CLUSTER PUBLIC SUBNETS:   ['subnet-0acec358a5a9ceb95', 'subnet-0ea03fe1381126b02', 'subnet-07a276a27d1beaaf9']
Creating mount target in subnet subnet-0acec358a5a9ceb95...
Mount target fsmt-0110832c15a962e54 created!
Creating mount target in subnet subnet-0ea03fe1381126b02...
Mount target fsmt-06840003799d610ea created!
Creating mount target in subnet subnet-07a276a27d1beaaf9...
Mount target fsmt-07a850419cebcbcbc created!
Waiting for EFS mount target fsmt-0110832c15a962e54 to become available...
fsmt-0110832c15a962e54 mount target is available!
Waiting for EFS mount target fsmt-06840003799d610ea to become available...
fsmt-06840003799d610ea mount target is available!
Waiting for EFS mount target fsmt-07a850419cebcbcbc to become available...
fsmt-07a850419cebcbcbc mount target is available!
=================================================================
                      EFS Provisioning Setup
=================================================================
Setting up dynamic provisioning...
Editing storage class with appropriate values...
Creating storage class...
storageclass.storage.k8s.io/efs-sc created
Storage class created!
Dynamic provisioning setup done!
=================================================================
                      EFS Setup Complete
=================================================================

Without flag:
Error during script is due to resource contention with the existing Terraform setup, however all steps run as expected when the flag is not provided.

ubuntu@ip-172-31-21-105:~/kfdistro/tf-efs/kubeflow-manifests/tests/e2e$ python utils/auto-efs-setup.py --region $CLUSTER_REGION --cluster $CLUSTER_NAME --efs_file_system_name $CLAIM_NAME --efs_security_group_name $SECURITY_GROUP_TO_CREATE
=================================================================
                          EFS Setup
=================================================================
                   Prerequisites Verification
=================================================================
Verifying OIDC provider...
OIDC provider found
Verifying eksctl is installed...
eksctl found!
Verifying kubectl is installed...
kubectl found!
=================================================================
                   IAM Authorization Setup
=================================================================
Creating EFS IAM policy...
EFS IAM policy created!
Creating EFS IAM service account...
2023-05-08 22:54:56 [ℹ]  1 iamserviceaccount (kube-system/efs-csi-controller-sa) was included (based on the include/exclude rules)
2023-05-08 22:54:56 [!]  metadata of serviceaccounts that exist in Kubernetes will be updated, as --override-existing-serviceaccounts was set
2023-05-08 22:54:56 [ℹ]  1 task: {
    2 sequential sub-tasks: {
        create IAM role for serviceaccount "kube-system/efs-csi-controller-sa",
        create serviceaccount "kube-system/efs-csi-controller-sa",
    } }2023-05-08 22:54:56 [ℹ]  building iamserviceaccount stack "eksctl-tf-efs-v4-31-addon-iamserviceaccount-kube-system-efs-csi-controller-sa"
2023-05-08 22:54:57 [ℹ]  deploying stack "eksctl-tf-efs-v4-31-addon-iamserviceaccount-kube-system-efs-csi-controller-sa"
2023-05-08 22:54:57 [ℹ]  waiting for CloudFormation stack "eksctl-tf-efs-v4-31-addon-iamserviceaccount-kube-system-efs-csi-controller-sa"
2023-05-08 22:55:27 [ℹ]  waiting for CloudFormation stack "eksctl-tf-efs-v4-31-addon-iamserviceaccount-kube-system-efs-csi-controller-sa"
2023-05-08 22:55:27 [ℹ]  created serviceaccount "kube-system/efs-csi-controller-sa"
EFS IAM service account created!
=================================================================
                      EFS Driver Setup
=================================================================
Installing EFS driver...
Warning: resource serviceaccounts/efs-csi-controller-sa is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl a
pply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
serviceaccount/efs-csi-controller-sa configured
serviceaccount/efs-csi-node-sa created
Warning: resource clusterroles/efs-csi-external-provisioner-role is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply.
kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatical
ly.
clusterrole.rbac.authorization.k8s.io/efs-csi-external-provisioner-role configured
Warning: resource clusterrolebindings/efs-csi-provisioner-binding is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply.
 kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatica
lly.
clusterrolebinding.rbac.authorization.k8s.io/efs-csi-provisioner-binding configured
Warning: resource deployments/efs-csi-controller is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply sh
ould only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
Warning: resource daemonsets/efs-csi-node is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should on
ly be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
Warning: resource csidrivers/efs.csi.aws.com is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should
 only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
csidriver.storage.k8s.io/efs.csi.aws.com configured
Error from server (Invalid): error when applying patch:
{"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":
{\"app.kubernetes.io/name\":\"aws-efs-csi-driver\"},\"name\":\"efs-csi-controller\",\"namespace\":\"kube-system\"},\"spec\":{\"replicas\":2,\"selector\":{\"matchLabels\":{\"app
\":\"efs-csi-controller\",\"app.kubernetes.io/instance\":\"kustomize\",\"app.kubernetes.io/name\":\"aws-efs-csi-driver\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"efs
-csi-controller\",\"app.kubernetes.io/instance\":\"kustomize\",\"app.kubernetes.io/name\":\"aws-efs-csi-driver\"}},\"spec\":{\"containers\":[{\"args\":[\"--endpoint=$(CSI_ENDPO
INT)\",\"--logtostderr\",\"--v=2\",\"--delete-access-point-root-dir=false\"],\"env\":[{\"name\":\"CSI_ENDPOINT\",\"value\":\"unix:///var/lib/csi/sockets/pluginproxy/csi.sock\"}
,{\"name\":\"CSI_NODE_NAME\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"spec.nodeName\"}}}],\"image\":\"amazon/aws-efs-csi-driver:v1.5.3\",\"imagePullPolicy\":\"IfNotPresent\
",\"livenessProbe\":{\"failureThreshold\":5,\"httpGet\":{\"path\":\"/healthz\",\"port\":\"healthz\"},\"initialDelaySeconds\":10,\"periodSeconds\":10,\"timeoutSeconds\":3},\"nam
e\":\"efs-plugin\",\"ports\":[{\"containerPort\":9909,\"name\":\"healthz\",\"protocol\":\"TCP\"}],\"securityContext\":{\"privileged\":true},\"volumeMounts\":[{\"mountPath\":\"/
var/lib/csi/sockets/pluginproxy/\",\"name\":\"socket-dir\"}]},{\"args\":[\"--csi-address=$(ADDRESS)\",\"--v=2\",\"--feature-gates=Topology=true\",\"--extra-create-metadata\",\"
--leader-election\"],\"env\":[{\"name\":\"ADDRESS\",\"value\":\"/var/lib/csi/sockets/pluginproxy/csi.sock\"}],\"image\":\"public.ecr.aws/eks-distro/kubernetes-csi/external-prov
isioner:v3.3.0-eks-1-25-latest\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"csi-provisioner\",\"volumeMounts\":[{\"mountPath\":\"/var/lib/csi/sockets/pluginproxy/\",\"name
\":\"socket-dir\"}]},{\"args\":[\"--csi-address=/csi/csi.sock\",\"--health-port=9909\"],\"image\":\"public.ecr.aws/eks-distro/kubernetes-csi/livenessprobe:v2.8.0-eks-1-25-lates
t\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"liveness-probe\",\"volumeMounts\":[{\"mountPath\":\"/csi\",\"name\":\"socket-dir\"}]}],\"nodeSelector\":{\"kubernetes.io/os\
":\"linux\"},\"priorityClassName\":\"system-cluster-critical\",\"serviceAccountName\":\"efs-csi-controller-sa\",\"volumes\":[{\"emptyDir\":{},\"name\":\"socket-dir\"}]}}}}\n"}}
,"spec":{"selector":{"matchLabels":{"app.kubernetes.io/instance":"kustomize"}},"template":{"metadata":{"labels":{"app.kubernetes.io/instance":"kustomize"}},"spec":{"$setElement
Order/containers":[{"name":"efs-plugin"},{"name":"csi-provisioner"},{"name":"liveness-probe"}],"containers":[{"args":["--endpoint=$(CSI_ENDPOINT)","--logtostderr","--v=2","--de
lete-access-point-root-dir=false"],"image":"amazon/aws-efs-csi-driver:v1.5.3","name":"efs-plugin"}],"serviceAccountName":"efs-csi-controller-sa"}}}}
to:
Resource: "apps/v1, Resource=deployments", GroupVersionKind: "apps/v1, Kind=Deployment"
Name: "efs-csi-controller", Namespace: "kube-system"
for: "https://github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=tags/v1.5.4": error when patching "https://github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=tags/v1.5.4": Deployment.apps "efs-csi-controller" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"efs-csi-controller", "app.kubernetes.io/instance":"kustomize", "app.kubernetes.io/name":"aws-efs-csi-driver"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable
Error from server (Invalid): error when applying patch:
{"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"apps/v1\",\"kind\":\"DaemonSet\",\"metadata\":{\"annotations\":{},\"labels\":{\"app.kubernetes.io/name\":\"aws-efs-csi-driver\"},\"name\":\"efs-csi-node\",\"namespace\":\"kube-system\"},\"spec\":{\"selector\":{\"matchLabels\":{\"app\":\"efs-csi-node\",\"app.kubernetes.io/instance\":\"kustomize\",\"app.kubernetes.io/name\":\"aws-efs-csi-driver\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"efs-csi-node\",\"app.kubernetes.io/instance\":\"kustomize\",\"app.kubernetes.io/name\":\"aws-efs-csi-driver\"}},\"spec\":{\"affinity\":{\"nodeAffinity\":{\"requiredDuringSchedulingIgnoredDuringExecution\":{\"nodeSelectorTerms\":[{\"matchExpressions\":[{\"key\":\"eks.amazonaws.com/compute-type\",\"operator\":\"NotIn\",\"values\":[\"fargate\"]}]}]}}},\"containers\":[{\"args\":[\"--endpoint=$(CSI_ENDPOINT)\",\"--logtostderr\",\"--v=2\",\"--vol-metrics-opt-in=false\",\"--vol-metrics-refresh-period=240\",\"--vol-metrics-fs-rate-limit=5\"],\"env\":[{\"name\":\"CSI_ENDPOINT\",\"value\":\"unix:/csi/csi.sock\"}],\"image\":\"amazon/aws-efs-csi-driver:v1.5.3\",\"imagePullPolicy\":\"IfNotPresent\",\"livenessProbe\":{\"failureThreshold\":5,\"httpGet\":{\"path\":\"/healthz\",\"port\":\"healthz\"},\"initialDelaySeconds\":10,\"periodSeconds\":2,\"timeoutSeconds\":3},\"name\":\"efs-plugin\",\"ports\":[{\"containerPort\":9809,\"name\":\"healthz\",\"protocol\":\"TCP\"}],\"securityContext\":{\"privileged\":true},\"volumeMounts\":[{\"mountPath\":\"/var/lib/kubelet\",\"mountPropagation\":\"Bidirectional\",\"name\":\"kubelet-dir\"},{\"mountPath\":\"/csi\",\"name\":\"plugin-dir\"},{\"mountPath\":\"/var/run/efs\",\"name\":\"efs-state-dir\"},{\"mountPath\":\"/var/amazon/efs\",\"name\":\"efs-utils-config\"},{\"mountPath\":\"/etc/amazon/efs-legacy\",\"name\":\"efs-utils-config-legacy\"}]},{\"args\":[\"--csi-address=$(ADDRESS)\",\"--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)\",\"--v=2\"],\"env\":[{\"name\":\"ADDRESS\",\"value\":\"/csi/csi.sock\"},{\"name\":\"DRIVER_REG_SOCK_PATH\",\"value\":\"/var/lib/kubelet/plugins/efs.csi.aws.com/csi.sock\"},{\"name\":\"KUBE_NODE_NAME\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"spec.nodeName\"}}}],\"image\":\"public.ecr.aws/eks-distro/kubernetes-csi/node-driver-registrar:v2.6.2-eks-1-25-latest\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"csi-driver-registrar\",\"volumeMounts\":[{\"mountPath\":\"/csi\",\"name\":\"plugin-dir\"},{\"mountPath\":\"/registration\",\"name\":\"registration-dir\"}]},{\"args\":[\"--csi-address=/csi/csi.sock\",\"--health-port=9809\",\"--v=2\"],\"image\":\"public.ecr.aws/eks-distro/kubernetes-csi/livenessprobe:v2.8.0-eks-1-25-latest\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"liveness-probe\",\"volumeMounts\":[{\"mountPath\":\"/csi\",\"name\":\"plugin-dir\"}]}],\"dnsPolicy\":\"ClusterFirst\",\"hostNetwork\":true,\"nodeSelector\":{\"kubernetes.io/os\":\"linux\"},\"priorityClassName\":\"system-node-critical\",\"serviceAccountName\":\"efs-csi-node-sa\",\"tolerations\":[{\"operator\":\"Exists\"}],\"volumes\":[{\"hostPath\":{\"path\":\"/var/lib/kubelet\",\"type\":\"Directory\"},\"name\":\"kubelet-dir\"},{\"hostPath\":{\"path\":\"/var/lib/kubelet/plugins/efs.csi.aws.com/\",\"type\":\"DirectoryOrCreate\"},\"name\":\"plugin-dir\"},{\"hostPath\":{\"path\":\"/var/lib/kubelet/plugins_registry/\",\"type\":\"Directory\"},\"name\":\"registration-dir\"},{\"hostPath\":{\"path\":\"/var/run/efs\",\"type\":\"DirectoryOrCreate\"},\"name\":\"efs-state-dir\"},{\"hostPath\":{\"path\":\"/var/amazon/efs\",\"type\":\"DirectoryOrCreate\"},\"name\":\"efs-utils-config\"},{\"hostPath\":{\"path\":\"/etc/amazon/efs\",\"type\":\"DirectoryOrCreate\"},\"name\":\"efs-utils-config-legacy\"}]}}}}\n"}},"spec":{"selector":{"matchLabels":{"app.kubernetes.io/instance":"kustomize"}},"template":{"metadata":{"labels":{"app.kubernetes.io/instance":"kustomize"}},"spec":{"$setElementOrder/containers":[{"name":"efs-plugin"},{"name":"csi-driver-registrar"},{"name":"liveness-probe"}],"containers":[{"args":["--endpoint=$(CSI_ENDPOINT)","--logtostderr","--v=2","--vol-metrics-opt-in=false","--vol-metrics-refresh-period=240","--vol-metrics-fs-rate-limit=5"],"image":"amazon/aws-efs-csi-driver:v1.5.3","name":"efs-plugin"}],"serviceAccountName":"efs-csi-node-sa"}}}}
to:
Resource: "apps/v1, Resource=daemonsets", GroupVersionKind: "apps/v1, Kind=DaemonSet"
Name: "efs-csi-node", Namespace: "kube-system"
for: "https://github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=tags/v1.5.4": error when patching "https://github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=tags/v1.5.4": DaemonSet.apps "efs-csi-node" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"efs-csi-node", "app.kubernetes.io/instance":"kustomize", "app.kubernetes.io/name":"aws-efs-csi-driver"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable
EFS driver installed!
=================================================================
                      EFS File System Setup
=================================================================
Skipping EFS file system creation, file system 'tf-efs-v4-31-claim' already exists!
=================================================================
                      EFS Provisioning Setup
=================================================================
Setting up dynamic provisioning...
Editing storage class with appropriate values...
Creating storage class...
storageclass.storage.k8s.io/efs-sc unchanged
Storage class created!
Dynamic provisioning setup done!
=================================================================
                      EFS Setup Complete
=================================================================

Testing notebook dynamic provisioning

Notebook yaml after provisioning:

apiVersion: kubeflow.org/v1beta1
kind: Notebook
metadata:
  annotations:
    notebooks.kubeflow.org/server-type: jupyter
  creationTimestamp: '2023-05-08T22:51:24Z'
  generation: 1
  labels:
    app: test-tf-efs-v4-31
  managedFields:
    - apiVersion: kubeflow.org/v1beta1
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:annotations:
            .: {}
            f:notebooks.kubeflow.org/server-type: {}
          f:labels:
            .: {}
            f:app: {}
        f:spec:
          .: {}
          f:template:
            .: {}
            f:spec:
              .: {}
              f:containers: {}
              f:serviceAccountName: {}
              f:tolerations: {}
              f:volumes: {}
      manager: OpenAPI-Generator
      operation: Update
      time: '2023-05-08T22:51:24Z'
    - apiVersion: kubeflow.org/v1beta1
      fieldsType: FieldsV1
      fieldsV1:
        f:status:
          .: {}
          f:conditions: {}
          f:containerState:
            .: {}
            f:running:
              .: {}
              f:startedAt: {}
          f:readyReplicas: {}
      manager: manager
      operation: Update
      subresource: status
      time: '2023-05-08T22:53:16Z'
  name: test-tf-efs-v4-31
  namespace: kubeflow-user-example-com
  resourceVersion: '35161'
  uid: 72ab4f63-3f62-402d-b2e4-71269787b8b6
spec:
  template:
    spec:
      containers:
        - env: []
          image: >-
            public.ecr.aws/kubeflow-on-aws/notebook-servers/jupyter-tensorflow:2.12.0-cpu-py310-ubuntu20.04-ec2-v1.0
          imagePullPolicy: IfNotPresent
          name: test-tf-efs-v4-31
          resources:
            limits:
              cpu: '0.6'
              memory: 1.2Gi
            requests:
              cpu: '0.5'
              memory: 1Gi
          volumeMounts:
            - mountPath: /dev/shm
              name: dshm
            - mountPath: /home/jovyan
              name: test-tf-efs-v4-31-volume
      serviceAccountName: default-editor
      tolerations: []
      volumes:
        - emptyDir:
            medium: Memory
          name: dshm
        - name: test-tf-efs-v4-31-volume
          persistentVolumeClaim:
            claimName: test-tf-efs-v4-31-volume
status:
  conditions:
    - lastProbeTime: '2023-05-08T22:53:16Z'
      lastTransitionTime: '2023-05-08T22:51:35Z'
      status: 'True'
      type: Initialized
    - lastProbeTime: '2023-05-08T22:53:16Z'
      lastTransitionTime: '2023-05-08T22:53:16Z'
      status: 'True'
      type: Ready
    - lastProbeTime: '2023-05-08T22:53:16Z'
      lastTransitionTime: '2023-05-08T22:53:16Z'
      status: 'True'
      type: ContainersReady
    - lastProbeTime: '2023-05-08T22:53:16Z'
      lastTransitionTime: '2023-05-08T22:51:27Z'
      status: 'True'
      type: PodScheduled
  containerState:
    running:
      startedAt: '2023-05-08T22:53:15Z'
  readyReplicas: 1

Notebook volume PVC after provisioning:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: 'yes'
    pv.kubernetes.io/bound-by-controller: 'yes'
    volume.beta.kubernetes.io/storage-provisioner: efs.csi.aws.com
    volume.kubernetes.io/selected-node: ip-10-0-191-58.us-west-2.compute.internal
    volume.kubernetes.io/storage-provisioner: efs.csi.aws.com
  creationTimestamp: '2023-05-08T22:51:24+00:00'
  finalizers:
    - kubernetes.io/pvc-protection
  managedFields:
    - apiVersion: v1
      fieldsType: FieldsV1
      fieldsV1:
        'f:spec':
          'f:accessModes': {}
          'f:resources':
            'f:requests':
              .: {}
              'f:storage': {}
          'f:storageClassName': {}
          'f:volumeMode': {}
      manager: OpenAPI-Generator
      operation: Update
      time: '2023-05-08T22:51:24+00:00'
    - apiVersion: v1
      fieldsType: FieldsV1
      fieldsV1:
        'f:metadata':
          'f:annotations':
            'f:pv.kubernetes.io/bind-completed': {}
            'f:pv.kubernetes.io/bound-by-controller': {}
            'f:volume.beta.kubernetes.io/storage-provisioner': {}
            'f:volume.kubernetes.io/storage-provisioner': {}
        'f:spec':
          'f:volumeName': {}
      manager: kube-controller-manager
      operation: Update
      time: '2023-05-08T22:51:26+00:00'
    - apiVersion: v1
      fieldsType: FieldsV1
      fieldsV1:
        'f:status':
          'f:accessModes': {}
          'f:capacity':
            .: {}
            'f:storage': {}
          'f:phase': {}
      manager: kube-controller-manager
      operation: Update
      subresource: status
      time: '2023-05-08T22:51:26+00:00'
    - apiVersion: v1
      fieldsType: FieldsV1
      fieldsV1:
        'f:metadata':
          'f:annotations':
            .: {}
            'f:volume.kubernetes.io/selected-node': {}
      manager: kube-scheduler
      operation: Update
      time: '2023-05-08T22:51:26+00:00'
  name: test-tf-efs-v4-31-volume
  namespace: kubeflow-user-example-com
  resourceVersion: '33977'
  uid: 3a252a3d-f2b1-4a36-8961-8cc88c46153f
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: efs-sc
  volumeMode: Filesystem
  volumeName: pvc-3a252a3d-f2b1-4a36-8961-8cc88c46153f
status:
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 1Gi
  phase: Bound

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@@ -586,6 +592,14 @@ def footer():
help=f"Specify the path to the source files if different. Default is set to empty.",
required=False,
)
SETUP_FOR_TERRAFORM_DEFAULT = False
parser.add_argument(
"--setup-for-terraform",
Copy link
Contributor

Choose a reason for hiding this comment

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

  • Can we do --skip-driver-installation instead of --setup-for-terraform, anyone with driver installed on existing cluster can use this flag
  • Also, should we remove verify_prerequisites? e.g. eksctl not needed if driver installation is being skipped
  • Update the docs reflecting this change

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

@rrrkharse rrrkharse merged commit 88862c0 into awslabs:main May 10, 2023
rrrkharse added a commit to rrrkharse/kubeflow-manifests that referenced this pull request May 11, 2023
…labs#731)

- Updated the EKS Blueprints module version in use to v4.31, which
contains the updated permissions fix for the EFS CSI driver to work
correctly with Kubeflow. Details
[here](aws-ia/terraform-aws-eks-blueprints#1581).
- Added the `--skip-driver-installation` flag to the EFS auto setup script as
a temporary workaround for the missing full Terraform EFS add-on support





By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
surajkota pushed a commit that referenced this pull request May 11, 2023
…ame fix (#732)  (#734)

Cherry-pick #731 #732 
By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
jsitu777 pushed a commit to jsitu777/kubeflow-manifests that referenced this pull request Jun 27, 2023
…labs#731)

- Updated the EKS Blueprints module version in use to v4.31, which
contains the updated permissions fix for the EFS CSI driver to work
correctly with Kubeflow. Details
[here](aws-ia/terraform-aws-eks-blueprints#1581).
- Added the `--skip-driver-installation` flag to the EFS auto setup script as
a temporary workaround for the missing full Terraform EFS add-on support





By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

EFS does not work for terraform deployment when using built-in EFS driver install
4 participants