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

RFC: dynamic resource allocation prototype #1

Closed
wants to merge 58 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
e389b27
Validate dry-run and force flags can not be used same time in replace
ardaguclu Jun 1, 2022
b722056
add unit test
zhoumingcheng Jun 21, 2022
466c4d2
pkg/kubelet: skip long test on short mode
rata Jun 24, 2022
a4f966a
Graduate SeccompDefault feature to beta
saschagrunert Jun 27, 2022
7a95525
Create ControllerRevision lifecycle e2e test
heyste May 9, 2022
93701ce
cleanup: Removes duplicate utils code
claudiubelu Jun 29, 2022
14708f2
agnhost: Check symlink target's permissions for Windows
claudiubelu Aug 27, 2021
61ebfdb
Add cases for when --timeout=0 and tests
mpuckett159 Jul 1, 2022
d3092cd
scheduler: do not update sched.nextStartNodeIndex when evaluate nomin…
SataQiu Jul 4, 2022
88c6deb
Update `godoc.org` to `pkg.go.dev ` in kubeadm
Jul 7, 2022
8aeee52
kubeadm: De-dup the confirmation on the interactive cmds
chendave Jul 6, 2022
3581e30
build: update to klog v2.70.1
pohly Jul 7, 2022
e41f2a1
Change error messages
ardaguclu Jul 7, 2022
8d2c737
Merge pull request #110997 from mengjiao-liu/update-godoc-link
k8s-ci-robot Jul 7, 2022
9d68640
Merge pull request #110923 from mpuckett159/fix/add-wait-timers
k8s-ci-robot Jul 7, 2022
6adee9d
Merge pull request #110947 from SataQiu/scheduler-20220704
k8s-ci-robot Jul 7, 2022
d2a94fe
Remove SIG Scheduling approvers from reviewers
alculquicondor Jul 7, 2022
e9b96b1
Merge pull request #111004 from alculquicondor/patch-4
k8s-ci-robot Jul 7, 2022
34b9f0d
Merge pull request #110998 from chendave/de_dup_kubeadm
k8s-ci-robot Jul 7, 2022
f218f7b
Computation of the StorageVersionHash use overridden storage versions…
249043822 Jul 1, 2022
6d5cccf
Merge pull request #110122 from ii/create-controller-revision-test
k8s-ci-robot Jul 8, 2022
2b657a0
Merge pull request #110805 from saschagrunert/seccomp-default-beta
k8s-ci-robot Jul 8, 2022
8e62fd2
Merge pull request #111001 from pohly/klog-update
k8s-ci-robot Jul 8, 2022
6732550
Merge pull request #110877 from claudiubelu/agnhost-windows-file-perm…
k8s-ci-robot Jul 8, 2022
9509211
Merge pull request #110904 from 249043822/storageversion
k8s-ci-robot Jul 8, 2022
857458c
update ginkgo from v1 to v2 and gomega to 1.19.0
chendave Mar 29, 2022
05c0f4a
Define the const of `GINKGO_PANIC` directly
chendave Mar 29, 2022
2eb8e9e
`ginkgo.It` doesn't have a `timeout` arg anymore
chendave Mar 29, 2022
ece0bb3
Adapt to new type of `GinkgoWriter`
chendave Mar 29, 2022
375b2a5
Build `Ginkgo` binary
chendave Mar 29, 2022
f792256
e2e: adapt output tests to Ginkgo v2 and Gomega 1.19
chendave Mar 30, 2022
b57bade
Switch to use `dry-run` option to generate test spec
chendave Apr 15, 2022
dd58016
Implement `DetailsReporter` report within `ReportAfterSuite`
chendave Apr 15, 2022
20498fd
Generate conformance test spec with `offset` decorator
chendave Apr 15, 2022
2084f3c
Drop all stacktrace related validtion
chendave Apr 15, 2022
2f3028c
Define the `timeout` to `24h` for Ginkgo V2
chendave Apr 20, 2022
fd4b5b6
Stop using the deprecated method `CurrentGinkgoTestDescription`
chendave Apr 24, 2022
46a3954
Migrate `ProgressReporter` to `Ginkgo` V2
chendave May 2, 2022
5ac8105
Set Ginkgo config by the method of `GinkgoConfiguration()`
chendave May 2, 2022
82ac6be
Custom reporter of Junit report is no longer needed
chendave May 2, 2022
3833695
Redirect `klog` out to `GinkgoWriter`
chendave Apr 29, 2022
05c513d
`ginkgo.By` can only be used inside a runnable node
chendave May 12, 2022
f7427d0
build: add ginkgo aliases for WHAT
pohly Jun 8, 2022
50d1b6c
Add Ginkgo v1 to the list of unwanted dependencies
chendave Jul 4, 2022
ebcc583
Merge pull request #110326 from ardaguclu/add-validation-replace
k8s-ci-robot Jul 8, 2022
c05d185
Merge pull request #110683 from zhoumingcheng/master-v2
k8s-ci-robot Jul 8, 2022
0dc32b1
Merge pull request #110774 from kinvolk/rata/kubelet-short-tests
k8s-ci-robot Jul 8, 2022
80b2848
Merge pull request #110860 from claudiubelu/utils-cleanup
k8s-ci-robot Jul 8, 2022
4569e64
Merge pull request #109111 from chendave/ginkgo_upstream
k8s-ci-robot Jul 8, 2022
eccf7c6
kube features: add DynamicResourceAllocation
pohly Mar 22, 2022
4a5f531
initial dynamic resource allocation API types
pohly Feb 26, 2022
997a22d
api: generated files for dynamic resource allocation
pohly Jul 4, 2022
7cd8d96
dynamic resource allocation: implement printers
pohly Mar 1, 2022
a331efc
cdi: example driver
pohly Mar 18, 2022
bc8c200
component-helpers: add ResourceClaim support code
pohly Mar 22, 2022
de44076
ResourceClaim controller: clone from pkg/controller/volume/ephemeral
pohly Mar 22, 2022
32f6d7a
kube-controller-manager: add ResourceClaim controller
pohly Mar 22, 2022
3d85228
scheduler: add dynamic resource allocation plugin
pohly Apr 12, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
kube-controller-manager: add ResourceClaim controller
The controller uses the exact same logic as the generic ephemeral inline volume
controller, just for inline ResourceClaimTemplate -> ResourceClaim.
  • Loading branch information
