Documentation ¶
Index ¶
- Variables
- func EqualObject(original runtime.Object, opts ...EqualObjectOption) types.GomegaMatcher
- func Get(obj client.Object) func() error
- func List(list client.ObjectList, opts ...client.ListOption) func() error
- func Object(obj client.Object) func() (client.Object, error)
- func ObjectList(list client.ObjectList, opts ...client.ListOption) func() (client.ObjectList, error)
- func SetClient(c client.Client)
- func SetContext(c context.Context)
- func Update(obj client.Object, f func(), opts ...client.UpdateOption) func() error
- func UpdateStatus(obj client.Object, f func(), opts ...client.SubResourceUpdateOption) func() error
- type EqualObjectOption
- type EqualObjectOptions
- type IgnorePaths
- type Komega
- type MatchPaths
Constants ¶
This section is empty.
Variables ¶
var ( // IgnoreAutogeneratedMetadata contains the paths for all the metadata fields that are commonly set by the // client and APIServer. This is used as a MatchOption for situations when only user-provided metadata is relevant. IgnoreAutogeneratedMetadata = IgnorePaths{ "metadata.uid", "metadata.generation", "metadata.creationTimestamp", "metadata.resourceVersion", "metadata.managedFields", "metadata.deletionGracePeriodSeconds", "metadata.deletionTimestamp", "metadata.selfLink", "metadata.generateName", } )
These package variables hold pre-created commonly used options that can be used to reduce the manual work involved in identifying the paths that need to be compared for testing equality between objects.
Functions ¶
func EqualObject ¶ added in v0.13.0
func EqualObject(original runtime.Object, opts ...EqualObjectOption) types.GomegaMatcher
EqualObject returns a Matcher for the passed Kubernetes runtime.Object with the passed Options. This function can be used as a Gomega Matcher in Gomega Assertions.
func Get ¶
Get returns a function that fetches a resource and returns the occurring error. It can be used with gomega.Eventually() like this
deployment := appsv1.Deployment{ ... } gomega.Eventually(komega.Get(&deployment)).Should(gomega.Succeed())
By calling the returned function directly it can also be used with gomega.Expect(komega.Get(...)()).To(...)
func List ¶
func List(list client.ObjectList, opts ...client.ListOption) func() error
List returns a function that lists resources and returns the occurring error. It can be used with gomega.Eventually() like this
deployments := v1.DeploymentList{ ... } gomega.Eventually(k.List(&deployments)).Should(gomega.Succeed())
By calling the returned function directly it can also be used as gomega.Expect(k.List(...)()).To(...)
func Object ¶
Object returns a function that fetches a resource and returns the object. It can be used with gomega.Eventually() like this:
deployment := appsv1.Deployment{ ... } gomega.Eventually(k.Object(&deployment)).Should(HaveField("Spec.Replicas", gomega.Equal(ptr.To(3))))
By calling the returned function directly it can also be used as gomega.Expect(k.Object(...)()).To(...)
func ObjectList ¶
func ObjectList(list client.ObjectList, opts ...client.ListOption) func() (client.ObjectList, error)
ObjectList returns a function that fetches a resource and returns the object. It can be used with gomega.Eventually() like this:
deployments := appsv1.DeploymentList{ ... } gomega.Eventually(k.ObjectList(&deployments)).Should(HaveField("Items", HaveLen(1)))
By calling the returned function directly it can also be used as gomega.Expect(k.ObjectList(...)()).To(...)
func SetContext ¶
SetContext sets the context used by the package global functions.
func Update ¶
func Update(obj client.Object, f func(), opts ...client.UpdateOption) func() error
Update returns a function that fetches a resource, applies the provided update function and then updates the resource. It can be used with gomega.Eventually() like this:
deployment := appsv1.Deployment{ ... } gomega.Eventually(k.Update(&deployment, func() { deployment.Spec.Replicas = 3 })).Should(gomega.Succeed())
By calling the returned function directly it can also be used as gomega.Expect(k.Update(...)()).To(...)
func UpdateStatus ¶
func UpdateStatus(obj client.Object, f func(), opts ...client.SubResourceUpdateOption) func() error
UpdateStatus returns a function that fetches a resource, applies the provided update function and then updates the resource's status. It can be used with gomega.Eventually() like this:
deployment := appsv1.Deployment{ ... } gomega.Eventually(k.UpdateStatus(&deployment, func() { deployment.Status.AvailableReplicas = 1 })).Should(gomega.Succeed())
By calling the returned function directly it can also be used as gomega.Expect(k.UpdateStatus(...)()).To(...)
Types ¶
type EqualObjectOption ¶ added in v0.13.0
type EqualObjectOption interface { // ApplyToEqualObjectMatcher applies this configuration to the given MatchOption. ApplyToEqualObjectMatcher(options *EqualObjectOptions) }
EqualObjectOption describes an Option that can be applied to a Matcher.
type EqualObjectOptions ¶ added in v0.13.0
type EqualObjectOptions struct {
// contains filtered or unexported fields
}
EqualObjectOptions holds the available types of EqualObjectOptions that can be applied to a Matcher.
func (*EqualObjectOptions) ApplyOptions ¶ added in v0.13.0
func (o *EqualObjectOptions) ApplyOptions(opts []EqualObjectOption) *EqualObjectOptions
ApplyOptions adds the passed MatchOptions to the MatchOptions struct.
type IgnorePaths ¶ added in v0.13.0
type IgnorePaths []string
IgnorePaths instructs the Matcher to ignore given paths when computing a diff. Paths are written in a syntax similar to Go with a few special cases. Both types and json/yaml field names are supported.
Regular Paths: * "ObjectMeta.Name" * "metadata.name" Arrays: * "metadata.ownerReferences[0].name" Maps, if they do not contain any of .[]/\: * "metadata.labels.something" Maps, if they contain any of .[]/\: * "metadata.labels[kubernetes.io/something]"
func (IgnorePaths) ApplyToEqualObjectMatcher ¶ added in v0.13.0
func (i IgnorePaths) ApplyToEqualObjectMatcher(opts *EqualObjectOptions)
ApplyToEqualObjectMatcher applies this configuration to the given MatchOptions.
type Komega ¶
type Komega interface { // Get returns a function that fetches a resource and returns the occurring error. // It can be used with gomega.Eventually() like this // deployment := appsv1.Deployment{ ... } // gomega.Eventually(k.Get(&deployment)).To(gomega.Succeed()) // By calling the returned function directly it can also be used with gomega.Expect(k.Get(...)()).To(...) Get(client.Object) func() error // List returns a function that lists resources and returns the occurring error. // It can be used with gomega.Eventually() like this // deployments := v1.DeploymentList{ ... } // gomega.Eventually(k.List(&deployments)).To(gomega.Succeed()) // By calling the returned function directly it can also be used as gomega.Expect(k.List(...)()).To(...) List(client.ObjectList, ...client.ListOption) func() error // Update returns a function that fetches a resource, applies the provided update function and then updates the resource. // It can be used with gomega.Eventually() like this: // deployment := appsv1.Deployment{ ... } // gomega.Eventually(k.Update(&deployment, func() { // deployment.Spec.Replicas = 3 // })).To(gomega.Succeed()) // By calling the returned function directly it can also be used as gomega.Expect(k.Update(...)()).To(...) Update(client.Object, func(), ...client.UpdateOption) func() error // UpdateStatus returns a function that fetches a resource, applies the provided update function and then updates the resource's status. // It can be used with gomega.Eventually() like this: // deployment := appsv1.Deployment{ ... } // gomega.Eventually(k.Update(&deployment, func() { // deployment.Status.AvailableReplicas = 1 // })).To(gomega.Succeed()) // By calling the returned function directly it can also be used as gomega.Expect(k.UpdateStatus(...)()).To(...) UpdateStatus(client.Object, func(), ...client.SubResourceUpdateOption) func() error // Object returns a function that fetches a resource and returns the object. // It can be used with gomega.Eventually() like this: // deployment := appsv1.Deployment{ ... } // gomega.Eventually(k.Object(&deployment)).To(HaveField("Spec.Replicas", gomega.Equal(ptr.To(int32(3))))) // By calling the returned function directly it can also be used as gomega.Expect(k.Object(...)()).To(...) Object(client.Object) func() (client.Object, error) // ObjectList returns a function that fetches a resource and returns the object. // It can be used with gomega.Eventually() like this: // deployments := appsv1.DeploymentList{ ... } // gomega.Eventually(k.ObjectList(&deployments)).To(HaveField("Items", HaveLen(1))) // By calling the returned function directly it can also be used as gomega.Expect(k.ObjectList(...)()).To(...) ObjectList(client.ObjectList, ...client.ListOption) func() (client.ObjectList, error) // WithContext returns a copy that uses the given context. WithContext(context.Context) Komega }
Komega is a collection of utilites for writing tests involving a mocked Kubernetes API.
type MatchPaths ¶ added in v0.13.0
type MatchPaths []string
MatchPaths instructs the Matcher to restrict its diff to the given paths. If empty the Matcher will look at all paths. Paths are written in a syntax similar to Go with a few special cases. Both types and json/yaml field names are supported.
Regular Paths: * "ObjectMeta.Name" * "metadata.name" Arrays: * "metadata.ownerReferences[0].name" Maps, if they do not contain any of .[]/\: * "metadata.labels.something" Maps, if they contain any of .[]/\: * "metadata.labels[kubernetes.io/something]"
func (MatchPaths) ApplyToEqualObjectMatcher ¶ added in v0.13.0
func (i MatchPaths) ApplyToEqualObjectMatcher(opts *EqualObjectOptions)
ApplyToEqualObjectMatcher applies this configuration to the given MatchOptions.