Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
c96c0495
Commit
c96c0495
authored
Feb 05, 2018
by
Jan Safranek
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pass pod informer to PV controller
parent
97b28552
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
23 additions
and
7 deletions
+23
-7
core.go
cmd/kube-controller-manager/app/core.go
+1
-0
binder_test.go
pkg/controller/volume/persistentvolume/binder_test.go
+2
-2
delete_test.go
pkg/controller/volume/persistentvolume/delete_test.go
+1
-1
framework_test.go
pkg/controller/volume/persistentvolume/framework_test.go
+9
-1
provision_test.go
pkg/controller/volume/persistentvolume/provision_test.go
+1
-1
pv_controller.go
pkg/controller/volume/persistentvolume/pv_controller.go
+2
-0
pv_controller_base.go
pkg/controller/volume/persistentvolume/pv_controller_base.go
+4
-1
recycle_test.go
pkg/controller/volume/persistentvolume/recycle_test.go
+1
-1
local-pv-neg-affinity_test.go
test/integration/scheduler/local-pv-neg-affinity_test.go
+1
-0
persistent_volumes_test.go
test/integration/volume/persistent_volumes_test.go
+1
-0
No files found.
cmd/kube-controller-manager/app/core.go
View file @
c96c0495
...
...
@@ -175,6 +175,7 @@ func startPersistentVolumeBinderController(ctx ControllerContext) (bool, error)
VolumeInformer
:
ctx
.
InformerFactory
.
Core
()
.
V1
()
.
PersistentVolumes
(),
ClaimInformer
:
ctx
.
InformerFactory
.
Core
()
.
V1
()
.
PersistentVolumeClaims
(),
ClassInformer
:
ctx
.
InformerFactory
.
Storage
()
.
V1
()
.
StorageClasses
(),
PodInformer
:
ctx
.
InformerFactory
.
Core
()
.
V1
()
.
Pods
(),
EnableDynamicProvisioning
:
ctx
.
Options
.
VolumeConfiguration
.
EnableDynamicProvisioning
,
}
volumeController
,
volumeControllerErr
:=
persistentvolumecontroller
.
NewController
(
params
)
...
...
pkg/controller/volume/persistentvolume/binder_test.go
View file @
c96c0495
...
...
@@ -624,7 +624,7 @@ func TestSync(t *testing.T) {
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
classWait
},
VolumeBindingMode
:
&
modeWait
,
},
})
}
,
[]
*
v1
.
Pod
{}
)
}
func
TestSyncAlphaBlockVolume
(
t
*
testing
.
T
)
{
...
...
@@ -776,7 +776,7 @@ func TestSyncAlphaBlockVolume(t *testing.T) {
}
defer
utilfeature
.
DefaultFeatureGate
.
Set
(
"BlockVolume=false"
)
runSyncTests
(
t
,
tests
,
[]
*
storage
.
StorageClass
{})
runSyncTests
(
t
,
tests
,
[]
*
storage
.
StorageClass
{}
,
[]
*
v1
.
Pod
{}
)
}
// Test multiple calls to syncClaim/syncVolume and periodic sync of all
...
...
pkg/controller/volume/persistentvolume/delete_test.go
View file @
c96c0495
...
...
@@ -192,7 +192,7 @@ func TestDeleteSync(t *testing.T) {
},
},
}
runSyncTests
(
t
,
tests
,
[]
*
storage
.
StorageClass
{})
runSyncTests
(
t
,
tests
,
[]
*
storage
.
StorageClass
{}
,
[]
*
v1
.
Pod
{}
)
}
// Test multiple calls to syncClaim/syncVolume and periodic sync of all
...
...
pkg/controller/volume/persistentvolume/framework_test.go
View file @
c96c0495
...
...
@@ -41,6 +41,7 @@ import (
"k8s.io/client-go/informers"
clientset
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes/fake"
corelisters
"k8s.io/client-go/listers/core/v1"
storagelisters
"k8s.io/client-go/listers/storage/v1"
core
"k8s.io/client-go/testing"
"k8s.io/client-go/tools/cache"
...
...
@@ -609,6 +610,7 @@ func newTestController(kubeClient clientset.Interface, informerFactory informers
VolumeInformer
:
informerFactory
.
Core
()
.
V1
()
.
PersistentVolumes
(),
ClaimInformer
:
informerFactory
.
Core
()
.
V1
()
.
PersistentVolumeClaims
(),
ClassInformer
:
informerFactory
.
Storage
()
.
V1
()
.
StorageClasses
(),
PodInformer
:
informerFactory
.
Core
()
.
V1
()
.
Pods
(),
EventRecorder
:
record
.
NewFakeRecorder
(
1000
),
EnableDynamicProvisioning
:
enableDynamicProvisioning
,
}
...
...
@@ -939,7 +941,7 @@ func evaluateTestResults(ctrl *PersistentVolumeController, reactor *volumeReacto
// 2. Call the tested function (syncClaim/syncVolume) via
// controllerTest.testCall *once*.
// 3. Compare resulting volumes and claims with expected volumes and claims.
func
runSyncTests
(
t
*
testing
.
T
,
tests
[]
controllerTest
,
storageClasses
[]
*
storage
.
StorageClass
)
{
func
runSyncTests
(
t
*
testing
.
T
,
tests
[]
controllerTest
,
storageClasses
[]
*
storage
.
StorageClass
,
pods
[]
*
v1
.
Pod
)
{
for
_
,
test
:=
range
tests
{
glog
.
V
(
4
)
.
Infof
(
"starting test %q"
,
test
.
name
)
...
...
@@ -966,6 +968,12 @@ func runSyncTests(t *testing.T, tests []controllerTest, storageClasses []*storag
}
ctrl
.
classLister
=
storagelisters
.
NewStorageClassLister
(
indexer
)
podIndexer
:=
cache
.
NewIndexer
(
cache
.
MetaNamespaceKeyFunc
,
cache
.
Indexers
{})
for
_
,
pod
:=
range
pods
{
podIndexer
.
Add
(
pod
)
}
ctrl
.
podLister
=
corelisters
.
NewPodLister
(
podIndexer
)
// Run the tested functions
err
=
test
.
test
(
ctrl
,
reactor
,
test
)
if
err
!=
nil
{
...
...
pkg/controller/volume/persistentvolume/provision_test.go
View file @
c96c0495
...
...
@@ -416,7 +416,7 @@ func TestProvisionSync(t *testing.T) {
noerrors
,
wrapTestWithProvisionCalls
([]
provisionCall
{},
testSyncClaim
),
},
}
runSyncTests
(
t
,
tests
,
storageClasses
)
runSyncTests
(
t
,
tests
,
storageClasses
,
[]
*
v1
.
Pod
{}
)
}
// Test multiple calls to syncClaim/syncVolume and periodic sync of all
...
...
pkg/controller/volume/persistentvolume/pv_controller.go
View file @
c96c0495
...
...
@@ -161,6 +161,8 @@ type PersistentVolumeController struct {
claimListerSynced
cache
.
InformerSynced
classLister
storagelisters
.
StorageClassLister
classListerSynced
cache
.
InformerSynced
podLister
corelisters
.
PodLister
podListerSynced
cache
.
InformerSynced
kubeClient
clientset
.
Interface
eventRecorder
record
.
EventRecorder
...
...
pkg/controller/volume/persistentvolume/pv_controller_base.go
View file @
c96c0495
...
...
@@ -61,6 +61,7 @@ type ControllerParameters struct {
VolumeInformer
coreinformers
.
PersistentVolumeInformer
ClaimInformer
coreinformers
.
PersistentVolumeClaimInformer
ClassInformer
storageinformers
.
StorageClassInformer
PodInformer
coreinformers
.
PodInformer
EventRecorder
record
.
EventRecorder
EnableDynamicProvisioning
bool
}
...
...
@@ -118,6 +119,8 @@ func NewController(p ControllerParameters) (*PersistentVolumeController, error)
controller
.
classLister
=
p
.
ClassInformer
.
Lister
()
controller
.
classListerSynced
=
p
.
ClassInformer
.
Informer
()
.
HasSynced
controller
.
podLister
=
p
.
PodInformer
.
Lister
()
controller
.
podListerSynced
=
p
.
PodInformer
.
Informer
()
.
HasSynced
return
controller
,
nil
}
...
...
@@ -264,7 +267,7 @@ func (ctrl *PersistentVolumeController) Run(stopCh <-chan struct{}) {
glog
.
Infof
(
"Starting persistent volume controller"
)
defer
glog
.
Infof
(
"Shutting down peristent volume controller"
)
if
!
controller
.
WaitForCacheSync
(
"persistent volume"
,
stopCh
,
ctrl
.
volumeListerSynced
,
ctrl
.
claimListerSynced
,
ctrl
.
classListerSynced
)
{
if
!
controller
.
WaitForCacheSync
(
"persistent volume"
,
stopCh
,
ctrl
.
volumeListerSynced
,
ctrl
.
claimListerSynced
,
ctrl
.
classListerSynced
,
ctrl
.
podListerSynced
)
{
return
}
...
...
pkg/controller/volume/persistentvolume/recycle_test.go
View file @
c96c0495
...
...
@@ -161,7 +161,7 @@ func TestRecycleSync(t *testing.T) {
[]
string
{
"Warning VolumeUnknownReclaimPolicy"
},
noerrors
,
testSyncVolume
,
},
}
runSyncTests
(
t
,
tests
,
[]
*
storage
.
StorageClass
{})
runSyncTests
(
t
,
tests
,
[]
*
storage
.
StorageClass
{}
,
[]
*
v1
.
Pod
{}
)
}
// Test multiple calls to syncClaim/syncVolume and periodic sync of all
...
...
test/integration/scheduler/local-pv-neg-affinity_test.go
View file @
c96c0495
...
...
@@ -136,6 +136,7 @@ func setupNodes(t *testing.T, nsName string, numberOfNodes int) *testConfig {
VolumeInformer
:
informers
.
Core
()
.
V1
()
.
PersistentVolumes
(),
ClaimInformer
:
informers
.
Core
()
.
V1
()
.
PersistentVolumeClaims
(),
ClassInformer
:
informers
.
Storage
()
.
V1
()
.
StorageClasses
(),
PodInformer
:
informers
.
Core
()
.
V1
()
.
Pods
(),
EventRecorder
:
nil
,
// TODO: add one so we can test PV events
EnableDynamicProvisioning
:
true
,
}
...
...
test/integration/volume/persistent_volumes_test.go
View file @
c96c0495
...
...
@@ -1135,6 +1135,7 @@ func createClients(ns *v1.Namespace, t *testing.T, s *httptest.Server, syncPerio
VolumeInformer
:
informers
.
Core
()
.
V1
()
.
PersistentVolumes
(),
ClaimInformer
:
informers
.
Core
()
.
V1
()
.
PersistentVolumeClaims
(),
ClassInformer
:
informers
.
Storage
()
.
V1
()
.
StorageClasses
(),
PodInformer
:
informers
.
Core
()
.
V1
()
.
Pods
(),
EnableDynamicProvisioning
:
true
,
})
if
err
!=
nil
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment