Remove createSnapshotContentRetryCount and createSnapshotContentInterval
from command line options
This commit is contained in:
@@ -46,11 +46,9 @@ const (
|
|||||||
|
|
||||||
// Command line flags
|
// Command line flags
|
||||||
var (
|
var (
|
||||||
kubeconfig = flag.String("kubeconfig", "", "Absolute path to the kubeconfig file. Required only when running out of cluster.")
|
kubeconfig = flag.String("kubeconfig", "", "Absolute path to the kubeconfig file. Required only when running out of cluster.")
|
||||||
createSnapshotContentRetryCount = flag.Int("create-snapshotcontent-retrycount", 5, "Number of retries when we create a snapshot content object for a snapshot.")
|
resyncPeriod = flag.Duration("resync-period", 60*time.Second, "Resync interval of the controller.")
|
||||||
createSnapshotContentInterval = flag.Duration("create-snapshotcontent-interval", 10*time.Second, "Interval between retries when we create a snapshot content object for a snapshot.")
|
showVersion = flag.Bool("version", false, "Show version.")
|
||||||
resyncPeriod = flag.Duration("resync-period", 60*time.Second, "Resync interval of the controller.")
|
|
||||||
showVersion = flag.Bool("version", false, "Show version.")
|
|
||||||
|
|
||||||
leaderElection = flag.Bool("leader-election", false, "Enables leader election.")
|
leaderElection = flag.Bool("leader-election", false, "Enables leader election.")
|
||||||
leaderElectionNamespace = flag.String("leader-election-namespace", "", "The namespace where the leader election resource exists. Defaults to the pod namespace if not set.")
|
leaderElectionNamespace = flag.String("leader-election-namespace", "", "The namespace where the leader election resource exists. Defaults to the pod namespace if not set.")
|
||||||
@@ -96,7 +94,7 @@ func main() {
|
|||||||
// Add Snapshot types to the defualt Kubernetes so events can be logged for them
|
// Add Snapshot types to the defualt Kubernetes so events can be logged for them
|
||||||
snapshotscheme.AddToScheme(scheme.Scheme)
|
snapshotscheme.AddToScheme(scheme.Scheme)
|
||||||
|
|
||||||
klog.V(2).Infof("Start NewCSISnapshotController with kubeconfig [%s] createSnapshotContentRetryCount [%d] createSnapshotContentInterval [%d] resyncPeriod [%+v]", *kubeconfig, *createSnapshotContentRetryCount, *createSnapshotContentInterval, *resyncPeriod)
|
klog.V(2).Infof("Start NewCSISnapshotController with kubeconfig [%s] resyncPeriod [%+v]", *kubeconfig, *resyncPeriod)
|
||||||
|
|
||||||
ctrl := controller.NewCSISnapshotCommonController(
|
ctrl := controller.NewCSISnapshotCommonController(
|
||||||
snapClient,
|
snapClient,
|
||||||
@@ -105,8 +103,6 @@ func main() {
|
|||||||
factory.Snapshot().V1beta1().VolumeSnapshotContents(),
|
factory.Snapshot().V1beta1().VolumeSnapshotContents(),
|
||||||
factory.Snapshot().V1beta1().VolumeSnapshotClasses(),
|
factory.Snapshot().V1beta1().VolumeSnapshotClasses(),
|
||||||
coreFactory.Core().V1().PersistentVolumeClaims(),
|
coreFactory.Core().V1().PersistentVolumeClaims(),
|
||||||
*createSnapshotContentRetryCount,
|
|
||||||
*createSnapshotContentInterval,
|
|
||||||
*resyncPeriod,
|
*resyncPeriod,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -761,8 +761,6 @@ func newTestController(kubeClient kubernetes.Interface, clientset clientset.Inte
|
|||||||
informerFactory.Snapshot().V1beta1().VolumeSnapshotContents(),
|
informerFactory.Snapshot().V1beta1().VolumeSnapshotContents(),
|
||||||
informerFactory.Snapshot().V1beta1().VolumeSnapshotClasses(),
|
informerFactory.Snapshot().V1beta1().VolumeSnapshotClasses(),
|
||||||
coreFactory.Core().V1().PersistentVolumeClaims(),
|
coreFactory.Core().V1().PersistentVolumeClaims(),
|
||||||
3,
|
|
||||||
5*time.Millisecond,
|
|
||||||
60*time.Second,
|
60*time.Second,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -337,16 +337,10 @@ func (ctrl *csiSnapshotCommonController) syncUnreadySnapshot(snapshot *crdv1.Vol
|
|||||||
}
|
}
|
||||||
|
|
||||||
// update snapshot status
|
// update snapshot status
|
||||||
for i := 0; i < ctrl.createSnapshotContentRetryCount; i++ {
|
klog.V(5).Infof("syncUnreadySnapshot [%s]: trying to update snapshot status", utils.SnapshotKey(snapshot))
|
||||||
klog.V(5).Infof("syncUnreadySnapshot [%s]: trying to update snapshot status", utils.SnapshotKey(snapshot))
|
_, err = ctrl.updateSnapshotStatus(snapshot, newContent)
|
||||||
_, err = ctrl.updateSnapshotStatus(snapshot, newContent)
|
|
||||||
if err == nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
klog.V(4).Infof("failed to update snapshot %s status: %v", utils.SnapshotKey(snapshot), err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
klog.V(4).Infof("failed to update snapshot %s status: %v", utils.SnapshotKey(snapshot), err)
|
||||||
// update snapshot status failed
|
// update snapshot status failed
|
||||||
ctrl.updateSnapshotErrorStatusWithEvent(snapshot, v1.EventTypeWarning, "SnapshotStatusUpdateFailed", fmt.Sprintf("Snapshot status update failed, %v", err))
|
ctrl.updateSnapshotErrorStatusWithEvent(snapshot, v1.EventTypeWarning, "SnapshotStatusUpdateFailed", fmt.Sprintf("Snapshot status update failed, %v", err))
|
||||||
return err
|
return err
|
||||||
@@ -399,16 +393,10 @@ func (ctrl *csiSnapshotCommonController) syncUnreadySnapshot(snapshot *crdv1.Vol
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update snapshot status with BoundVolumeSnapshotContentName
|
// Update snapshot status with BoundVolumeSnapshotContentName
|
||||||
for i := 0; i < ctrl.createSnapshotContentRetryCount; i++ {
|
klog.V(5).Infof("syncUnreadySnapshot [%s]: trying to update snapshot status", utils.SnapshotKey(snapshot))
|
||||||
klog.V(5).Infof("syncUnreadySnapshot [%s]: trying to update snapshot status", utils.SnapshotKey(snapshot))
|
_, err = ctrl.updateSnapshotStatus(snapshot, content)
|
||||||
_, err = ctrl.updateSnapshotStatus(snapshot, content)
|
|
||||||
if err == nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
klog.V(4).Infof("failed to update snapshot %s status: %v", utils.SnapshotKey(snapshot), err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
klog.V(4).Infof("failed to update snapshot %s status: %v", utils.SnapshotKey(snapshot), err)
|
||||||
// update snapshot status failed
|
// update snapshot status failed
|
||||||
ctrl.updateSnapshotErrorStatusWithEvent(snapshot, v1.EventTypeWarning, "SnapshotStatusUpdateFailed", fmt.Sprintf("Snapshot status update failed, %v", err))
|
ctrl.updateSnapshotErrorStatusWithEvent(snapshot, v1.EventTypeWarning, "SnapshotStatusUpdateFailed", fmt.Sprintf("Snapshot status update failed, %v", err))
|
||||||
return err
|
return err
|
||||||
@@ -501,23 +489,17 @@ func (ctrl *csiSnapshotCommonController) createSnapshotContent(snapshot *crdv1.V
|
|||||||
|
|
||||||
var updateContent *crdv1.VolumeSnapshotContent
|
var updateContent *crdv1.VolumeSnapshotContent
|
||||||
klog.V(3).Infof("volume snapshot content %#v", snapshotContent)
|
klog.V(3).Infof("volume snapshot content %#v", snapshotContent)
|
||||||
// Try to create the VolumeSnapshotContent object several times
|
// Try to create the VolumeSnapshotContent object
|
||||||
for i := 0; i < ctrl.createSnapshotContentRetryCount; i++ {
|
klog.V(5).Infof("createSnapshotContent [%s]: trying to save volume snapshot content %s", utils.SnapshotKey(snapshot), snapshotContent.Name)
|
||||||
klog.V(5).Infof("createSnapshotContent [%s]: trying to save volume snapshot content %s", utils.SnapshotKey(snapshot), snapshotContent.Name)
|
if updateContent, err = ctrl.clientset.SnapshotV1beta1().VolumeSnapshotContents().Create(snapshotContent); err == nil || apierrs.IsAlreadyExists(err) {
|
||||||
if updateContent, err = ctrl.clientset.SnapshotV1beta1().VolumeSnapshotContents().Create(snapshotContent); err == nil || apierrs.IsAlreadyExists(err) {
|
// Save succeeded.
|
||||||
// Save succeeded.
|
if err != nil {
|
||||||
if err != nil {
|
klog.V(3).Infof("volume snapshot content %q for snapshot %q already exists, reusing", snapshotContent.Name, utils.SnapshotKey(snapshot))
|
||||||
klog.V(3).Infof("volume snapshot content %q for snapshot %q already exists, reusing", snapshotContent.Name, utils.SnapshotKey(snapshot))
|
err = nil
|
||||||
err = nil
|
updateContent = snapshotContent
|
||||||
updateContent = snapshotContent
|
} else {
|
||||||
} else {
|
klog.V(3).Infof("volume snapshot content %q for snapshot %q saved, %v", snapshotContent.Name, utils.SnapshotKey(snapshot), snapshotContent)
|
||||||
klog.V(3).Infof("volume snapshot content %q for snapshot %q saved, %v", snapshotContent.Name, utils.SnapshotKey(snapshot), snapshotContent)
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
// Save failed, try again after a while.
|
|
||||||
klog.V(3).Infof("failed to save volume snapshot content %q for snapshot %q: %v", snapshotContent.Name, utils.SnapshotKey(snapshot), err)
|
|
||||||
time.Sleep(ctrl.createSnapshotContentInterval)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -867,17 +849,14 @@ func (ctrl *csiSnapshotCommonController) bindandUpdateVolumeSnapshot(snapshotCon
|
|||||||
snapshotCopy := snapshotObj.DeepCopy()
|
snapshotCopy := snapshotObj.DeepCopy()
|
||||||
|
|
||||||
// update snapshot status
|
// update snapshot status
|
||||||
for i := 0; i < ctrl.createSnapshotContentRetryCount; i++ {
|
klog.V(5).Infof("bindandUpdateVolumeSnapshot [%s]: trying to update snapshot status", utils.SnapshotKey(snapshotCopy))
|
||||||
klog.V(5).Infof("bindandUpdateVolumeSnapshot [%s]: trying to update snapshot status", utils.SnapshotKey(snapshotCopy))
|
updateSnapshot, err := ctrl.updateSnapshotStatus(snapshotCopy, snapshotContent)
|
||||||
updateSnapshot, err := ctrl.updateSnapshotStatus(snapshotCopy, snapshotContent)
|
if err == nil {
|
||||||
if err == nil {
|
snapshotCopy = updateSnapshot
|
||||||
snapshotCopy = updateSnapshot
|
|
||||||
break
|
|
||||||
}
|
|
||||||
klog.V(4).Infof("failed to update snapshot %s status: %v", utils.SnapshotKey(snapshot), err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
klog.V(4).Infof("failed to update snapshot %s status: %v", utils.SnapshotKey(snapshot), err)
|
||||||
// update snapshot status failed
|
// update snapshot status failed
|
||||||
ctrl.updateSnapshotErrorStatusWithEvent(snapshotCopy, v1.EventTypeWarning, "SnapshotStatusUpdateFailed", fmt.Sprintf("Snapshot status update failed, %v", err))
|
ctrl.updateSnapshotErrorStatusWithEvent(snapshotCopy, v1.EventTypeWarning, "SnapshotStatusUpdateFailed", fmt.Sprintf("Snapshot status update failed, %v", err))
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -64,9 +64,7 @@ type csiSnapshotCommonController struct {
|
|||||||
// Map of scheduled/running operations.
|
// Map of scheduled/running operations.
|
||||||
runningOperations goroutinemap.GoRoutineMap
|
runningOperations goroutinemap.GoRoutineMap
|
||||||
|
|
||||||
createSnapshotContentRetryCount int
|
resyncPeriod time.Duration
|
||||||
createSnapshotContentInterval time.Duration
|
|
||||||
resyncPeriod time.Duration
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCSISnapshotController returns a new *csiSnapshotCommonController
|
// NewCSISnapshotController returns a new *csiSnapshotCommonController
|
||||||
@@ -77,8 +75,6 @@ func NewCSISnapshotCommonController(
|
|||||||
volumeSnapshotContentInformer storageinformers.VolumeSnapshotContentInformer,
|
volumeSnapshotContentInformer storageinformers.VolumeSnapshotContentInformer,
|
||||||
volumeSnapshotClassInformer storageinformers.VolumeSnapshotClassInformer,
|
volumeSnapshotClassInformer storageinformers.VolumeSnapshotClassInformer,
|
||||||
pvcInformer coreinformers.PersistentVolumeClaimInformer,
|
pvcInformer coreinformers.PersistentVolumeClaimInformer,
|
||||||
createSnapshotContentRetryCount int,
|
|
||||||
createSnapshotContentInterval time.Duration,
|
|
||||||
resyncPeriod time.Duration,
|
resyncPeriod time.Duration,
|
||||||
) *csiSnapshotCommonController {
|
) *csiSnapshotCommonController {
|
||||||
broadcaster := record.NewBroadcaster()
|
broadcaster := record.NewBroadcaster()
|
||||||
@@ -88,17 +84,15 @@ func NewCSISnapshotCommonController(
|
|||||||
eventRecorder = broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: fmt.Sprintf("snapshot-controller")})
|
eventRecorder = broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: fmt.Sprintf("snapshot-controller")})
|
||||||
|
|
||||||
ctrl := &csiSnapshotCommonController{
|
ctrl := &csiSnapshotCommonController{
|
||||||
clientset: clientset,
|
clientset: clientset,
|
||||||
client: client,
|
client: client,
|
||||||
eventRecorder: eventRecorder,
|
eventRecorder: eventRecorder,
|
||||||
runningOperations: goroutinemap.NewGoRoutineMap(true),
|
runningOperations: goroutinemap.NewGoRoutineMap(true),
|
||||||
createSnapshotContentRetryCount: createSnapshotContentRetryCount,
|
resyncPeriod: resyncPeriod,
|
||||||
createSnapshotContentInterval: createSnapshotContentInterval,
|
snapshotStore: cache.NewStore(cache.DeletionHandlingMetaNamespaceKeyFunc),
|
||||||
resyncPeriod: resyncPeriod,
|
contentStore: cache.NewStore(cache.DeletionHandlingMetaNamespaceKeyFunc),
|
||||||
snapshotStore: cache.NewStore(cache.DeletionHandlingMetaNamespaceKeyFunc),
|
snapshotQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "snapshot-controller-snapshot"),
|
||||||
contentStore: cache.NewStore(cache.DeletionHandlingMetaNamespaceKeyFunc),
|
contentQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "snapshot-controller-content"),
|
||||||
snapshotQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "snapshot-controller-snapshot"),
|
|
||||||
contentQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "snapshot-controller-content"),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ctrl.pvcLister = pvcInformer.Lister()
|
ctrl.pvcLister = pvcInformer.Lister()
|
||||||
|
Reference in New Issue
Block a user