Documentation ¶
Index ¶
Constants ¶
const (
// LabelRenderHash is the label that record the hash value of the rendering resource.
LabelRenderHash = "oam.dev/render-hash"
)
Variables ¶
This section is empty.
Functions ¶
func AddLabels ¶
AddLabels will merge labels with existing labels. If any conflict keys, use new value to override existing value.
func ComputeSpecHash ¶
ComputeSpecHash computes the hash value of a k8s resource spec
Types ¶
type APIApplicator ¶
type APIApplicator struct {
// contains filtered or unexported fields
}
APIApplicator implements Applicator
func NewAPIApplicator ¶
func NewAPIApplicator(c client.Client) *APIApplicator
NewAPIApplicator creates an Applicator that applies state to an object or creates the object if not exist.
func (*APIApplicator) Apply ¶
func (a *APIApplicator) Apply(ctx context.Context, desired client.Object, ao ...ApplyOption) error
Apply applies new state to an object or create it if not exist
type Applicator ¶
Applicator applies new state to an object or create it if not exist. It uses the same mechanism as `kubectl apply`, that is, for each resource being applied, computing a three-way diff merge in client side based on its current state, modified stated, and last-applied-state which is tracked through an specific annotation. If the resource doesn't exist before, Apply will create it.
type ApplyOption ¶
ApplyOption is called before applying state to the object. ApplyOption is still called even if the object does NOT exist. If the object does not exist, `existing` will be assigned as `nil`. nolint: golint
func DisableUpdateAnnotation ¶
func DisableUpdateAnnotation() ApplyOption
DisableUpdateAnnotation disable write last config to annotation
func MakeCustomApplyOption ¶
func MakeCustomApplyOption(f func(existing, desired client.Object) error) ApplyOption
MakeCustomApplyOption let user can generate applyOption that restrict change apply action.
func MustBeControllableBy ¶
func MustBeControllableBy(u types.UID) ApplyOption
MustBeControllableBy requires that the new object is controllable by an object with the supplied UID. An object is controllable if its controller reference includes the supplied UID.
func MustBeControlledByApp ¶
func MustBeControlledByApp(app *v1beta1.Application) ApplyOption
MustBeControlledByApp requires that the new object is controllable by versioned resourcetracker
func NotUpdateRenderHashEqual ¶
func NotUpdateRenderHashEqual() ApplyOption
NotUpdateRenderHashEqual if the render hash of new object equal to the old hash, should not apply.