dryrun

package
v1.7.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package dryrun implements clusterctl dryrun functionality.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChangeSummary

type ChangeSummary struct {
	// Created is the list of objects that are created during the dry run execution.
	Created []*unstructured.Unstructured

	// Modified is the list of summary of objects that are modified (Updated, Patched and/or deleted and re-created) during the dry run execution.
	Modified []*PatchSummary

	// Deleted is the list of objects that are deleted during the dry run execution.
	Deleted []*unstructured.Unstructured
}

ChangeSummary defines all the changes detected by the Dryrun execution. Nb. Only a single operation is reported for each object, flattening operations to show difference between the initial and final states.

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client implements a dry run Client, that is a fake.Client that logs write operations.

func NewClient

func NewClient(apiReader client.Reader, objs []client.Object) *Client

NewClient returns a new dry run Client. A dry run client mocks interactions with an api server using a fake internal object tracker. The objects passed will be used to initialize the fake internal object tracker when creating a new dry run client. If an apiReader client is passed the dry run client will use it as a fall back client for read operations (Get, List) when the objects are not found in the internal object tracker. Typically the apiReader passed would be a reader client to a real Kubernetes Cluster.

func (*Client) Changes

func (c *Client) Changes(ctx context.Context) (*ChangeSummary, error)

Changes generates a summary of all the changes observed from the creation of the dry run client to when this function is called.

func (*Client) Create

func (c *Client) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error

Create saves the object in the internal object tracker.

func (*Client) Delete

func (c *Client) Delete(ctx context.Context, obj client.Object, opts ...client.DeleteOption) error

Delete deletes the given obj from internal object tracker. Delete will not affect objects in the Kubernetes Cluster.

func (*Client) DeleteAllOf

func (c *Client) DeleteAllOf(_ context.Context, _ client.Object, _ ...client.DeleteAllOfOption) error

DeleteAllOf deletes all objects of the given type matching the given options. NOTE: Topology reconciler does not use DeleteAllOf, so we are skipping implementation for now.

func (*Client) Get

func (c *Client) Get(ctx context.Context, key client.ObjectKey, obj client.Object, opts ...client.GetOption) error

Get retrieves an object for the given object key from the internal object tracker. If the object does not exist in the internal object tracker it tries to fetch the object from the Kubernetes Cluster using the apiReader client (if apiReader is not nil).

func (*Client) GroupVersionKindFor added in v1.5.0

func (c *Client) GroupVersionKindFor(obj runtime.Object) (schema.GroupVersionKind, error)

GroupVersionKindFor returns the GroupVersionKind for the given object.

func (*Client) IsObjectNamespaced added in v1.5.0

func (c *Client) IsObjectNamespaced(obj runtime.Object) (bool, error)

IsObjectNamespaced returns true if the GroupVersionKind of the object is namespaced.

func (*Client) List

func (c *Client) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error

List retrieves list of objects for a given namespace and list options. List function returns the union of the lists from the internal object tracker and the Kubernetes Cluster. Nb. For objects that exist both in the internal object tracker and the Kubernetes Cluster, internal object tracker takes precedence.

func (*Client) Patch

func (c *Client) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.PatchOption) error

Patch patches the given obj in the internal object tracker. The patch operation will be tracked if the object does not exist in the internal object tracker but exists in the Kubernetes Cluster.

func (*Client) RESTMapper

func (c *Client) RESTMapper() meta.RESTMapper

RESTMapper returns the rest this client is using.

func (*Client) Scheme

func (c *Client) Scheme() *runtime.Scheme

Scheme returns the scheme this client is using.

func (*Client) Status

func (c *Client) Status() client.StatusWriter

Status returns a client which can update the status subresource for Kubernetes objects.

func (*Client) SubResource added in v1.4.0

func (c *Client) SubResource(subResource string) client.SubResourceClient

SubResource returns the sub resource this client is using.

func (*Client) Update

func (c *Client) Update(_ context.Context, _ client.Object, _ ...client.UpdateOption) error

Update updates the given obj in the internal object tracker. NOTE: Topology reconciler does not use update, so we are skipping implementation for now.

type PatchSummary

type PatchSummary struct {
	// Initial state of the object.
	Before *unstructured.Unstructured
	// Final state of the object.
	After *unstructured.Unstructured
}

PatchSummary defines the patch observed on an object.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL