mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-10-18 21:29:50 +00:00
ff3e84ad67
updating kubernetes to 1.28.0 in the main repo. Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
104 lines
4.2 KiB
Go
104 lines
4.2 KiB
Go
/*
|
|
Copyright 2018 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 config
|
|
|
|
import (
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
nodeconfig "k8s.io/cloud-provider/controllers/node/config"
|
|
serviceconfig "k8s.io/cloud-provider/controllers/service/config"
|
|
cmconfig "k8s.io/controller-manager/config"
|
|
)
|
|
|
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
|
|
// CloudControllerManagerConfiguration contains elements describing cloud-controller manager.
|
|
type CloudControllerManagerConfiguration struct {
|
|
metav1.TypeMeta
|
|
|
|
// Generic holds configuration for a generic controller-manager
|
|
Generic cmconfig.GenericControllerManagerConfiguration
|
|
// KubeCloudSharedConfiguration holds configuration for shared related features
|
|
// both in cloud controller manager and kube-controller manager.
|
|
KubeCloudShared KubeCloudSharedConfiguration
|
|
|
|
// NodeController holds configuration for node controller
|
|
// related features.
|
|
NodeController nodeconfig.NodeControllerConfiguration
|
|
|
|
// ServiceControllerConfiguration holds configuration for ServiceController
|
|
// related features.
|
|
ServiceController serviceconfig.ServiceControllerConfiguration
|
|
|
|
// NodeStatusUpdateFrequency is the frequency at which the controller updates nodes' status
|
|
NodeStatusUpdateFrequency metav1.Duration
|
|
|
|
// Webhook is the configuration for cloud-controller-manager hosted webhooks
|
|
Webhook WebhookConfiguration
|
|
}
|
|
|
|
// KubeCloudSharedConfiguration contains elements shared by both kube-controller manager
|
|
// and cloud-controller manager, but not genericconfig.
|
|
type KubeCloudSharedConfiguration struct {
|
|
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
|
CloudProvider CloudProviderConfiguration
|
|
// externalCloudVolumePlugin specifies the plugin to use when cloudProvider is "external".
|
|
// It is currently used by the in repo cloud providers to handle node and volume control in the KCM.
|
|
ExternalCloudVolumePlugin string
|
|
// useServiceAccountCredentials indicates whether controllers should be run with
|
|
// individual service account credentials.
|
|
UseServiceAccountCredentials bool
|
|
// run with untagged cloud instances
|
|
AllowUntaggedCloud bool
|
|
// routeReconciliationPeriod is the period for reconciling routes created for Nodes by cloud provider..
|
|
RouteReconciliationPeriod metav1.Duration
|
|
// nodeMonitorPeriod is the period for syncing NodeStatus in CloudNodeLifecycleController.
|
|
NodeMonitorPeriod metav1.Duration
|
|
// clusterName is the instance prefix for the cluster.
|
|
ClusterName string
|
|
// clusterCIDR is CIDR Range for Pods in cluster.
|
|
ClusterCIDR string
|
|
// AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if
|
|
// ConfigureCloudRoutes is true, to be set on the cloud provider.
|
|
AllocateNodeCIDRs bool
|
|
// CIDRAllocatorType determines what kind of pod CIDR allocator will be used.
|
|
CIDRAllocatorType string
|
|
// configureCloudRoutes enables CIDRs allocated with allocateNodeCIDRs
|
|
// to be configured on the cloud provider.
|
|
ConfigureCloudRoutes bool
|
|
// nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer
|
|
// periods will result in fewer calls to cloud provider, but may delay addition
|
|
// of new nodes to cluster.
|
|
NodeSyncPeriod metav1.Duration
|
|
}
|
|
|
|
// CloudProviderConfiguration contains basically elements about cloud provider.
|
|
type CloudProviderConfiguration struct {
|
|
// Name is the provider for cloud services.
|
|
Name string
|
|
// cloudConfigFile is the path to the cloud provider configuration file.
|
|
CloudConfigFile string
|
|
}
|
|
|
|
type WebhookConfiguration struct {
|
|
// Webhooks is the list of webhooks to enable or disable
|
|
// '*' means "all enabled by default webhooks"
|
|
// 'foo' means "enable 'foo'"
|
|
// '-foo' means "disable 'foo'"
|
|
// first item for a particular name wins
|
|
Webhooks []string
|
|
}
|