pohly committed Aug 1, 2022
commit 32f6d7afaab6ebaf079d342089b3516e8f8ea491
2 changes: 2 additions & 0 deletions api/api-rules/violation_exceptions.list
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,7 @@ API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,K
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,PodGCController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ReplicaSetController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ReplicationController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ResourceClaimController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ResourceQuotaController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,SAController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ServiceController
Expand Down Expand Up @@ -573,6 +574,7 @@ API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,P
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PodGCControllerConfiguration,TerminatedPodGCThreshold
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ReplicaSetControllerConfiguration,ConcurrentRSSyncs
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ReplicationControllerConfiguration,ConcurrentRCSyncs
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ResourceClaimControllerConfiguration,ConcurrentResourceClaimSyncs
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ResourceQuotaControllerConfiguration,ConcurrentResourceQuotaSyncs
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ResourceQuotaControllerConfiguration,ResourceQuotaSyncPeriod
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,SAControllerConfiguration,ConcurrentSATokenSyncs
Expand Down
3 changes: 3 additions & 0 deletions cmd/kube-controller-manager/app/controllermanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,9 @@ func NewControllerInitializers(loopMode ControllerLoopMode) map[string]InitFunc
utilfeature.DefaultFeatureGate.Enabled(genericfeatures.StorageVersionAPI) {
controllers["storage-version-gc"] = startStorageVersionGCController
}
if utilfeature.DefaultFeatureGate.Enabled(kubefeatures.DynamicResourceAllocation) {
controllers["resource-claim-controller"] = startResourceClaimController
}

