kubelatte-ce
Форк от sbertech/kubelatte-ce
65 строк · 1.5 Кб
1package base
2
3import (
4"context"
5"gitverse.ru/synapse/kubelatte/pkg/api/v1alpha1"
6"gitverse.ru/synapse/kubelatte/pkg/operator/controllers/clientset"
7"k8s.io/client-go/kubernetes"
8"time"
9)
10
11type Mode int8
12
13const (
14Creation Mode = iota
15Recreation
16)
17
18type SE struct {
19Configs
20SeMode int32
21}
22
23type Configs struct {
24Kind string
25ApiVersion string
26ParentTag int64
27TriggerRef
28Metadata
29TemplateRefs []string
30}
31
32type Metadata struct {
33Namespace string
34Name string
35}
36
37type TriggerRef struct {
38SideEffectConfig string
39Name string
40Namespace string
41}
42
43//go:generate go run github.com/vektra/mockery/v2@v2.43.1 --name=ExecutorI
44type ExecutorI interface {
45ApplySideEffect(ctx context.Context, info *SE)
46ApplySideEffectCreate(ctx context.Context, info *SE) error
47ApplySideEffectRecreate(ctx context.Context, info *SE) error
48WaitForParentPublication(ctx context.Context, timeout time.Duration, info *SE, checkParentUpdate func(parentByte []byte, expectedTag int64) ParentStatus) ([]byte, ParentStatus, error)
49PublishTI(ctx context.Context, ti *v1alpha1.TriggerInstance, info *SE) error
50
51SetKubeCli(kubeCli *kubernetes.Clientset)
52SetKbltCli(kbltCli clientset.V1Alpha1Interface)
53}
54
55type ParentStatus int8
56
57var Statuses = map[ParentStatus]string{Unknown: "Unknown", NotYetUpdated: "NotYetUpdated", PublishedHashNotChanged: "PublishedHashNotChanged", PublishedHashChanged: "PublishedHashChanged", Obtained: "Obtained"}
58
59const (
60Unknown = iota
61NotYetUpdated
62PublishedHashChanged
63PublishedHashNotChanged
64Obtained
65)
66