feat(set_image): implement set_image for daemonset
parent
612148debb
commit
e75bf0acfa
|
|
@ -21,11 +21,12 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
_ Accessor = (*DaemonSet)(nil)
|
_ Accessor = (*DaemonSet)(nil)
|
||||||
_ Nuker = (*DaemonSet)(nil)
|
_ Nuker = (*DaemonSet)(nil)
|
||||||
_ Loggable = (*DaemonSet)(nil)
|
_ Loggable = (*DaemonSet)(nil)
|
||||||
_ Restartable = (*DaemonSet)(nil)
|
_ Restartable = (*DaemonSet)(nil)
|
||||||
_ Controller = (*DaemonSet)(nil)
|
_ Controller = (*DaemonSet)(nil)
|
||||||
|
_ ContainsPodSpec = (*DaemonSet)(nil)
|
||||||
)
|
)
|
||||||
|
|
||||||
// DaemonSet represents a K8s daemonset.
|
// DaemonSet represents a K8s daemonset.
|
||||||
|
|
@ -225,6 +226,42 @@ func (d *DaemonSet) Scan(ctx context.Context, gvr, fqn string, wait bool) (Refs,
|
||||||
return refs, nil
|
return refs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *DaemonSet) GetPodSpec(path string) (*v1.PodSpec, error) {
|
||||||
|
ds, err := d.GetInstance(path)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
podSpec := ds.Spec.Template.Spec
|
||||||
|
return &podSpec, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *DaemonSet) SetImages(ctx context.Context, path string, spec v1.PodSpec) error {
|
||||||
|
ns, n := client.Namespaced(path)
|
||||||
|
auth, err := d.Client().CanI(ns, "apps/v1/daemonset", []string{client.PatchVerb})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !auth {
|
||||||
|
return fmt.Errorf("user is not authorized to patch a daemonset")
|
||||||
|
}
|
||||||
|
jsonPatch, err := SetImageJsonPatch(spec)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
dial, err := d.Client().Dial()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = dial.AppsV1().DaemonSets(ns).Patch(
|
||||||
|
ctx,
|
||||||
|
n,
|
||||||
|
types.StrategicMergePatchType,
|
||||||
|
[]byte(jsonPatch),
|
||||||
|
metav1.PatchOptions{},
|
||||||
|
)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Helpers...
|
// Helpers...
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,9 @@ func NewDaemonSet(gvr client.GVR) ResourceViewer {
|
||||||
d := DaemonSet{
|
d := DaemonSet{
|
||||||
ResourceViewer: NewPortForwardExtender(
|
ResourceViewer: NewPortForwardExtender(
|
||||||
NewRestartExtender(
|
NewRestartExtender(
|
||||||
NewLogsExtender(NewBrowser(gvr), nil),
|
NewSetImageExtender(
|
||||||
|
NewLogsExtender(NewBrowser(gvr), nil),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue