mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
go generate
This commit is contained in:
parent
30b1fb0e98
commit
1d6b83d8a4
@ -52,18 +52,23 @@ func NewFactoryFromConfigOrDie(config *rest.Config) *Factory {
|
||||
}
|
||||
|
||||
func NewFactoryFromConfig(config *rest.Config) (*Factory, error) {
|
||||
cs, err := clientset.NewForConfig(config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
informerFactory := informers.NewSharedInformerFactory(cs, 2*time.Hour)
|
||||
return NewFactory(cs, informerFactory), nil
|
||||
return NewFactoryFromConfigWithOptions(config, nil)
|
||||
}
|
||||
|
||||
func NewFactoryFromConfigWithNamespace(config *rest.Config, namespace string) (*Factory, error) {
|
||||
if namespace == "" {
|
||||
return NewFactoryFromConfig(config)
|
||||
return NewFactoryFromConfigWithOptions(config, &FactoryOptions{
|
||||
Namespace: namespace,
|
||||
})
|
||||
}
|
||||
|
||||
type FactoryOptions struct {
|
||||
Namespace string
|
||||
Resync time.Duration
|
||||
}
|
||||
|
||||
func NewFactoryFromConfigWithOptions(config *rest.Config, opts *FactoryOptions) (*Factory, error) {
|
||||
if opts == nil {
|
||||
opts = &FactoryOptions{}
|
||||
}
|
||||
|
||||
cs, err := clientset.NewForConfig(config)
|
||||
@ -71,7 +76,17 @@ func NewFactoryFromConfigWithNamespace(config *rest.Config, namespace string) (*
|
||||
return nil, err
|
||||
}
|
||||
|
||||
informerFactory := informers.NewSharedInformerFactoryWithOptions(cs, 2*time.Hour, informers.WithNamespace(namespace))
|
||||
resync := opts.Resync
|
||||
if resync == 0 {
|
||||
resync = 2 * time.Hour
|
||||
}
|
||||
|
||||
if opts.Namespace == "" {
|
||||
informerFactory := informers.NewSharedInformerFactory(cs, resync)
|
||||
return NewFactory(cs, informerFactory), nil
|
||||
}
|
||||
|
||||
informerFactory := informers.NewSharedInformerFactoryWithOptions(cs, resync, informers.WithNamespace(opts.Namespace))
|
||||
return NewFactory(cs, informerFactory), nil
|
||||
}
|
||||
|
||||
|
@ -29,6 +29,7 @@ import (
|
||||
"github.com/rancher/wrangler/pkg/apply"
|
||||
"github.com/rancher/wrangler/pkg/condition"
|
||||
"github.com/rancher/wrangler/pkg/generic"
|
||||
"github.com/rancher/wrangler/pkg/kv"
|
||||
"k8s.io/apimachinery/pkg/api/equality"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@ -267,6 +268,7 @@ func RegisterAddonGeneratingHandler(ctx context.Context, controller AddonControl
|
||||
if opts != nil {
|
||||
statusHandler.opts = *opts
|
||||
}
|
||||
controller.OnChange(ctx, name, statusHandler.Remove)
|
||||
RegisterAddonStatusHandler(ctx, controller, condition, name, statusHandler.Handle)
|
||||
}
|
||||
|
||||
@ -281,7 +283,7 @@ func (a *addonStatusHandler) sync(key string, obj *v1.Addon) (*v1.Addon, error)
|
||||
return obj, nil
|
||||
}
|
||||
|
||||
origStatus := obj.Status
|
||||
origStatus := obj.Status.DeepCopy()
|
||||
obj = obj.DeepCopy()
|
||||
newStatus, err := a.handler(obj, obj.Status)
|
||||
if err != nil {
|
||||
@ -289,16 +291,16 @@ func (a *addonStatusHandler) sync(key string, obj *v1.Addon) (*v1.Addon, error)
|
||||
newStatus = *origStatus.DeepCopy()
|
||||
}
|
||||
|
||||
obj.Status = newStatus
|
||||
if a.condition != "" {
|
||||
if errors.IsConflict(err) {
|
||||
a.condition.SetError(obj, "", nil)
|
||||
a.condition.SetError(&newStatus, "", nil)
|
||||
} else {
|
||||
a.condition.SetError(obj, "", err)
|
||||
a.condition.SetError(&newStatus, "", err)
|
||||
}
|
||||
}
|
||||
if !equality.Semantic.DeepEqual(origStatus, obj.Status) {
|
||||
if !equality.Semantic.DeepEqual(origStatus, &newStatus) {
|
||||
var newErr error
|
||||
obj.Status = newStatus
|
||||
obj, newErr = a.client.UpdateStatus(obj)
|
||||
if err == nil {
|
||||
err = newErr
|
||||
@ -315,29 +317,28 @@ type addonGeneratingHandler struct {
|
||||
name string
|
||||
}
|
||||
|
||||
func (a *addonGeneratingHandler) Remove(key string, obj *v1.Addon) (*v1.Addon, error) {
|
||||
if obj != nil {
|
||||
return obj, nil
|
||||
}
|
||||
|
||||
obj = &v1.Addon{}
|
||||
obj.Namespace, obj.Name = kv.RSplit(key, "/")
|
||||
obj.SetGroupVersionKind(a.gvk)
|
||||
|
||||
return nil, generic.ConfigureApplyForObject(a.apply, obj, &a.opts).
|
||||
WithOwner(obj).
|
||||
WithSetID(a.name).
|
||||
ApplyObjects()
|
||||
}
|
||||
|
||||
func (a *addonGeneratingHandler) Handle(obj *v1.Addon, status v1.AddonStatus) (v1.AddonStatus, error) {
|
||||
objs, newStatus, err := a.AddonGeneratingHandler(obj, status)
|
||||
if err != nil {
|
||||
return newStatus, err
|
||||
}
|
||||
|
||||
apply := a.apply
|
||||
|
||||
if !a.opts.DynamicLookup {
|
||||
apply = apply.WithStrictCaching()
|
||||
}
|
||||
|
||||
if !a.opts.AllowCrossNamespace && !a.opts.AllowClusterScoped {
|
||||
apply = apply.WithSetOwnerReference(true, false).
|
||||
WithDefaultNamespace(obj.GetNamespace()).
|
||||
WithListerNamespace(obj.GetNamespace())
|
||||
}
|
||||
|
||||
if !a.opts.AllowClusterScoped {
|
||||
apply = apply.WithRestrictClusterScoped()
|
||||
}
|
||||
|
||||
return newStatus, apply.
|
||||
return newStatus, generic.ConfigureApplyForObject(a.apply, obj, &a.opts).
|
||||
WithOwner(obj).
|
||||
WithSetID(a.name).
|
||||
ApplyObjects(objs...)
|
||||
|
Loading…
Reference in New Issue
Block a user