return controllers
}
Expand Down
13 changes: 13 additions & 0 deletions cmd/kube-controller-manager/app/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ import (
lifecyclecontroller "k8s.io/kubernetes/pkg/controller/nodelifecycle"
"k8s.io/kubernetes/pkg/controller/podgc"
replicationcontroller "k8s.io/kubernetes/pkg/controller/replication"
"k8s.io/kubernetes/pkg/controller/resourceclaim"
resourcequotacontroller "k8s.io/kubernetes/pkg/controller/resourcequota"
serviceaccountcontroller "k8s.io/kubernetes/pkg/controller/serviceaccount"
"k8s.io/kubernetes/pkg/controller/storageversiongc"
Expand Down Expand Up @@ -377,6 +378,18 @@ func startEphemeralVolumeController(ctx context.Context, controllerContext Contr
return nil, true, nil
}

func startResourceClaimController(ctx context.Context, controllerContext ControllerContext) (controller.Interface, bool, error) {
ephemeralController, err := resourceclaim.NewController(
controllerContext.ClientBuilder.ClientOrDie("resource-claim-controller"),
controllerContext.InformerFactory.Core().V1().Pods(),
controllerContext.InformerFactory.Core().V1().ResourceClaims())
if err != nil {
return nil, true, fmt.Errorf("failed to start ephemeral volume controller: %v", err)
}
go ephemeralController.Run(ctx, int(controllerContext.ComponentConfig.ResourceClaimController.ConcurrentResourceClaimSyncs))
return nil, true, nil
}

func startEndpointController(ctx context.Context, controllerCtx ControllerContext) (controller.Interface, bool, error) {
go endpointcontroller.NewEndpointController(
controllerCtx.InformerFactory.Core().V1().Pods(),
Expand Down
9 changes: 9 additions & 0 deletions cmd/kube-controller-manager/app/options/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ type KubeControllerManagerOptions struct {
EndpointSliceController *EndpointSliceControllerOptions
EndpointSliceMirroringController *EndpointSliceMirroringControllerOptions
EphemeralVolumeController *EphemeralVolumeControllerOptions
ResourceClaimController *ResourceClaimControllerOptions
GarbageCollectorController *GarbageCollectorControllerOptions
HPAController *HPAControllerOptions
JobController *JobControllerOptions
Expand Down Expand Up @@ -140,6 +141,9 @@ func NewKubeControllerManagerOptions() (*KubeControllerManagerOptions, error) {
EphemeralVolumeController: &EphemeralVolumeControllerOptions{
&componentConfig.EphemeralVolumeController,
},
ResourceClaimController: &ResourceClaimControllerOptions{
&componentConfig.ResourceClaimController,
},
GarbageCollectorController: &GarbageCollectorControllerOptions{
&componentConfig.GarbageCollectorController,
},
Expand Down Expand Up @@ -242,6 +246,7 @@ func (s *KubeControllerManagerOptions) Flags(allControllers []string, disabledBy
s.EndpointSliceController.AddFlags(fss.FlagSet("endpointslice controller"))
s.EndpointSliceMirroringController.AddFlags(fss.FlagSet("endpointslicemirroring controller"))
s.EphemeralVolumeController.AddFlags(fss.FlagSet("ephemeralvolume controller"))
s.ResourceClaimController.AddFlags(fss.FlagSet("resourceclaim controller"))
s.GarbageCollectorController.AddFlags(fss.FlagSet("garbagecollector controller"))
s.HPAController.AddFlags(fss.FlagSet("horizontalpodautoscaling controller"))
s.JobController.AddFlags(fss.FlagSet("job controller"))
Expand Down Expand Up @@ -305,6 +310,9 @@ func (s *KubeControllerManagerOptions) ApplyTo(c *kubecontrollerconfig.Config) e
if err := s.EphemeralVolumeController.ApplyTo(&c.ComponentConfig.EphemeralVolumeController); err != nil {
return err
}
if err := s.ResourceClaimController.ApplyTo(&c.ComponentConfig.ResourceClaimController); err != nil {
return err
}
if err := s.GarbageCollectorController.ApplyTo(&c.ComponentConfig.GarbageCollectorController); err != nil {
return err
}
Expand Down Expand Up @@ -380,6 +388,7 @@ func (s *KubeControllerManagerOptions) Validate(allControllers []string, disable
errs = append(errs, s.EndpointSliceController.Validate()...)
errs = append(errs, s.EndpointSliceMirroringController.Validate()...)
errs = append(errs, s.EphemeralVolumeController.Validate()...)
errs = append(errs, s.ResourceClaimController.Validate()...)
errs = append(errs, s.GarbageCollectorController.Validate()...)
errs = append(errs, s.HPAController.Validate()...)
errs = append(errs, s.JobController.Validate()...)
Expand Down
10 changes: 10 additions & 0 deletions cmd/kube-controller-manager/app/options/options_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ import (
podgcconfig "k8s.io/kubernetes/pkg/controller/podgc/config"
replicasetconfig "k8s.io/kubernetes/pkg/controller/replicaset/config"
replicationconfig "k8s.io/kubernetes/pkg/controller/replication/config"
resourceclaimconfig "k8s.io/kubernetes/pkg/controller/resourceclaim/config"
resourcequotaconfig "k8s.io/kubernetes/pkg/controller/resourcequota/config"
serviceaccountconfig "k8s.io/kubernetes/pkg/controller/serviceaccount/config"
statefulsetconfig "k8s.io/kubernetes/pkg/controller/statefulset/config"
Expand Down Expand Up @@ -85,6 +86,7 @@ var args = []string{
"--concurrent-statefulset-syncs=15",
"--concurrent-endpoint-syncs=10",
"--concurrent-ephemeralvolume-syncs=10",
"--concurrent-resource-claim-syncs=10",
"--concurrent-service-endpoint-syncs=10",
"--concurrent-gc-syncs=30",
"--concurrent-namespace-syncs=20",
Expand Down Expand Up @@ -290,6 +292,11 @@ func TestAddFlags(t *testing.T) {
ConcurrentEphemeralVolumeSyncs: 10,
},
},
ResourceClaimController: &ResourceClaimControllerOptions{
&resourceclaimconfig.ResourceClaimControllerConfiguration{
ConcurrentResourceClaimSyncs: 10,
},
},
GarbageCollectorController: &GarbageCollectorControllerOptions{
&garbagecollectorconfig.GarbageCollectorControllerConfiguration{
ConcurrentGCSyncs: 30,
Expand Down Expand Up @@ -546,6 +553,9 @@ func TestApplyTo(t *testing.T) {
EphemeralVolumeController: ephemeralvolumeconfig.EphemeralVolumeControllerConfiguration{
ConcurrentEphemeralVolumeSyncs: 10,
},
ResourceClaimController: resourceclaimconfig.ResourceClaimControllerConfiguration{
ConcurrentResourceClaimSyncs: 10,
},
GarbageCollectorController: garbagecollectorconfig.GarbageCollectorControllerConfiguration{
ConcurrentGCSyncs: 30,
GCIgnoredResources: []garbagecollectorconfig.GroupResource{
Expand Down
63 changes: 63 additions & 0 deletions cmd/kube-controller-manager/app/options/resourceclaimcontroller.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/*
Copyright 2022 The Kubernetes Authors.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package options

import (
"fmt"

"github.com/spf13/pflag"

resourceclaimconfig "k8s.io/kubernetes/pkg/controller/resourceclaim/config"
)

// ResourceClaimControllerOptions holds the ResourceClaimController options.
type ResourceClaimControllerOptions struct {
*resourceclaimconfig.ResourceClaimControllerConfiguration
}

// AddFlags adds flags related to ResourceClaimController for controller manager to the specified FlagSet.
func (o *ResourceClaimControllerOptions) AddFlags(fs *pflag.FlagSet) {
if o == nil {
return
}

fs.Int32Var(&o.ConcurrentResourceClaimSyncs, "concurrent-resource-claim-syncs", o.ConcurrentResourceClaimSyncs, "The number of ResourceClaim syncing operations that will be done concurrently. Larger number = faster ResourceClaim updating, but more CPU (and network) load")
}

// ApplyTo fills up ResourceClaimController config with options.
func (o *ResourceClaimControllerOptions) ApplyTo(cfg *resourceclaimconfig.ResourceClaimControllerConfiguration) error {
if o == nil {
return nil
}

cfg.ConcurrentResourceClaimSyncs = o.ConcurrentResourceClaimSyncs

return nil
}

// Validate checks validation of ResourceClaimControllerOptions.
func (o *ResourceClaimControllerOptions) Validate() []error {
if o == nil {
return nil
}

errs := []error{}
if o.ConcurrentResourceClaimSyncs < 1 {
errs = append(errs, fmt.Errorf("concurrent-resource-claim-syncs must be greater than 0, but got %d", o.ConcurrentResourceClaimSyncs))
}
return errs
}
4 changes: 4 additions & 0 deletions pkg/controller/apis/config/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import (
podgcconfig "k8s.io/kubernetes/pkg/controller/podgc/config"
replicasetconfig "k8s.io/kubernetes/pkg/controller/replicaset/config"
replicationconfig "k8s.io/kubernetes/pkg/controller/replication/config"
resourceclaimconfig "k8s.io/kubernetes/pkg/controller/resourceclaim/config"
resourcequotaconfig "k8s.io/kubernetes/pkg/controller/resourcequota/config"
serviceaccountconfig "k8s.io/kubernetes/pkg/controller/serviceaccount/config"
statefulsetconfig "k8s.io/kubernetes/pkg/controller/statefulset/config"
Expand Down Expand Up @@ -130,6 +131,9 @@ type KubeControllerManagerConfiguration struct {
// TTLAfterFinishedControllerConfiguration holds configuration for
// TTLAfterFinishedController related features.
TTLAfterFinishedController ttlafterfinishedconfig.TTLAfterFinishedControllerConfiguration
// ResourceClaimControllerConfiguration holds configuration for ResourceClaimController
// related features.
ResourceClaimController resourceclaimconfig.ResourceClaimControllerConfiguration
}

// DeprecatedControllerConfiguration contains elements be deprecated.
Expand Down
3 changes: 3 additions & 0 deletions pkg/controller/apis/config/v1alpha1/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import (
podgcconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/podgc/config/v1alpha1"
replicasetconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/replicaset/config/v1alpha1"
replicationconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/replication/config/v1alpha1"
resourceclaimconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/resourceclaim/config/v1alpha1"
resourcequotaconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/resourcequota/config/v1alpha1"
serviceaccountconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/serviceaccount/config/v1alpha1"
statefulsetconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/statefulset/config/v1alpha1"
Expand Down Expand Up @@ -110,4 +111,6 @@ func SetDefaults_KubeControllerManagerConfiguration(obj *kubectrlmgrconfigv1alph
ttlafterfinishedconfigv1alpha1.RecommendedDefaultTTLAfterFinishedControllerConfiguration(&obj.TTLAfterFinishedController)
// Use the default RecommendedDefaultPersistentVolumeBinderControllerConfiguration options
persistentvolumeconfigv1alpha1.RecommendedDefaultPersistentVolumeBinderControllerConfiguration(&obj.PersistentVolumeBinderController)
// Use the default RecommendedDefaultResourceClaimControllerConfiguration options
resourceclaimconfigv1alpha1.RecommendedDefaultResourceClaimControllerConfiguration(&obj.ResourceClaimController)
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pkg/controller/apis/config/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 7 additions & 2 deletions pkg/controller/resourceclaim/OWNERS
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# See the OWNERS docs at https://go.k8s.io/owners

approvers:
- saad-ali
- jsafrane
- klueska
- pohly
reviewers:
- klueska
- pohly
- bart0sh
labels:
- sig/node
2 changes: 1 addition & 1 deletion pkg/controller/resourceclaim/config/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ limitations under the License.

// +k8s:deepcopy-gen=package

package config // import "k8s.io/kubernetes/pkg/controller/volume/ephemeral/config"
package config // import "k8s.io/kubernetes/pkg/controller/resourceclaim/config"
10 changes: 5 additions & 5 deletions pkg/controller/resourceclaim/config/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ limitations under the License.

package config

// EphemeralVolumeControllerConfiguration contains elements describing EphemeralVolumeController.
type EphemeralVolumeControllerConfiguration struct {
// ConcurrentEphemeralVolumeSyncs is the number of ephemeral volume syncing operations
// that will be done concurrently. Larger number = faster ephemeral volume updating,
// ResourceClaimControllerConfiguration contains elements describing ResourceClaimController.
type ResourceClaimControllerConfiguration struct {
// ConcurrentResourceClaimSyncs is the number of ResourceClaim syncing operations
// that will be done concurrently. Larger number = faster ResourceClaim updating,
// but more CPU (and network) load.
ConcurrentEphemeralVolumeSyncs int32
ConcurrentResourceClaimSyncs int32
}
16 changes: 8 additions & 8 deletions pkg/controller/resourceclaim/config/v1alpha1/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,22 @@ package v1alpha1
import (
"k8s.io/apimachinery/pkg/conversion"
"k8s.io/kube-controller-manager/config/v1alpha1"
"k8s.io/kubernetes/pkg/controller/volume/ephemeral/config"
"k8s.io/kubernetes/pkg/controller/resourceclaim/config"
)

// Important! The public back-and-forth conversion functions for the types in this package
// with EphemeralVolumeControllerConfiguration types need to be manually exposed like this in order for
// with ResourceClaimControllerConfiguration types need to be manually exposed like this in order for
// other packages that reference this package to be able to call these conversion functions
// in an autogenerated manner.
// TODO: Fix the bug in conversion-gen so it automatically discovers these Convert_* functions
// in autogenerated code as well.

// Convert_v1alpha1_EphemeralVolumeControllerConfiguration_To_config_EphemeralVolumeControllerConfiguration is an autogenerated conversion function.
func Convert_v1alpha1_EphemeralVolumeControllerConfiguration_To_config_EphemeralVolumeControllerConfiguration(in *v1alpha1.EphemeralVolumeControllerConfiguration, out *config.EphemeralVolumeControllerConfiguration, s conversion.Scope) error {
return autoConvert_v1alpha1_EphemeralVolumeControllerConfiguration_To_config_EphemeralVolumeControllerConfiguration(in, out, s)
// Convert_v1alpha1_ResourceClaimControllerConfiguration_To_config_ResourceClaimControllerConfiguration is an autogenerated conversion function.
func Convert_v1alpha1_ResourceClaimControllerConfiguration_To_config_ResourceClaimControllerConfiguration(in *v1alpha1.ResourceClaimControllerConfiguration, out *config.ResourceClaimControllerConfiguration, s conversion.Scope) error {
return autoConvert_v1alpha1_ResourceClaimControllerConfiguration_To_config_ResourceClaimControllerConfiguration(in, out, s)
}

// Convert_config_EphemeralVolumeControllerConfiguration_To_v1alpha1_EphemeralVolumeControllerConfiguration is an autogenerated conversion function.
func Convert_config_EphemeralVolumeControllerConfiguration_To_v1alpha1_EphemeralVolumeControllerConfiguration(in *config.EphemeralVolumeControllerConfiguration, out *v1alpha1.EphemeralVolumeControllerConfiguration, s conversion.Scope) error {
return autoConvert_config_EphemeralVolumeControllerConfiguration_To_v1alpha1_EphemeralVolumeControllerConfiguration(in, out, s)
// Convert_config_ResourceClaimControllerConfiguration_To_v1alpha1_ResourceClaimControllerConfiguration is an autogenerated conversion function.
func Convert_config_ResourceClaimControllerConfiguration_To_v1alpha1_ResourceClaimControllerConfiguration(in *config.ResourceClaimControllerConfiguration, out *v1alpha1.ResourceClaimControllerConfiguration, s conversion.Scope) error {
return autoConvert_config_ResourceClaimControllerConfiguration_To_v1alpha1_ResourceClaimControllerConfiguration(in, out, s)
}
Loading