Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

[Heron-3723] Add support for Persistent Volumes for stateful storage #3725

Merged
merged 248 commits into from
Nov 30, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
248 commits
Select commit Hold shift + click to select a range
2e28a7f
[Kubernetes] setup basic mount info for Pod ConfigMap.
surahman Sep 9, 2021
a52a8df
[Kubernetes] updated function signature to handle Pod Template Config…
surahman Sep 10, 2021
5f6f70f
[kubernetes] extracting Pod Template ConfigMap name from <Config>.
surahman Sep 10, 2021
1eb7e6e
[kubernetes] checking for Pod Template ConfigMap and appropriately ad…
surahman Sep 10, 2021
7965402
[kubernetes] Java Style lint fix.
surahman Sep 10, 2021
3d9d87a
[Tests] Kubernetes Controller tests for Pod Template ConfigMap.
surahman Sep 13, 2021
04040b9
[Tests] Kubernetes Constants and Context tests for Pod Template Confi…
surahman Sep 13, 2021
cfc61f0
[Tests] Kubernetes V1Controller test suite stubbed.
surahman Sep 13, 2021
dc29291
[Tests] Java style lint fixed.
surahman Sep 13, 2021
b20ac27
[Tests] Kubernetes V1Controller Pod Template ConfigMap volume mount.
surahman Sep 15, 2021
64d6a2a
[Kubernetes] cleaned up to begin work on <loadPodFromTemplate>.
surahman Sep 18, 2021
e3d72c9
[Kubernetes] created <loadPodFromTemplate>.
surahman Sep 19, 2021
7d49ac0
[Tests] Begun mock test setup of <loadPodFromTemplate>.
surahman Sep 19, 2021
495656f
[Kubernetes] style check/linting fix.
surahman Sep 19, 2021
955854e
[Kubernetes] refactoring <V1Controller> and <KubernetesController>.
surahman Sep 20, 2021
a0edc0b
[Kubernetes] added description to failed to locate exception.
surahman Sep 20, 2021
bc5d903
[Tests] <loadPodFromTemplate> Pod Template checks.
surahman Sep 20, 2021
f1c51cf
[Kubernetes] check for no ConfigMaps set.
surahman Sep 20, 2021
0da63f0
[Tests] working on mocking null list of V1ConfigMapList.
surahman Sep 20, 2021
f213956
[Kubernetes] refactoring <loadPodFromTemplate>
surahman Sep 21, 2021
c981bcb
[Tests] Stubbed <getConfigMaps> and testing <loadPodFromTemplate>.
surahman Sep 21, 2021
5ee702e
[Kubernetes] <loadPodFromTemplate> adjusted to get <V1PodTemplateSpec…
surahman Sep 22, 2021
e8fe2c3
[Kubernetes] check for empty Pod Template in ConfigMap.
surahman Sep 22, 2021
7b9c7bc
[Tests] Valid Pod Template test.
surahman Sep 22, 2021
5f1d5d2
[Tests] Invalid Pod Template.
surahman Sep 22, 2021
03fc826
[Tests] refactored test data to their respective tests.
surahman Sep 22, 2021
331c119
[Kubernetes] refactored <loadPodFromTemplate> for readability.
surahman Sep 23, 2021
16fa969
[Kubernetes] params for <getConfigMaps> tweaked.
surahman Sep 23, 2021
7640428
[Kubernetes] <getPodTemplateLocation> extracting ConfigMap and Pod Te…
surahman Sep 25, 2021
c1aae2a
[Tests] <getPodTemplateLocation> for correct and incorrect parsing.
surahman Sep 25, 2021
f9a22d2
[Kubernetes] <getPodTemplateLocation> catching empty names.
surahman Sep 25, 2021
8cbeb98
[Tests] <getPodTemplateLocation> separated tests for ConfigMap and Po…
surahman Sep 25, 2021
13b6a12
[Kubernetes] updated <loadPodFromTemplate> to use ConfigMap and Pod T…
surahman Sep 25, 2021
3f36eee
[Tests] updated tests for <loadPodFromTemplate> to use ConfigMap and …
surahman Sep 25, 2021
63c9882
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Sep 25, 2021
52cbb5f
[Kubernetes] added INFO logging to <loadPodFromTemplate> for the depl…
surahman Sep 25, 2021
1163615
[Kubernetes] Bug fixes in error messages for <loadPodFromTemplate>.
surahman Sep 26, 2021
16197ec
[Kubernetes] bug fix and test for missing delimiter in <getPodTemplat…
surahman Sep 27, 2021
7e28577
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Sep 27, 2021
e628525
[Kubernetes] <getConfigMaps> namespace access updated.
surahman Sep 29, 2021
a642ae6
[Kubernetes] <configureRBAC> basic logic.
surahman Sep 29, 2021
78be69f
[Tests] cleaned up <V1Controller> tests.
surahman Sep 29, 2021
94cdf32
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Sep 29, 2021
8591776
[Kubernetes] <configureRBAC> more detailed error log.
surahman Sep 30, 2021
95b06c5
[Kubernetes] <configureRBAC> role configurations.
surahman Sep 30, 2021
1c79a8d
[Kubernetes] refactored <loadFromPodTemplate>.
surahman Oct 1, 2021
0512be7
[Tests] switched to <ConfigMapBuilder> in <V1ControllerTest>.
surahman Oct 1, 2021
0492758
[Kubernetes] switched to <V1RoleBuilder> in <configureRBAC>.
surahman Oct 1, 2021
6e603cb
[Kubernetes] made <loadPodFromTemplate> protected.
surahman Oct 1, 2021
02c31c8
[Kubernetes] removed <configureRBAC>.
surahman Oct 2, 2021
3e99645
[Kubernetes] <getPodTemplateLocation> error message passed up.
surahman Oct 4, 2021
008df36
[Kubernetes] refactored <getPodSpec> to <finalizePodSpec>.
surahman Oct 5, 2021
64f5d6a
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 5, 2021
2bcee30
[Kubernetes] Added boot flag to disable Pod Templates.
surahman Oct 5, 2021
9f8ee1b
[Tests] testing to validate boot flag for disabled Pod Templates.
surahman Oct 5, 2021
dc00122
[Kubernetes] Wiring in boot flag to disable Pod Templates in <loadPo…
surahman Oct 5, 2021
e0fc6a2
[Tests] disabled Pod Templates output validation.
surahman Oct 5, 2021
1b194ce
[Kubernetes] Added class scoped variable <isPodTemplateDisabled>.
surahman Oct 6, 2021
4552623
[Kubernetes] <getContainer> modified to utilise supplied executor con…
surahman Oct 8, 2021
7e9c167
[Kubernetes] <getContainer> <V1EnvVar>s.
surahman Oct 8, 2021
3092b48
[Kubernetes] <getContainer> Limits.
surahman Oct 8, 2021
e785fad
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 8, 2021
c70650a
[Kubernetes] disabled Pod Templates will return error when attempting…
surahman Oct 9, 2021
14ef421
[Kubernetes] <API Server> configs.
surahman Oct 9, 2021
a8eff1c
[Kubernetes] <configureExecutorContainer>
surahman Oct 9, 2021
0ed4656
[Kubernetes] <configureExecutorContainer>
surahman Oct 10, 2021
010d31d
[Kubernetes] <configureExecutorContainer>
surahman Oct 10, 2021
2baae66
[Kubernetes] <mountVolumeIfPresent>
surahman Oct 10, 2021
6c8b432
[Kubernetes] <V1Controller>
surahman Oct 10, 2021
d990768
[Kubernetes] <mountVolumeIfPresent>
surahman Oct 10, 2021
2e306c5
[Kubernetes] <configureContainerPorts>
surahman Oct 10, 2021
d055044
[Kubernetes] <configureExecutorContainer>
surahman Oct 10, 2021
48d7a1e
[Kubernetes] <addVolumesIfPresent>
surahman Oct 10, 2021
aa1d3da
[Kubernetes] <configureExecutorContainer>
surahman Oct 11, 2021
5506db9
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 11, 2021
8dba2d4
[Scheduler-Core] <LaunchRunner> handling <submit> errors better.
surahman Oct 12, 2021
9604a31
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 12, 2021
b4d219a
[Kubernetes] <V1Controller>
surahman Oct 12, 2021
8e986a0
[Kubernetes] code review changes.
surahman Oct 13, 2021
c22ce3a
[Scheduler-Core] code review changes.
surahman Oct 13, 2021
26a7ad4
[Tests] <configureContainerPorts>.
surahman Oct 13, 2021
277cd42
[Kubernetes] <API Server> configs.
surahman Oct 13, 2021
b69c7d9
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 13, 2021
0209d49
[Kubernetes] <configureContainerEnvVars>
surahman Oct 14, 2021
9cc0b3d
[Tests] <configureContainerEnvVars>.
surahman Oct 14, 2021
82895db
[Kubernetes] <configureExecutorContainer>
surahman Oct 14, 2021
113c39e
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 14, 2021
146fca2
Update for Helm chart
nicknezis Oct 14, 2021
59feac1
Updated version to match the other k8s ClusterRoleBindings
nicknezis Oct 14, 2021
911e593
[Kubernetes] <configureContainerResources>
surahman Oct 14, 2021
a40a951
[Kubernetes] <configureExecutorContainer>
surahman Oct 14, 2021
93c4c01
[Tests] <testConfigureContainerPorts>.
surahman Oct 14, 2021
886c001
[Kubernetes] <addVolumesIfPresent>.
surahman Oct 14, 2021
9abe509
[Tests] <addVolumesIfPresent>.
surahman Oct 14, 2021
dd9d60c
[Kubernetes] <mountVolumeIfPresent>.
surahman Oct 14, 2021
9084b5b
[Tests] <mountVolumeIfPresent>.
surahman Oct 15, 2021
34b1fed
[Tests] <addVolumesIfPresent>.
surahman Oct 15, 2021
3c56c08
[Tests] <mountVolumesIfPresent>.
surahman Oct 15, 2021
dbaa79a
[Tests] <addVolumesIfPresent>.
surahman Oct 15, 2021
fcdd785
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 15, 2021
fd7de05
Attempt to fix Travis CI build
nicknezis Oct 15, 2021
615524f
[Tests] <configureContainerEnvVars> <configureContainerPorts>.
surahman Oct 15, 2021
e69bfc3
[Tests] <V1ControllerTests>
surahman Oct 16, 2021
530f975
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 16, 2021
8543e08
Travis fix take 3
nicknezis Oct 16, 2021
ad6aa92
Travis CI fix
nicknezis Oct 16, 2021
4f53a4c
[Kubernetes] <V1ControllerUtils>
surahman Oct 17, 2021
86a1a99
[Tests] <mergeListDedupe>.
surahman Oct 17, 2021
60f53a5
[Kubernetes] <V1Controller>.
surahman Oct 17, 2021
8a5c9c6
[Kubernetes] <V1Controller> cleaned up unneeded returns when using se…
surahman Oct 18, 2021
af18b4a
[Kubernetes] <V1Controller>.
surahman Oct 18, 2021
4be3ca5
[Tests] <configureTolerations>.
surahman Oct 18, 2021
5509d73
[Kubernetes] <configurePodSpec>.
surahman Oct 18, 2021
e454e48
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 18, 2021
f50b8ab
[Tests] cleaning up code.
surahman Oct 19, 2021
37b6f8a
[Kubernetes] <configurePodSpec>.
surahman Oct 19, 2021
d3abc10
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 19, 2021
ef2028c
[Tests] <V1Controller> general cleanup.
surahman Oct 21, 2021
b57d4d5
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 22, 2021
331529e
[Kubernetes] Constants
surahman Oct 25, 2021
2ddc067
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 25, 2021
e11f8d9
[Kubernetes] <V1Controller>
surahman Oct 26, 2021
7611638
[Tests] <V1Controller>
surahman Oct 26, 2021
3619128
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 27, 2021
dea1ded
[Kubernetes] <V1Controller>
surahman Oct 27, 2021
f082f0a
[Tests] <V1Controller>
surahman Oct 27, 2021
cf53e2c
[Kubernetes] <KubernetesUtils>
surahman Oct 27, 2021
ad61faa
[Tests] <KubernetesUtils>
surahman Oct 27, 2021
06c1941
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 27, 2021
06c2a77
[Tests] <V1Controller>
surahman Oct 29, 2021
7b0f0f3
[Kubernetes] <V1Controller>
surahman Oct 29, 2021
91dbbb2
Merge branch '3707-Config-Map-Support-dev' into 3707-ConfigMap-Support
surahman Oct 29, 2021
d205875
Add support for reading configmap
nicknezis Oct 29, 2021
72296c6
Removed deprecated k8s tolerations
nicknezis Oct 29, 2021
83feaca
[docs] Added instructions for setting up Intellij IDEA with the Bazel…
surahman Sep 12, 2021
f6cbfc9
pointing older releases to be retrieved from archive.a.o (#3714)
joshfischer1108 Sep 17, 2021
273fb35
mirror link change (#3716)
joshfischer1108 Sep 17, 2021
a479e89
Fix heron-downloader cannot load the jar package correctly (#3709)
zhangshaoning1 Sep 24, 2021
a5fc125
updatelogging (#3718)
huijunwu Sep 30, 2021
1f85f92
[Kubernetes] <KubernetesConstants>
surahman Oct 30, 2021
1252df0
[Kubernetes] <getPersistentVolumeClaims>
surahman Oct 31, 2021
25efe3b
[Tests] <getPersistentVolumeClaims>
surahman Oct 31, 2021
63249d0
[Kubernetes] <KubernetesConstants>
surahman Oct 31, 2021
e2bce91
[Kubernetes] <getPersistentVolumeClaims>
surahman Oct 31, 2021
421773e
[Tests] <getPersistentVolumeClaims>
surahman Oct 31, 2021
033cf07
[Kubernetes] <V1Controller>
surahman Oct 31, 2021
1b7a1e4
[Tests] <configurePersistentVolumeClaims>
surahman Oct 31, 2021
86d6d80
[Kubernetes] <createPersistentVolumeClaims>
surahman Nov 1, 2021
02f4b1d
[Kubernetes] <V1Controller>
surahman Nov 1, 2021
596b6f8
[Kubernetes] <getPersistentVolumeClaims>
surahman Nov 1, 2021
46782a1
[Kubernetes] <V1Controller>
surahman Nov 1, 2021
899d210
[Tests] <createPersistentVolumeClaimVolumes>
surahman Nov 1, 2021
53a14b4
[Kubernetes] <V1Controller>
surahman Nov 1, 2021
d28551a
[Tests] <createPersistentVolumeClaimVolumesAndMounts>
surahman Nov 1, 2021
c5b995c
[Kubernetes] <V1Controller>
surahman Nov 1, 2021
493f190
[Kubernetes] <V1Controller>
surahman Nov 1, 2021
a0b4e02
[Tests] <configurePodWithPersistentVolumeClaims>
surahman Nov 2, 2021
c04274f
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 2, 2021
4447986
[Kubernetes] <KubernetesContext>
surahman Nov 3, 2021
27db1b4
[Tests] <getPersistentVolumeClaims>
surahman Nov 3, 2021
31465c5
[Kubernetes] <V1Controller>
surahman Nov 3, 2021
c932501
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 3, 2021
77cc4fe
[Kubernetes] Deployments
surahman Nov 4, 2021
6522803
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 4, 2021
71cad75
[Docs] Basic information for feature.
surahman Nov 4, 2021
d093d38
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 4, 2021
ff20a3a
[Kubernetes] <V1Controller>
surahman Nov 4, 2021
d7559af
[Tests] <V1Controller>
surahman Nov 4, 2021
2739122
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 4, 2021
2420adf
[Kubernetes] <KubernetesContext>
surahman Nov 6, 2021
6729974
[Kubernetes] <V1Controller>
surahman Nov 6, 2021
d223524
[kubernetes] <V1Controller>
surahman Nov 6, 2021
dff9ea6
[Kubernetes] <V1Controller>
surahman Nov 6, 2021
d301928
[Kubernetes] <V1Controller>
surahman Nov 6, 2021
c0b24a5
[Kubernetes] <V1Controller>
surahman Nov 6, 2021
d21cccf
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 6, 2021
9c2077c
[Kubernetes] Deployments
surahman Nov 6, 2021
c8c9ab6
[Kubernetes] <V1Controller>
surahman Nov 6, 2021
87ab7fd
[Docs] Dynamic and Static PVC
surahman Nov 6, 2021
2c66d82
[Kubernetes] <V1Controller>
surahman Nov 6, 2021
47baa87
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 6, 2021
654d9fb
[Kubernetes] <KubernetesConstants>
surahman Nov 6, 2021
6448132
[Kubernetes] <V1Controller>
surahman Nov 6, 2021
cf1d52f
[Kubernetes] <V1Controller>
surahman Nov 7, 2021
c71b1ca
[Kubernetes] <V1Controller>
surahman Nov 7, 2021
b26f93f
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 7, 2021
6be3cba
[Kubernetes] <V1Controller>
surahman Nov 8, 2021
26ed671
[Docs] updates for added labels.
surahman Nov 8, 2021
2d4decd
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 8, 2021
977b5d9
[Tests] <KubernetesContext>
surahman Nov 8, 2021
4a6a3ae
[Tests] <KubernetesContext>
surahman Nov 8, 2021
07e841d
[Kubernetes] <KubernetesUtils>
surahman Nov 8, 2021
26d0979
[Tests] <KubernetesContext>
surahman Nov 8, 2021
552f630
[Kubernetes] <KubernetesUtils>
surahman Nov 8, 2021
a9f9af8
[Tests] <KubernetesContext>
surahman Nov 8, 2021
f4585b0
[Kubernetes] <V1Controller>
surahman Nov 9, 2021
0f22af3
[Tests] <V1Controller>
surahman Nov 9, 2021
2920210
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 9, 2021
582b566
[Kubernetes] <KubernetesConstants>
surahman Nov 9, 2021
2404bec
[Kubernetes] <KubernetesContext>
surahman Nov 9, 2021
d34331c
[Tests] <KubernetesContext>
surahman Nov 9, 2021
ef401c8
[Docs] added required options section.
surahman Nov 9, 2021
383e817
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 9, 2021
783aea1
[Docs] updating details on dynamic PVCs.
surahman Nov 9, 2021
1f77a05
[Tests] <KubernetesContext>
surahman Nov 10, 2021
34da801
[Kubernetes] <KubernetesContext>
surahman Nov 10, 2021
f761cab
[Docs] moved required options table up.
surahman Nov 10, 2021
04f3f4c
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 10, 2021
641ed8d
Merge branch 'master' into 3723-PersistentVolumeClaim
nicknezis Nov 11, 2021
364d592
[Kubernetes] <KubernetesConstants>
surahman Nov 11, 2021
2d0669b
[Kubernetes] <KubernetesContext>
surahman Nov 11, 2021
7fdce89
[Kubernetes] <V1Controller>
surahman Nov 11, 2021
0e8511d
[Kubernetes] <V1Controller>
surahman Nov 11, 2021
d9c51bb
[Kubernetes] <V1Controller>
surahman Nov 12, 2021
ff0cc83
[Kubernetes] <V1Controller>
surahman Nov 12, 2021
77f4bf9
[Kubernetes] <V1Controller>
surahman Nov 12, 2021
dec9746
[Kubernetes] <V1Controller>
surahman Nov 12, 2021
2ba283f
[Docs] updated for Volume Claim Templates.
surahman Nov 12, 2021
274f86c
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 12, 2021
7381bc3
[Docs] added details on per Pod PV/PVC's.
surahman Nov 12, 2021
3699d4d
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 12, 2021
ef45a54
[Docs] added potential use cases.
surahman Nov 12, 2021
c7a9769
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 12, 2021
1cb75ea
Merge commit 'c32c09a0f09caca74dbf5715aa0632f0a50356c9' into 3723-Per…
nicknezis Nov 12, 2021
0ead89b
Merge branch 'master' into 3723-PersistentVolumeClaim
nicknezis Nov 13, 2021
9c60dca
Added missing role to enable topology pvc deletion
nicknezis Nov 13, 2021
d454585
Fixed CI Pipeline Failures Involving the <stmgr_unittest> (#3735)
surahman Nov 15, 2021
6c91f7e
Fixed CI Pipeline Failures Involving the <stmgr_unittest> (#3735)
surahman Nov 15, 2021
56a5f07
[Kubernetes] <KubernetesContext>
surahman Nov 15, 2021
7826444
[Tests] <KubernetesContext>
surahman Nov 15, 2021
5398da6
[Kubernetes] <V1Controller>
surahman Nov 15, 2021
3879012
[Tests] <V1Controller>
surahman Nov 15, 2021
34780ce
[Kubernetes] <V1Controller>
surahman Nov 15, 2021
3b00a42
[Tests] <V1Controller>
surahman Nov 15, 2021
257de88
[Kubernetes] <V1Controller>
surahman Nov 15, 2021
edd1990
[Tests] <V1Controller>
surahman Nov 15, 2021
a36d243
[Docs] updated for `claimName`.
surahman Nov 15, 2021
f92d841
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 15, 2021
048437e
[Test] <V1Controller>
surahman Nov 16, 2021
af20a63
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 16, 2021
ec08d58
Merge branch 'master' into 3723-PersistentVolumeClaim
surahman Nov 20, 2021
319ea73
Merge branch 'master' into 3723-PersistentVolumeClaim-dev
surahman Nov 20, 2021
fc473ae
[Docs] added sidebar entry and cleaned up required commands table.
surahman Nov 22, 2021
c4736cf
Merge branch '3723-PersistentVolumeClaim-dev' into 3723-PersistentVol…
surahman Nov 22, 2021
f02e634
[Docs] Examples of valid access modes.
surahman Nov 28, 2021
a2711fc
[Docs] Command typo fix.
surahman Nov 28, 2021
11f6af9
[Docs] Command typo fix.
surahman Nov 28, 2021
154987c
[Docs] Command typo fix.
surahman Nov 28, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions deploy/kubernetes/general/apiserver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ spec:
-D heron.statefulstorage.classname=org.apache.heron.statefulstorage.dlog.DlogStorage
-D heron.statefulstorage.dlog.namespace.uri=distributedlog://zookeeper:2181/heron
-D heron.kubernetes.pod.template.configmap.disabled=false
-D heron.kubernetes.persistent.volume.claims.cli.disabled=false

---
apiVersion: v1
Expand Down
11 changes: 11 additions & 0 deletions deploy/kubernetes/helm/templates/tools.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ spec:
{{- end }}
-D heron.kubernetes.resource.request.mode={{ .Values.topologyResourceRequestMode }}
-D heron.kubernetes.pod.template.configmap.disabled={{ .Values.disablePodTemplates }}
-D heron.kubernetes.persistent.volume.claims.cli.disabled={{ .Values.disablePersistentVolumeMountsCLI }}
envFrom:
- configMapRef:
name: {{ .Release.Name }}-tools-config
Expand Down Expand Up @@ -321,3 +322,13 @@ rules:
verbs:
- get
- list
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- create
- delete
- get
- list
- deletecollection
3 changes: 3 additions & 0 deletions deploy/kubernetes/helm/values.yaml.template
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ packing: RoundRobin # ResourceCompliantRR, FirstFitDecreasing
# Support for ConfigMap mounted PodTemplates
disablePodTemplates: false

# Support for Dynamic Persistent Volume Mounts from CLI input
disablePersistentVolumeMountsCLI: false

# Number of replicas for storage bookies, memory and storage requirements
bookieReplicas: 3
bookieCpuMin: 100m
Expand Down
1 change: 1 addition & 0 deletions deploy/kubernetes/minikube/apiserver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ spec:
-D heron.statefulstorage.classname=org.apache.heron.statefulstorage.dlog.DlogStorage
-D heron.statefulstorage.dlog.namespace.uri=distributedlog://zookeeper:2181/heronbkdl
-D heron.kubernetes.pod.template.configmap.disabled=false
-D heron.kubernetes.persistent.volume.claims.cli.disabled=false

---
apiVersion: v1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ private KubernetesConstants() {
public static final String LABEL_APP = "app";
public static final String LABEL_APP_VALUE = "heron";
public static final String LABEL_TOPOLOGY = "topology";
public static final String LABEL_ON_DEMAND = "onDemand";

// prometheus annotation keys
public static final String ANNOTATION_PROMETHEUS_SCRAPE = "prometheus.io/scrape";
Expand Down Expand Up @@ -88,11 +89,13 @@ private KubernetesConstants() {
public static final String JOB_LINK =
"/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy/#/pod";


public static final Pattern VALID_POD_NAME_REGEX =
Pattern.compile("[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*",
Pattern.CASE_INSENSITIVE);

public static final Pattern VALID_LOWERCASE_RFC_1123_REGEX =
Pattern.compile("[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*");

public static final List<String> VALID_IMAGE_PULL_POLICIES = Collections.unmodifiableList(
Arrays.asList(
"IfNotPresent",
Expand All @@ -107,4 +110,14 @@ private KubernetesConstants() {
"node.kubernetes.io/unreachable"
)
);

enum VolumeClaimTemplateConfigKeys {
claimName,
storageClassName,
sizeLimit,
accessModes,
volumeMode,
path, // Added to container.
subPath, // Added to container.
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;

import org.apache.heron.scheduler.TopologySubmissionException;
import org.apache.heron.spi.common.Config;
import org.apache.heron.spi.common.Context;

Expand Down Expand Up @@ -109,6 +113,13 @@ public enum KubernetesResourceRequestMode {
public static final String KUBERNETES_POD_SECRET_KEY_REF_PREFIX =
"heron.kubernetes.pod.secretKeyRef.";

// Persistent Volume Claims
public static final String KUBERNETES_PERSISTENT_VOLUME_CLAIMS_CLI_DISABLED =
"heron.kubernetes.persistent.volume.claims.cli.disabled";
// heron.kubernetes.volumes.persistentVolumeClaim.VOLUME_NAME.OPTION=OPTION_VALUE
public static final String KUBERNETES_VOLUME_CLAIM_PREFIX =
"heron.kubernetes.volumes.persistentVolumeClaim.";

private KubernetesContext() {
}

Expand Down Expand Up @@ -211,6 +222,80 @@ public static Map<String, String> getPodSecretKeyRefs(Config config) {
return getConfigItemsByPrefix(config, KUBERNETES_POD_SECRET_KEY_REF_PREFIX);
}

public static boolean getPersistentVolumeClaimDisabled(Config config) {
final String disabled = config.getStringValue(KUBERNETES_PERSISTENT_VOLUME_CLAIMS_CLI_DISABLED);
return "true".equalsIgnoreCase(disabled);
}

/**
* Collects parameters form the <code>CLI</code> and generates a mapping between <code>Volumes</code>
* and their configuration <code>key-value</code> pairs.
* @param config Contains the configuration options collected from the <code>CLI</code>.
* @return A mapping between <code>Volumes</code> and their configuration <code>key-value</code> pairs.
* Will return an empty list if there are no Volume Claim Templates to be generated.
*/
public static Map<String, Map<KubernetesConstants.VolumeClaimTemplateConfigKeys, String>>
getVolumeClaimTemplates(Config config) {
final Logger LOG = Logger.getLogger(V1Controller.class.getName());

final Set<String> completeConfigParam = getConfigKeys(config, KUBERNETES_VOLUME_CLAIM_PREFIX);
final int prefixLength = KUBERNETES_VOLUME_CLAIM_PREFIX.length();
final int volumeNameIdx = 0;
final int optionIdx = 1;
final Matcher matcher = KubernetesConstants.VALID_LOWERCASE_RFC_1123_REGEX.matcher("");

final Map<String, Map<KubernetesConstants.VolumeClaimTemplateConfigKeys, String>> volumes
= new HashMap<>();

try {
for (String param : completeConfigParam) {
final String[] tokens = param.substring(prefixLength).split("\\.");
final String volumeName = tokens[volumeNameIdx];
final KubernetesConstants.VolumeClaimTemplateConfigKeys key =
KubernetesConstants.VolumeClaimTemplateConfigKeys.valueOf(tokens[optionIdx]);
final String value = config.getStringValue(param);

Map<KubernetesConstants.VolumeClaimTemplateConfigKeys, String> volume =
volumes.get(volumeName);
if (volume == null) {
// Validate new Volume Names.
if (!matcher.reset(volumeName).matches()) {
throw new TopologySubmissionException(
String.format("Volume name `%s` does not match lowercase RFC-1123 pattern",
volumeName));
}
volume = new HashMap<>();
volumes.put(volumeName, volume);
}

/* Validate Claim and Storage Class names.
[1] `claimNameNotOnDemand`: checks for a `claimName` which is not `OnDemand`.
[2] `storageClassName`: Check if it is the provided `option`.
Conditions [1] OR [2] are True, then...
[3] Check for a valid lowercase RFC-1123 pattern.
*/
boolean claimNameNotOnDemand =
KubernetesConstants.VolumeClaimTemplateConfigKeys.claimName.equals(key)
&& !KubernetesConstants.LABEL_ON_DEMAND.equalsIgnoreCase(value);
if ((claimNameNotOnDemand // [1]
||
KubernetesConstants.VolumeClaimTemplateConfigKeys.storageClassName.equals(key)) // [2]
&& !matcher.reset(value).matches()) { // [3]
throw new TopologySubmissionException(
String.format("Option `%s` value `%s` does not match lowercase RFC-1123 pattern",
key, value));
}

volume.put(key, value);
}
} catch (IndexOutOfBoundsException | IllegalArgumentException e) {
final String message = "Invalid Persistent Volume Claim CLI parameter provided";
LOG.log(Level.CONFIG, message);
throw new TopologySubmissionException(message);
}
return volumes;
}

static Set<String> getConfigKeys(Config config, String keyPrefix) {
Set<String> annotations = new HashSet<>();
for (String s : config.getKeySet()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,4 +122,27 @@ protected List<T> mergeListsDedupe(List<T> primaryList, List<T> secondaryList,
}
}
}

/**
* Generic testing class for test runners in Kubernetes Scheduler.
* @param <T1> Test input object type.
* @param <T2> Expected test object type.
*/
static class TestTuple<T1, T2> {
public final String description;
public final T1 input;
public final T2 expected;

/**
* Configure the test object.
* @param description Description of the test to be run.
* @param input Input test case.
* @param expected Expected output form test.
*/
TestTuple(String description, T1 input, T2 expected) {
this.description = description;
this.expected = expected;
this.input = input;
}
}
}