Documentation ¶
Index ¶
- func DeleteAnyExistingObject(c client.Client, key client.ObjectKey, obj hivev1.MetaRuntimeObject, ...) error
- func GenerateClientConfigFromRESTConfig(name string, restConfig *rest.Config) *configapi.Config
- func Serialize(obj runtime.Object, scheme *runtime.Scheme) ([]byte, error)
- type ApplyResult
- type Helper
- func NewFakeHelper(logger log.FieldLogger) Helper
- func NewHelper(kubeconfig []byte, logger log.FieldLogger) (Helper, error)
- func NewHelperFromRESTConfig(restConfig *rest.Config, logger log.FieldLogger) (Helper, error)
- func NewHelperWithMetricsFromRESTConfig(restConfig *rest.Config, controllerName hivev1.ControllerName, ...) (Helper, error)
- type Info
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeleteAnyExistingObject ¶
func DeleteAnyExistingObject(c client.Client, key client.ObjectKey, obj hivev1.MetaRuntimeObject, logger log.FieldLogger) error
DeleteAnyExistingObject will look for any object that exists that matches the passed in 'obj' and will delete it if it exists
func GenerateClientConfigFromRESTConfig ¶
GenerateClientConfigFromRESTConfig generates a new kubeconfig using a given rest.Config. The rest.Config may come from in-cluster config (as in a pod) or an existing kubeconfig.
func Serialize ¶ added in v1.0.9
Serialize uses a custom JSON extension to properly determine whether metav1.Time should be serialized or not. In cases where a metav1.Time is labeled as 'omitempty', the default json marshaler still outputs a "null" value because it is considered a struct. The json-iterator/go marshaler will first check whether a value is empty and if its tag says 'omitempty' it will not output it. This is needed for us to prevent patching from happening unnecessarily when applying resources that don't have a timeCreated timestamp. With the default serializer, they output a `timeCreated: null` which always causes a mismatch with whatever's already in the server.
Types ¶
type ApplyResult ¶
type ApplyResult string
ApplyResult indicates what type of change was performed by calling the Apply function
const ( // ConfiguredApplyResult is returned when a patch was submitted ConfiguredApplyResult ApplyResult = "configured" // UnchangedApplyResult is returned when no change occurred UnchangedApplyResult ApplyResult = "unchanged" // CreatedApplyResult is returned when a resource was created CreatedApplyResult ApplyResult = "created" // UnknownApplyResult is returned when the resulting action could not be determined UnknownApplyResult ApplyResult = "unknown" )
type Helper ¶
type Helper interface { // Apply applies the given resource bytes to the target cluster specified by kubeconfig Apply(obj []byte) (ApplyResult, error) // ApplyRuntimeObject serializes an object and applies it to the target cluster specified by the kubeconfig. ApplyRuntimeObject(obj runtime.Object, scheme *runtime.Scheme) (ApplyResult, error) CreateOrUpdate(obj []byte) (ApplyResult, error) CreateOrUpdateRuntimeObject(obj runtime.Object, scheme *runtime.Scheme) (ApplyResult, error) Create(obj []byte) (ApplyResult, error) CreateRuntimeObject(obj runtime.Object, scheme *runtime.Scheme) (ApplyResult, error) // Info determines the name/namespace and type of the passed in resource bytes Info(obj []byte) (*Info, error) // Patch invokes the kubectl patch command with the given resource, patch and patch type Patch(name types.NamespacedName, kind, apiVersion string, patch []byte, patchType string) error Delete(apiVersion, kind, namespace, name string) error }
func NewFakeHelper ¶ added in v1.0.17
func NewFakeHelper(logger log.FieldLogger) Helper
NewFakeHelper returns a new fake helper object that does not actually communicate with the cluster.
func NewHelper ¶
func NewHelper(kubeconfig []byte, logger log.FieldLogger) (Helper, error)
NewHelper returns a new object that allows apply and patch operations
func NewHelperFromRESTConfig ¶
NewHelperFromRESTConfig returns a new object that allows apply and patch operations
func NewHelperWithMetricsFromRESTConfig ¶
func NewHelperWithMetricsFromRESTConfig(restConfig *rest.Config, controllerName hivev1.ControllerName, logger log.FieldLogger) (Helper, error)
NewHelperWithMetricsFromRESTConfig returns a new object that allows apply and patch operations, with metrics tracking enabled.
type Info ¶
type Info struct { Name string Namespace string APIVersion string Kind string Resource string Object *unstructured.Unstructured }
Info contains information obtained from a resource submitted to the Apply function