Documentation ¶
Index ¶
- Constants
- func GetCredential(ctx context.Context, cfg *rest.Config) (string, error)
- func IndexFreightByQualifiedStages(ctx context.Context, mgr ctrl.Manager) error
- func IndexFreightByWarehouse(ctx context.Context, mgr ctrl.Manager) error
- func IndexNonTerminalPromotionsByStage(ctx context.Context, mgr ctrl.Manager) error
- func IndexPromotionPoliciesByStage(ctx context.Context, mgr ctrl.Manager) error
- func IndexPromotionsByStage(ctx context.Context, mgr ctrl.Manager, ...) error
- func IndexStagesByArgoCDApplications(ctx context.Context, mgr ctrl.Manager, shardName string) error
- func IndexStagesByUpstreamStages(ctx context.Context, mgr ctrl.Manager) error
- func PatchStatus[T HasStatus[S], S any](ctx context.Context, kubeClient client.Client, resource T, ...) error
- type HasStatus
Constants ¶
const ( StagesByArgoCDApplicationsIndexField = "applications" PromotionsByStageIndexField = "stage" NonTerminalPromotionsByStageIndexField = PromotionsByStageIndexField PromotionPoliciesByStageIndexField = "stage" FreightByWarehouseIndexField = "warehouse" FreightByQualifiedStagesIndexField = "qualifiedStages" StagesByUpstreamStagesIndexField = "upstreamStages" )
Variables ¶
This section is empty.
Functions ¶
func GetCredential ¶
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 IndexFreightByQualifiedStages ¶ added in v0.2.0
func IndexFreightByWarehouse ¶ added in v0.2.0
func IndexNonTerminalPromotionsByStage ¶
IndexNonTerminalPromotionsByStage indexes Promotions in non-terminal states by Stage
func IndexPromotionsByStage ¶
func IndexPromotionsByStage(ctx context.Context, mgr ctrl.Manager, predicates ...func(*kargoapi.Promotion) bool) error
IndexPromotionsByStage creates Promotion index by Stage for which all the given predicates returns true for the Promotion.