-
Notifications
You must be signed in to change notification settings - Fork 592
[3821] Remove deprecated Host Path, NFS, and EBS support for Kubernetes #3825
[3821] Remove deprecated Host Path, NFS, and EBS support for Kubernetes #3825
Conversation
Volumes are no longer loaded from Configs. As such there is no longer a need to de-duplicate against volumes loaded from Pod Templates and the CLI.
Updated V1Controller to use VolumeFactory for Empty Directory generation.
Updated V1Controller to use VolumeFactory for Host Path generation.
Updated V1Controller to use VolumeFactory for Network File System generation.
Added interfaces: - Volume Mounts - Persistent Volume Claim
…to saadurrahman/3821-Remove-Deprecated-Volumes-K8s
Generating all volume mounts from within Volume Factory for maintainability.
…to saadurrahman/3821-Remove-Deprecated-Volumes-K8s
…to saadurrahman/3821-Remove-Deprecated-Volumes-K8s
Test in <testCreatePersistentVolumeClaims> hardened for size.
…to saadurrahman/3821-Remove-Deprecated-Volumes-K8s
a1b1fcb
to
574efd5
Compare
…to saadurrahman/3821-Remove-Deprecated-Volumes-K8s
Good deployment test. Command~/bin/heron submit kubernetes ~/.heron/examples/heron-api-examples.jar \
org.apache.heron.examples.api.AckingTopology acking \
--verbose \
--deploy-deactivated \
--config-property heron.kubernetes.executor.pod.template=pod-templ-executor.pod-template-executor.yaml \
--config-property heron.kubernetes.manager.pod.template=pod-templ-manager.pod-template-manager.yaml \
--config-property heron.kubernetes.manager.limits.cpu=2 \
--config-property heron.kubernetes.manager.limits.memory=3 \
--config-property heron.kubernetes.manager.requests.cpu=1 \
--config-property heron.kubernetes.manager.requests.memory=2 \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-dynamic-volume.claimName=OnDemand \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-dynamic-volume.storageClassName=storage-class-name-manager \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-dynamic-volume.accessModes=ReadWriteOnce,ReadOnlyMany \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-dynamic-volume.sizeLimit=256Gi \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-dynamic-volume.volumeMode=Block \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-dynamic-volume.path=path/to/mount/dynamic/volume \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-dynamic-volume.subPath=sub/path/to/mount/dynamic/volume \
\
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-static-volume.claimName=OnDemand \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-static-volume.accessModes=ReadWriteOnce,ReadOnlyMany \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-static-volume.sizeLimit=512Gi \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-static-volume.volumeMode=Block \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-static-volume.path=path/to/mount/static/volume \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-static-volume.subPath=sub/path/to/mount/static/volume \
\
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-shared-volume.claimName=requested-claim-by-user \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-shared-volume.path=path/to/mount/shared/volume \
--config-property heron.kubernetes.manager.volumes.persistentVolumeClaim.manager-shared-volume.subPath=sub/path/to/mount/shared/volume \
\
--config-property heron.kubernetes.manager.volumes.emptyDir.manager-empty-dir.medium="Memory" \
--config-property heron.kubernetes.manager.volumes.emptyDir.manager-empty-dir.sizeLimit="50Mi" \
--config-property heron.kubernetes.manager.volumes.emptyDir.manager-empty-dir.path="empty/dir/path" \
--config-property heron.kubernetes.manager.volumes.emptyDir.manager-empty-dir.subPath="empty/dir/sub/path" \
--config-property heron.kubernetes.manager.volumes.emptyDir.manager-empty-dir.readOnly="true" \
\
--config-property heron.kubernetes.manager.volumes.hostPath.manager-host-path.type="File" \
--config-property heron.kubernetes.manager.volumes.hostPath.manager-host-path.pathOnHost="/dev/null" \
--config-property heron.kubernetes.manager.volumes.hostPath.manager-host-path.path="host/path/path" \
--config-property heron.kubernetes.manager.volumes.hostPath.manager-host-path.subPath="host/path/sub/path" \
--config-property heron.kubernetes.manager.volumes.hostPath.manager-host-path.readOnly="true" \
\
--config-property heron.kubernetes.manager.volumes.nfs.manager-nfs.server="nfs-server.address" \
--config-property heron.kubernetes.manager.volumes.nfs.manager-nfs.readOnly="true" \
--config-property heron.kubernetes.manager.volumes.nfs.manager-nfs.pathOnNFS="/dev/null" \
--config-property heron.kubernetes.manager.volumes.nfs.manager-nfs.path="nfs/path" \
--config-property heron.kubernetes.manager.volumes.nfs.manager-nfs.subPath="nfs/sub/path" \
--config-property heron.kubernetes.manager.volumes.nfs.manager-nfs.readOnly="true" \
\
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-dynamic-volume.claimName=OnDemand \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-dynamic-volume.storageClassName=storage-class-name-executor \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-dynamic-volume.accessModes=ReadWriteOnce,ReadOnlyMany \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-dynamic-volume.sizeLimit=256Gi \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-dynamic-volume.volumeMode=Block \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-dynamic-volume.path=path/to/mount/dynamic/volume \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-dynamic-volume.subPath=sub/path/to/mount/dynamic/volume \
\
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-static-volume.claimName=OnDemand \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-static-volume.accessModes=ReadWriteOnce,ReadOnlyMany \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-static-volume.sizeLimit=512Gi \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-static-volume.volumeMode=Block \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-static-volume.path=path/to/mount/static/volume \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-static-volume.subPath=sub/path/to/mount/static/volume \
\
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-shared-volume.claimName=requested-claim-by-user \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-shared-volume.path=path/to/mount/shared/volume \
--config-property heron.kubernetes.executor.volumes.persistentVolumeClaim.executor-shared-volume.subPath=sub/path/to/mount/shared/volume
Stateful SetsManagerName: acking-manager
Namespace: default
CreationTimestamp: Tue, 03 May 2022 11:33:31 -0400
Selector: app=heron,topology=acking
Labels: app=heron
topology=acking
Annotations: <none>
Replicas: 1 desired | 1 total
Update Strategy: RollingUpdate
Partition: 0
Pods Status: 0 Running / 1 Waiting / 0 Succeeded / 0 Failed
Pod Template:
Labels: app=heron
topology=acking
Annotations: prometheus.io/port: 8080
prometheus.io/scrape: true
Containers:
manager:
Image: apache/heron:testbuild
Ports: 6001/TCP, 6002/TCP, 6003/TCP, 6004/TCP, 6005/TCP, 6006/TCP, 6007/TCP, 6008/TCP, 6009/TCP, 7775/TCP, 7776/UDP
Host Ports: 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/UDP
Command:
sh
-c
./heron-core/bin/heron-downloader-config kubernetes && ./heron-core/bin/heron-downloader distributedlog://zookeeper:2181/heronbkdl/acking-saad-tag-0--3944535742942496843.tar.gz . && SHARD_ID=${POD_NAME##*-} && echo shardId=${SHARD_ID} && ./heron-core/bin/heron-executor --topology-name=acking --topology-id=acking3ae6b6a0-bbb8-45a1-8015-37fd50fec7c6 --topology-defn-file=acking.defn --state-manager-connection=zookeeper:2181 --state-manager-root=/heron --state-manager-config-file=./heron-conf/statemgr.yaml --tmanager-binary=./heron-core/bin/heron-tmanager --stmgr-binary=./heron-core/bin/heron-stmgr --metrics-manager-classpath=./heron-core/lib/metricsmgr/* --instance-jvm-opts="LVhYOitIZWFwRHVtcE9uT3V0T2ZNZW1vcnlFcnJvcg(61)(61)" --classpath=heron-api-examples.jar --heron-internals-config-file=./heron-conf/heron_internals.yaml --override-config-file=./heron-conf/override.yaml --component-ram-map=exclaim1:1073741824,word:1073741824 --component-jvm-opts="" --pkg-type=jar --topology-binary-file=heron-api-examples.jar --heron-java-home=$JAVA_HOME --heron-shell-binary=./heron-core/bin/heron-shell --cluster=kubernetes --role=saad --environment=default --instance-classpath=./heron-core/lib/instance/* --metrics-sinks-config-file=./heron-conf/metrics_sinks.yaml --scheduler-classpath=./heron-core/lib/scheduler/*:./heron-core/lib/packing/*:./heron-core/lib/statemgr/* --python-instance-binary=./heron-core/bin/heron-python-instance --cpp-instance-binary=./heron-core/bin/heron-cpp-instance --metricscache-manager-classpath=./heron-core/lib/metricscachemgr/* --metricscache-manager-mode=disabled --is-stateful=false --checkpoint-manager-classpath=./heron-core/lib/ckptmgr/*:./heron-core/lib/statefulstorage/*: --stateful-config-file=./heron-conf/stateful.yaml --checkpoint-manager-ram=1073741824 --health-manager-mode=disabled --health-manager-classpath=./heron-core/lib/healthmgr/* --shard=$SHARD_ID --server-port=6001 --tmanager-controller-port=6002 --tmanager-stats-port=6003 --shell-port=6004 --metrics-manager-port=6005 --scheduler-port=6006 --metricscache-manager-server-port=6007 --metricscache-manager-stats-port=6008 --checkpoint-manager-port=6009
Limits:
cpu: 2
memory: 3
Requests:
cpu: 1
memory: 2
Environment:
HOST: (v1:status.podIP)
POD_NAME: (v1:metadata.name)
var_one_manager: variable one on manager
var_three_manager: variable three on manager
var_two_manager: variable two on manager
Mounts:
/shared_volume/manager from shared-volume-manager (rw)
empty/dir/path from manager-empty-dir (ro,path="empty/dir/sub/path")
host/path/path from manager-host-path (ro,path="host/path/sub/path")
nfs/path from manager-nfs (ro,path="nfs/sub/path")
path/to/mount/dynamic/volume from manager-dynamic-volume (rw,path="sub/path/to/mount/dynamic/volume")
path/to/mount/shared/volume from manager-shared-volume (rw,path="sub/path/to/mount/shared/volume")
path/to/mount/static/volume from manager-static-volume (rw,path="sub/path/to/mount/static/volume")
manager-sidecar-container:
Image: alpine
Port: <none>
Host Port: <none>
Environment: <none>
Mounts:
/shared_volume/manager from shared-volume-manager (rw)
Volumes:
manager-empty-dir:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium: Memory
SizeLimit: 50Mi
manager-host-path:
Type: HostPath (bare host directory volume)
Path: /dev/null
HostPathType: File
manager-nfs:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: nfs-server.address
Path: /dev/null
ReadOnly: true
manager-shared-volume:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: requested-claim-by-user
ReadOnly: false
shared-volume-manager:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
Volume Claims:
Name: manager-static-volume
StorageClass:
Labels: onDemand=true
topology=acking
Annotations: <none>
Capacity: 512Gi
Access Modes: [ReadWriteOnce ReadOnlyMany]
Name: manager-dynamic-volume
StorageClass: storage-class-name-manager
Labels: onDemand=true
topology=acking
Annotations: <none>
Capacity: 256Gi
Access Modes: [ReadWriteOnce ReadOnlyMany]
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 6m38s statefulset-controller create Claim manager-static-volume-acking-manager-0 Pod acking-manager-0 in StatefulSet acking-manager success
Normal SuccessfulCreate 6m38s statefulset-controller create Claim manager-dynamic-volume-acking-manager-0 Pod acking-manager-0 in StatefulSet acking-manager success
Normal SuccessfulCreate 6m38s statefulset-controller create Pod acking-manager-0 in StatefulSet acking-manager successful ExecutorName: acking-manager
Namespace: default
CreationTimestamp: Tue, 03 May 2022 11:33:31 -0400
Selector: app=heron,topology=acking
Labels: app=heron
topology=acking
Annotations: <none>
Replicas: 1 desired | 1 total
Update Strategy: RollingUpdate
Partition: 0
Pods Status: 0 Running / 1 Waiting / 0 Succeeded / 0 Failed
Pod Template:
Labels: app=heron
topology=acking
Annotations: prometheus.io/port: 8080
prometheus.io/scrape: true
Containers:
manager:
Image: apache/heron:testbuild
Ports: 6001/TCP, 6002/TCP, 6003/TCP, 6004/TCP, 6005/TCP, 6006/TCP, 6007/TCP, 6008/TCP, 6009/TCP, 7775/TCP, 7776/UDP
Host Ports: 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/UDP
Command:
sh
-c
./heron-core/bin/heron-downloader-config kubernetes && ./heron-core/bin/heron-downloader distributedlog://zookeeper:2181/heronbkdl/acking-saad-tag-0--3944535742942496843.tar.gz . && SHARD_ID=${POD_NAME##*-} && echo shardId=${SHARD_ID} && ./heron-core/bin/heron-executor --topology-name=acking --topology-id=acking3ae6b6a0-bbb8-45a1-8015-37fd50fec7c6 --topology-defn-file=acking.defn --state-manager-connection=zookeeper:2181 --state-manager-root=/heron --state-manager-config-file=./heron-conf/statemgr.yaml --tmanager-binary=./heron-core/bin/heron-tmanager --stmgr-binary=./heron-core/bin/heron-stmgr --metrics-manager-classpath=./heron-core/lib/metricsmgr/* --instance-jvm-opts="LVhYOitIZWFwRHVtcE9uT3V0T2ZNZW1vcnlFcnJvcg(61)(61)" --classpath=heron-api-examples.jar --heron-internals-config-file=./heron-conf/heron_internals.yaml --override-config-file=./heron-conf/override.yaml --component-ram-map=exclaim1:1073741824,word:1073741824 --component-jvm-opts="" --pkg-type=jar --topology-binary-file=heron-api-examples.jar --heron-java-home=$JAVA_HOME --heron-shell-binary=./heron-core/bin/heron-shell --cluster=kubernetes --role=saad --environment=default --instance-classpath=./heron-core/lib/instance/* --metrics-sinks-config-file=./heron-conf/metrics_sinks.yaml --scheduler-classpath=./heron-core/lib/scheduler/*:./heron-core/lib/packing/*:./heron-core/lib/statemgr/* --python-instance-binary=./heron-core/bin/heron-python-instance --cpp-instance-binary=./heron-core/bin/heron-cpp-instance --metricscache-manager-classpath=./heron-core/lib/metricscachemgr/* --metricscache-manager-mode=disabled --is-stateful=false --checkpoint-manager-classpath=./heron-core/lib/ckptmgr/*:./heron-core/lib/statefulstorage/*: --stateful-config-file=./heron-conf/stateful.yaml --checkpoint-manager-ram=1073741824 --health-manager-mode=disabled --health-manager-classpath=./heron-core/lib/healthmgr/* --shard=$SHARD_ID --server-port=6001 --tmanager-controller-port=6002 --tmanager-stats-port=6003 --shell-port=6004 --metrics-manager-port=6005 --scheduler-port=6006 --metricscache-manager-server-port=6007 --metricscache-manager-stats-port=6008 --checkpoint-manager-port=6009
Limits:
cpu: 2
memory: 3
Requests:
cpu: 1
memory: 2
Environment:
HOST: (v1:status.podIP)
POD_NAME: (v1:metadata.name)
var_one_manager: variable one on manager
var_three_manager: variable three on manager
var_two_manager: variable two on manager
Mounts:
/shared_volume/manager from shared-volume-manager (rw)
empty/dir/path from manager-empty-dir (ro,path="empty/dir/sub/path")
host/path/path from manager-host-path (ro,path="host/path/sub/path")
nfs/path from manager-nfs (ro,path="nfs/sub/path")
path/to/mount/dynamic/volume from manager-dynamic-volume (rw,path="sub/path/to/mount/dynamic/volume")
path/to/mount/shared/volume from manager-shared-volume (rw,path="sub/path/to/mount/shared/volume")
path/to/mount/static/volume from manager-static-volume (rw,path="sub/path/to/mount/static/volume")
manager-sidecar-container:
Image: alpine
Port: <none>
Host Port: <none>
Environment: <none>
Mounts:
/shared_volume/manager from shared-volume-manager (rw)
Volumes:
manager-empty-dir:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium: Memory
SizeLimit: 50Mi
manager-host-path:
Type: HostPath (bare host directory volume)
Path: /dev/null
HostPathType: File
manager-nfs:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: nfs-server.address
Path: /dev/null
ReadOnly: true
manager-shared-volume:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: requested-claim-by-user
ReadOnly: false
shared-volume-manager:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
Volume Claims:
Name: manager-static-volume
StorageClass:
Labels: onDemand=true
topology=acking
Annotations: <none>
Capacity: 512Gi
Access Modes: [ReadWriteOnce ReadOnlyMany]
Name: manager-dynamic-volume
StorageClass: storage-class-name-manager
Labels: onDemand=true
topology=acking
Annotations: <none>
Capacity: 256Gi
Access Modes: [ReadWriteOnce ReadOnlyMany]
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 4m46s statefulset-controller create Claim manager-static-volume-acking-manager-0 Pod acking-manager-0 in StatefulSet acking-manager success
Normal SuccessfulCreate 4m46s statefulset-controller create Claim manager-dynamic-volume-acking-manager-0 Pod acking-manager-0 in StatefulSet acking-manager success
Normal SuccessfulCreate 4m46s statefulset-controller create Pod acking-manager-0 in StatefulSet acking-manager successful Persistent Volume ClaimsName: executor-dynamic-volume-acking-executor-0
Namespace: default
StorageClass: storage-class-name-executor
Status: Pending
Volume:
Labels: app=heron
onDemand=true
topology=acking
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Block
Used By: acking-executor-0
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning ProvisioningFailed 2m8s (x26 over 8m9s) persistentvolume-controller storageclass.storage.k8s.io "storage-class-name-executor" not found
Name: executor-dynamic-volume-acking-executor-1
Namespace: default
StorageClass: storage-class-name-executor
Status: Pending
Volume:
Labels: app=heron
onDemand=true
topology=acking
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Block
Used By: acking-executor-1
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning ProvisioningFailed 2m8s (x26 over 8m9s) persistentvolume-controller storageclass.storage.k8s.io "storage-class-name-executor" not found
Name: executor-static-volume-acking-executor-0
Namespace: default
StorageClass:
Status: Pending
Volume:
Labels: app=heron
onDemand=true
topology=acking
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Block
Used By: acking-executor-0
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FailedBinding 2m8s (x26 over 8m9s) persistentvolume-controller no persistent volumes available for this claim and no storage class is set
Name: executor-static-volume-acking-executor-1
Namespace: default
StorageClass:
Status: Pending
Volume:
Labels: app=heron
onDemand=true
topology=acking
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Block
Used By: acking-executor-1
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FailedBinding 2m8s (x26 over 8m9s) persistentvolume-controller no persistent volumes available for this claim and no storage class is set
Name: manager-dynamic-volume-acking-manager-0
Namespace: default
StorageClass: storage-class-name-manager
Status: Pending
Volume:
Labels: app=heron
onDemand=true
topology=acking
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Block
Used By: acking-manager-0
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning ProvisioningFailed 2m8s (x26 over 8m9s) persistentvolume-controller storageclass.storage.k8s.io "storage-class-name-manager" not found
Name: manager-static-volume-acking-manager-0
Namespace: default
StorageClass:
Status: Pending
Volume:
Labels: app=heron
onDemand=true
topology=acking
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Block
Used By: acking-manager-0
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FailedBinding 2m8s (x26 over 8m9s) persistentvolume-controller no persistent volumes available for this claim and no storage class is set |
I employed a hybrid-factory pattern here because you cannot overload functions strictly on return types in Java. I would like to get this PR merged before we set a signed tag for the subsequent release. I know some folks are really busy and may not have time to review this. @thinker0 I appreciate you are using Mesos as the scheduler of choice but there isn't a modern programming language in existence you are not comfortable with. Could you please have a look at the changes and provide some general feedback when you have time? I could not find you in the review request list so I cannot add you to the list of requested reviewers. @windhamwong You are a Python expert but I am not sure how comfortable you are with Java, could you please have a look if you are comfortable? If I recall correctly you use Kubernetes as your scheduler of choice? Would you be so kind as to give this PR a deployment test if you have some time? |
Are we sure this won't break existing functionality? I kind of was leaning to cut the release before putting this in. If you're confident in the changes, I'm ok adding it. But I made a tag yesterday and was starting to generate the artifacts. If you've done a Helm install and tested things, I'm ok moving the branch/tag to include this. Will also try to review later tonight to better understand the cleanup changes. |
I have not completed a Helm install but I have completed deployment testing on Minikube. If anyone else is uncomfortable/unsure with the changes I am fine with not having this in the release. With that said, this does remove deprecated code and would provide a clean tagged point to reset to if we ever needed to. Edit: I should add that there are no permission changes or additional functionality added which would require additional permissions on Kubernetes. I am not sure how else there would be an impact on the Helm charts. |
Oh, I just meant a test in k8s, like Minikube. I did a test install and it looks good. Haven't tested any PVC mounts, but it looks good. |
Much obliged. The test suites in this package should be robust and comprehensive enough to catch any broken functionality. The deployment test traces above indicate good volume creation. This PR will not negatively impact stability. |
This PR removes support for the configuration of
EBS
,Host Path
, andNFS
via the topology configs. Closes #3821.Tasks:
EBS
loading from topology configs.NFS
loading from topology configs.Host Path
loading from topology configs.Volume Factory
.Voume Factory
.Empty Directory
volume creation toVolume Factory
.Host Path
volume creation toVolume Factory
.Network File System
volume creation toVolume Factory
.Volume Factory
.Persistent Volume Claim
creation toVolume Factory
.