Documentation ¶
Index ¶
- Constants
- func GetCredential(ctx context.Context, cfg *rest.Config) (string, error)
- func IndexFreightByApprovedStages(ctx context.Context, mgr ctrl.Manager) error
- func IndexFreightByVerifiedStages(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 IndexPromotionsByStage(ctx context.Context, mgr ctrl.Manager) error
- func IndexPromotionsByStageAndFreight(ctx context.Context, mgr ctrl.Manager) error
- func IndexServiceAccountsByOIDCEmail(ctx context.Context, mgr ctrl.Manager) error
- func IndexServiceAccountsByOIDCGroups(ctx context.Context, mgr ctrl.Manager) error
- func IndexServiceAccountsByOIDCSubjects(ctx context.Context, mgr ctrl.Manager) error
- func IndexStagesByAnalysisRun(ctx context.Context, mgr ctrl.Manager, shardName string) error
- func IndexStagesByArgoCDApplications(ctx context.Context, mgr ctrl.Manager, shardName string) error
- func IndexStagesByFreight(ctx context.Context, mgr ctrl.Manager) error
- func IndexStagesByUpstreamStages(ctx context.Context, mgr ctrl.Manager) error
- func IndexStagesByWarehouse(ctx context.Context, mgr ctrl.Manager) error
- func PatchStatus[T HasStatus[S], S any](ctx context.Context, kubeClient client.Client, resource T, ...) error
- func StageAndFreightKey(stage, freight string) string
- type HasStatus
Constants ¶
const ( 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" 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 ¶
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 IndexFreightByApprovedStages ¶ added in v0.3.0
IndexFreightByApprovedStages indexes Freight by the Stages for which it has been (manually) approved.
func IndexFreightByVerifiedStages ¶ added in v0.3.0
IndexFreightByVerifiedStages indexes Freight by the Stages in which it has been verified.
func IndexFreightByWarehouse ¶ added in v0.2.0
func IndexNonTerminalPromotionsByStage ¶
IndexNonTerminalPromotionsByStage indexes Promotions in non-terminal states by Stage
func IndexPromotionsByStage ¶
IndexPromotionsByStage creates Promotion index by Stage for which all the given predicates returns true for the Promotion.
func IndexPromotionsByStageAndFreight ¶ added in v0.2.1
IndexPromotionsByStageAndFreight indexes Promotions by the Freight + Stage they reference.
func IndexServiceAccountsByOIDCEmail ¶ added in v0.3.0
func IndexServiceAccountsByOIDCGroups ¶ added in v0.3.0
func IndexServiceAccountsByOIDCSubjects ¶ added in v0.3.0
func IndexStagesByAnalysisRun ¶ added in v0.3.0
func IndexStagesByFreight ¶ added in v0.3.0
func IndexStagesByUpstreamStages ¶ added in v0.2.0
func IndexStagesByWarehouse ¶ added in v0.3.0
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.