forked from onosproject/helmit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
poddisruptionbudget.go
53 lines (46 loc) · 1.36 KB
/
poddisruptionbudget.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Code generated by helmit-generate. DO NOT EDIT.
package v1beta1
import (
"context"
"github.com/wangxn2015/helmit/pkg/kubernetes/resource"
policyv1beta1 "k8s.io/api/policy/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
kubernetes "k8s.io/client-go/kubernetes"
"time"
)
var PodDisruptionBudgetKind = resource.Kind{
Group: "policy",
Version: "v1beta1",
Kind: "PodDisruptionBudget",
Scoped: true,
}
var PodDisruptionBudgetResource = resource.Type{
Kind: PodDisruptionBudgetKind,
Name: "poddisruptionbudgets",
}
func NewPodDisruptionBudget(podDisruptionBudget *policyv1beta1.PodDisruptionBudget, client resource.Client) *PodDisruptionBudget {
return &PodDisruptionBudget{
Resource: resource.NewResource(podDisruptionBudget.ObjectMeta, PodDisruptionBudgetKind, client),
Object: podDisruptionBudget,
}
}
type PodDisruptionBudget struct {
*resource.Resource
Object *policyv1beta1.PodDisruptionBudget
}
func (r *PodDisruptionBudget) Delete(ctx context.Context) error {
client, err := kubernetes.NewForConfig(r.Config())
if err != nil {
return err
}
return client.PolicyV1beta1().
RESTClient().
Delete().
NamespaceIfScoped(r.Namespace, PodDisruptionBudgetKind.Scoped).
Resource(PodDisruptionBudgetResource.Name).
Name(r.Name).
VersionedParams(&metav1.DeleteOptions{}, metav1.ParameterCodec).
Timeout(time.Minute).
Do(ctx).
Error()
}