kubeclient

package
v0.6.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: May 1, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EventsByInvolvedObjectAPIGroupIndexField = "involvedObject.apiGroup"

	FreightByVerifiedStagesIndexField     = "verifiedIn"
	FreightApprovedForStagesIndexField    = "approvedFor"
	FreightByWarehouseIndexField          = "warehouse"
	PromotionsByStageAndFreightIndexField = "stageAndFreight"

	// Note: These two do not conflict with one another, because these two
	// indices are used by different components.
	PromotionsByStageIndexField            = "stage"
	NonTerminalPromotionsByStageIndexField = "stage"

	RunningPromotionsByArgoCDApplicationsIndexField = "applications"

	PromotionPoliciesByStageIndexField   = "stage"
	StagesByAnalysisRunIndexField        = "analysisRun"
	StagesByArgoCDApplicationsIndexField = "applications"
	StagesByFreightIndexField            = "freight"
	StagesByUpstreamStagesIndexField     = "upstreamStages"
	StagesByWarehouseIndexField          = "warehouse"

	ServiceAccountsByOIDCEmailIndexField   = "email"
	ServiceAccountsByOIDCGroupIndexField   = "groups"
	ServiceAccountsByOIDCSubjectIndexField = "subjects"
)

Variables

This section is empty.

Functions

func GetCredential

func GetCredential(ctx context.Context, cfg *rest.Config) (string, error)

GetCredential implements a hacky method of gleaning the bearer token that is used for authentication to a given Kubernetes API server. It works by building an HTTP client using the provided *rest.Config as well as a custom http.RoundTripper. The custom http.RoundTripper copies the Authorization header from an outbound request to the X-Kargo-User-Credential header in the corresponding inbound response. This client is used to make a request to the Kubernetes API server and the value of the X-Kargo-User-Credential header is read from the response and returned.

Note: The reason the token isn't simply read directly from the *rest.Config is because that strategy would not account for cases where the bearer token is actually supplied by a credential plugin.

This method will not work when authentication to the Kubernetes API server is achieved using a client certificate, but that methods of authentication does not seem to be widely used beyond kind and k3d.

func IgnoreInvalid added in v0.6.0

func IgnoreInvalid(err error) error

IgnoreInvalid returns nil on Invalid errors. All other values that are not Invalid errors or nil are returned unmodified.

func IndexEventsByInvolvedObjectAPIGroup added in v0.6.0

func IndexEventsByInvolvedObjectAPIGroup(ctx context.Context, mgr ctrl.Manager) error

func IndexFreightByApprovedStages added in v0.3.0

func IndexFreightByApprovedStages(
	ctx context.Context,
	mgr ctrl.Manager,
) error

IndexFreightByApprovedStages indexes Freight by the Stages for which it has been (manually) approved.

func IndexFreightByVerifiedStages added in v0.3.0

func IndexFreightByVerifiedStages(
	ctx context.Context,
	mgr ctrl.Manager,
) error

IndexFreightByVerifiedStages indexes Freight by the Stages in which it has been verified.

func IndexFreightByWarehouse added in v0.2.0

func IndexFreightByWarehouse(ctx context.Context, mgr ctrl.Manager) error

func IndexNonTerminalPromotionsByStage

func IndexNonTerminalPromotionsByStage(ctx context.Context, mgr ctrl.Manager) error

IndexNonTerminalPromotionsByStage indexes Promotions in non-terminal states by Stage

func IndexPromotionsByStage

func IndexPromotionsByStage(ctx context.Context, mgr ctrl.Manager) error

IndexPromotionsByStage creates Promotion index by Stage for which all the given predicates returns true for the Promotion.

func IndexPromotionsByStageAndFreight added in v0.2.1

func IndexPromotionsByStageAndFreight(
	ctx context.Context,
	mgr ctrl.Manager,
) error

IndexPromotionsByStageAndFreight indexes Promotions by the Freight + Stage they reference.

func IndexRunningPromotionsByArgoCDApplications added in v0.6.0

func IndexRunningPromotionsByArgoCDApplications(
	ctx context.Context,
	mgr ctrl.Manager,
	shardName string,
) error

func IndexServiceAccountsByOIDCEmail added in v0.3.0

func IndexServiceAccountsByOIDCEmail(ctx context.Context, mgr ctrl.Manager) error

func IndexServiceAccountsByOIDCGroups added in v0.3.0

func IndexServiceAccountsByOIDCGroups(ctx context.Context, mgr ctrl.Manager) error

func IndexServiceAccountsByOIDCSubjects added in v0.3.0

func IndexServiceAccountsByOIDCSubjects(ctx context.Context, mgr ctrl.Manager) error

func IndexStagesByAnalysisRun added in v0.3.0

func IndexStagesByAnalysisRun(ctx context.Context, mgr ctrl.Manager, shardName string) error

func IndexStagesByArgoCDApplications

func IndexStagesByArgoCDApplications(ctx context.Context, mgr ctrl.Manager, shardName string) error

func IndexStagesByFreight added in v0.3.0

func IndexStagesByFreight(ctx context.Context, mgr ctrl.Manager) error

func IndexStagesByUpstreamStages added in v0.2.0

func IndexStagesByUpstreamStages(ctx context.Context, mgr ctrl.Manager) error

func IndexStagesByWarehouse added in v0.3.0

func IndexStagesByWarehouse(ctx context.Context, mgr ctrl.Manager) error

func PatchStatus

func PatchStatus[T HasStatus[S], S any](
	ctx context.Context, kubeClient client.Client, resource T, update func(status S)) error

PatchStatus patches evaluate changes applied by the callback to the status of a resource and patches resource status if there are any changes.

func StageAndFreightKey added in v0.2.1

func StageAndFreightKey(stage, freight string) string

Types

type HasStatus

type HasStatus[S any] interface {
	client.Object
	GetStatus() S
}

Jump to

Keyboard shortcuts

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