feat(set_image): implement set_image for daemonset
parent
612148debb
commit
e75bf0acfa
|
|
@ -21,11 +21,12 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
_ Accessor = (*DaemonSet)(nil)
|
||||
_ Nuker = (*DaemonSet)(nil)
|
||||
_ Loggable = (*DaemonSet)(nil)
|
||||
_ Restartable = (*DaemonSet)(nil)
|
||||
_ Controller = (*DaemonSet)(nil)
|
||||
_ Accessor = (*DaemonSet)(nil)
|
||||
_ Nuker = (*DaemonSet)(nil)
|
||||
_ Loggable = (*DaemonSet)(nil)
|
||||
_ Restartable = (*DaemonSet)(nil)
|
||||
_ Controller = (*DaemonSet)(nil)
|
||||
_ ContainsPodSpec = (*DaemonSet)(nil)
|
||||
)
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
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...
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@ func NewDaemonSet(gvr client.GVR) ResourceViewer {
|
|||
d := DaemonSet{
|
||||
ResourceViewer: NewPortForwardExtender(
|
||||
NewRestartExtender(
|
||||
NewLogsExtender(NewBrowser(gvr), nil),
|
||||
NewSetImageExtender(
|
||||
NewLogsExtender(NewBrowser(gvr), nil),
|
||||
),
|
||||
),
|
||||
),
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue