|
|
|
@ -38,7 +38,7 @@ type handler struct {
|
|
|
|
|
ctx context.Context
|
|
|
|
|
controlConfig *config.Control
|
|
|
|
|
nodes coreclient.NodeController
|
|
|
|
|
secrets coreclient.SecretController
|
|
|
|
|
k8s *kubernetes.Clientset
|
|
|
|
|
recorder record.EventRecorder
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -47,12 +47,14 @@ func Register(
|
|
|
|
|
controllerName string,
|
|
|
|
|
controlConfig *config.Control,
|
|
|
|
|
nodes coreclient.NodeController,
|
|
|
|
|
secrets coreclient.SecretController,
|
|
|
|
|
) error {
|
|
|
|
|
restConfig, err := clientcmd.BuildConfigFromFlags("", controlConfig.Runtime.KubeConfigSupervisor)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
// For secrets we need a much higher QPS than what wrangler provides, so we create a new clientset
|
|
|
|
|
restConfig.QPS = 200
|
|
|
|
|
restConfig.Burst = 200
|
|
|
|
|
k8s, err := kubernetes.NewForConfig(restConfig)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
@ -62,7 +64,7 @@ func Register(
|
|
|
|
|
ctx: ctx,
|
|
|
|
|
controlConfig: controlConfig,
|
|
|
|
|
nodes: nodes,
|
|
|
|
|
secrets: secrets,
|
|
|
|
|
k8s: k8s,
|
|
|
|
|
recorder: util.BuildControllerEventRecorder(k8s, controllerAgentName, metav1.NamespaceDefault),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -217,7 +219,7 @@ func (h *handler) validateReencryptStage(node *corev1.Node, annotation string) (
|
|
|
|
|
|
|
|
|
|
func (h *handler) updateSecrets(nodeRef *corev1.ObjectReference) error {
|
|
|
|
|
secretPager := pager.New(pager.SimplePageFunc(func(opts metav1.ListOptions) (runtime.Object, error) {
|
|
|
|
|
return h.secrets.List(metav1.NamespaceAll, opts)
|
|
|
|
|
return h.k8s.CoreV1().Secrets(metav1.NamespaceAll).List(h.ctx, opts)
|
|
|
|
|
}))
|
|
|
|
|
secretPager.PageSize = secretListPageSize
|
|
|
|
|
|
|
|
|
@ -227,10 +229,10 @@ func (h *handler) updateSecrets(nodeRef *corev1.ObjectReference) error {
|
|
|
|
|
if !ok {
|
|
|
|
|
return errors.New("failed to convert object to Secret")
|
|
|
|
|
}
|
|
|
|
|
if _, err := h.secrets.Update(secret); err != nil && !apierrors.IsConflict(err) {
|
|
|
|
|
if _, err := h.k8s.CoreV1().Secrets(secret.Namespace).Update(h.ctx, secret, metav1.UpdateOptions{}); err != nil && !apierrors.IsConflict(err) {
|
|
|
|
|
return fmt.Errorf("failed to update secret: %v", err)
|
|
|
|
|
}
|
|
|
|
|
if i != 0 && i%10 == 0 {
|
|
|
|
|
if i != 0 && i%50 == 0 {
|
|
|
|
|
h.recorder.Eventf(nodeRef, corev1.EventTypeNormal, secretsProgressEvent, "reencrypted %d secrets", i)
|
|
|
|
|
}
|
|
|
|
|
i++
|
|
|
|
|