Documentation
¶
Index ¶
- Constants
- Variables
- func ClearInstanceFromError(err error) error
- func Create[T constraints.SupportedKonnectEntityType, TEnt constraints.EntityType[T]](ctx context.Context, sdk sdkops.SDKWrapper, cl client.Client, ...) (*T, error)
- func CreateKongDataPlaneClientCertificate(ctx context.Context, sdk sdkops.DataPlaneClientCertificatesSDK, ...) error
- func Delete[T constraints.SupportedKonnectEntityType, TEnt constraints.EntityType[T]](ctx context.Context, sdk sdkops.SDKWrapper, cl client.Client, ...) error
- func DeleteKongDataPlaneClientCertificate(ctx context.Context, sdk sdkops.DataPlaneClientCertificatesSDK, ...) error
- func ErrorIsConflictError(err error) bool
- func ErrorIsCreateConflict(err error) bool
- func ErrorIsSDKBadRequestError(err error) bool
- func ErrorIsSDKError400(err error) bool
- func ErrorIsSDKError403(err error) bool
- func GenerateTagsForObject(obj ObjectWithMetadata, additionalTags ...string) []string
- func GetControlPlaneByID(ctx context.Context, sdk sdkops.ControlPlaneSDK, id string) (*sdkkonnectcomp.ControlPlane, error)
- func IgnoreUnrecoverableAPIErr(err error, logger logr.Logger) error
- func ListKongDataPlaneClientCertificates(ctx context.Context, sdk sdkops.DataPlaneClientCertificatesSDK, cpID string) ([]sdkkonnectcomp.DataPlaneClientCertificate, error)
- func ParseSDKErrorBody(body string) (sdkErrorBody, error)
- func SDKErrorIsConflict(sdkError *sdkkonnecterrs.SDKError) bool
- func SetControlPlaneGroupMembersReferenceResolvedCondition(cpGroup *konnectv1alpha1.KonnectGatewayControlPlane)
- func SetControlPlaneGroupMembersReferenceResolvedConditionFalse(cpGroup *konnectv1alpha1.KonnectGatewayControlPlane, ...)
- func SetKonnectEntityMirroredConditionFalse(obj entityType, err error)
- func SetKonnectEntityMirroredConditionTrue(obj entityType)
- func SetKonnectEntityProgrammedConditionFalse(obj entityType, reason kcfgconsts.ConditionReason, err error)
- func SetKonnectEntityProgrammedConditionTrue(obj entityType)
- func UIDLabelForObject(obj client.Object) string
- func Update[T constraints.SupportedKonnectEntityType, TEnt constraints.EntityType[T]](ctx context.Context, sdk sdkops.SDKWrapper, syncPeriod time.Duration, ...) (ctrl.Result, error)
- func WithKubernetesMetadataLabels(obj ObjectWithMetadata, userSetLabels map[string]string) map[string]string
- type CantPerformOperationWithoutControlPlaneIDError
- type CantPerformOperationWithoutNetworkIDError
- type ControlPlaneGroupMemberNoKonnectIDError
- type CredentialBasicAuthSDK
- type EntityWithMatchingIDNotFoundError
- type EntityWithMatchingUIDNotFoundError
- type FailedKonnectOpError
- type GetControlPlaneGroupMemberFailedError
- type KonnectEntityCreatedButRelationsFailedError
- type MultipleEntitiesWithMatchingIDFoundError
- type ObjectWithMetadata
- type Op
Constants ¶
const ( // ControlPlaneGroupMembersReferenceResolvedConditionType sets the condition for control plane groups // to show whether all of its members are programmed and attached to the group. ControlPlaneGroupMembersReferenceResolvedConditionType = "MembersReferenceResolved" // ControlPlaneGroupMembersReferenceResolvedReasonResolved indicates that all members of the control plane group // are created and attached to the group in Konnect. ControlPlaneGroupMembersReferenceResolvedReasonResolved kcfgconsts.ConditionReason = "Resolved" // ControlPlaneGroupMembersReferenceResolvedReasonPartialNotResolved indicates that some members of the control plane group // are not resolved (not found or not created in Konnect). ControlPlaneGroupMembersReferenceResolvedReasonPartialNotResolved kcfgconsts.ConditionReason = "SomeMemberNotResolved" // ControlPlaneGroupMembersReferenceResolvedReasonFailedToSet indicates that error happened on setting control plane as // member of the control plane. ControlPlaneGroupMembersReferenceResolvedReasonFailedToSet kcfgconsts.ConditionReason = "SetGroupMemberFailed" )
const ( // KubernetesNamespaceLabelKey is the key for the Kubernetes namespace label. KubernetesNamespaceLabelKey = "k8s-namespace" // KubernetesNameLabelKey is the key for the Kubernetes name label. KubernetesNameLabelKey = "k8s-name" // KubernetesUIDLabelKey is the key for the Kubernetes UID label. KubernetesUIDLabelKey = "k8s-uid" // KubernetesGenerationLabelKey is the key for the Kubernetes generation label. KubernetesGenerationLabelKey = "k8s-generation" // KubernetesKindLabelKey is the key for the Kubernetes kind label. KubernetesKindLabelKey = "k8s-kind" // KubernetesGroupLabelKey is the key for the Kubernetes group label. KubernetesGroupLabelKey = "k8s-group" // KubernetesVersionLabelKey is the key for the Kubernetes version label. KubernetesVersionLabelKey = "k8s-version" )
Variables ¶
var ErrNilResponse = errors.New("nil response received")
ErrNilResponse is an error indicating that a Konnect operation returned an empty response. This can sometimes happen regardless of the err being nil.
Functions ¶
func ClearInstanceFromError ¶ added in v1.5.1
ClearInstanceFromError clears the instance field from the error. This is needed because the instance field contains the trace ID which changes with each request and makes the reconciliation loop requeue the resource instead of performing the backoff.
func Create ¶
func Create[ T constraints.SupportedKonnectEntityType, TEnt constraints.EntityType[T], ]( ctx context.Context, sdk sdkops.SDKWrapper, cl client.Client, metricRecorder metrics.Recorder, e TEnt, ) (*T, error)
Create creates a Konnect entity.
func CreateKongDataPlaneClientCertificate ¶ added in v1.5.0
func CreateKongDataPlaneClientCertificate( ctx context.Context, sdk sdkops.DataPlaneClientCertificatesSDK, cert *configurationv1alpha1.KongDataPlaneClientCertificate, ) error
CreateKongDataPlaneClientCertificate creates a KongDataPlaneClientCertificate in Konnect. It sets the KonnectID in the KongDataPlaneClientCertificate status.
func Delete ¶
func Delete[ T constraints.SupportedKonnectEntityType, TEnt constraints.EntityType[T], ](ctx context.Context, sdk sdkops.SDKWrapper, cl client.Client, metricRecorder metrics.Recorder, ent TEnt) error
Delete deletes a Konnect entity. It returns an error if the entity does not have a Konnect ID or if the operation fails.
func DeleteKongDataPlaneClientCertificate ¶ added in v1.5.0
func DeleteKongDataPlaneClientCertificate( ctx context.Context, sdk sdkops.DataPlaneClientCertificatesSDK, cert *configurationv1alpha1.KongDataPlaneClientCertificate, ) error
DeleteKongDataPlaneClientCertificate deletes a KongDataPlaneClientCertificate in Konnect. The KongDataPlaneClientCertificate must have a KonnectID set in its status. It returns an error if the operation fails.
func ErrorIsConflictError ¶ added in v1.6.0
ErrorIsConflictError returns true if the provided error is a 409 ConflictError. This can happen when the entity already exists. Example error body:
{ "status": 409, "title": "Conflict", "instance": "kong:trace:14893476519012495000", "detail": "Key (org_id, name)=(8a6e97b1-1111-1111-1111-111111111111, test1) already exists." }
func ErrorIsCreateConflict ¶
ErrorIsCreateConflict returns true if the provided error is a Konnect conflict error.
NOTE: Konnect APIs specific for Konnect only APIs like Gateway Control Planes return 409 conflict for already existing entities and return ConflictError. APIs that are shared with Kong Admin API return 400 for conflicts and return SDKError.
func ErrorIsSDKBadRequestError ¶
ErrorIsSDKBadRequestError returns true if the provided error is a BadRequestError.
func ErrorIsSDKError400 ¶ added in v1.5.0
ErrorIsSDKError400 returns true if the provided error is a 400 BadRequestError. This can happen when the requested entity fails the validation.
func ErrorIsSDKError403 ¶ added in v1.5.0
ErrorIsSDKError403 returns true if the provided error is a 403 Forbidden error. This can happen when the requested operation is not permitted. Example SDKError body (SDKError message is a separate field from body message):
{ "code": 7, "message": "usage constraint error", "details": [ { "@type": "type.googleapis.com/kong.admin.model.v1.ErrorDetail", "messages": [ "operation not permitted on KIC cluster" ] } ] }
func GenerateTagsForObject ¶
func GenerateTagsForObject(obj ObjectWithMetadata, additionalTags ...string) []string
GenerateTagsForObject generates tags for the given object based on its Kubernetes metadata and annotations. An optional set of tags can be passed to be included in the generated tags (e.g. tags from the spec). It returns a slice of unique, sorted strings for deterministic output.
func GetControlPlaneByID ¶ added in v1.5.0
func GetControlPlaneByID( ctx context.Context, sdk sdkops.ControlPlaneSDK, id string, ) (*sdkkonnectcomp.ControlPlane, error)
GetControlPlaneByID returns the Konnect ControlPlane that matches the provided ID.
func IgnoreUnrecoverableAPIErr ¶
IgnoreUnrecoverableAPIErr ignores unrecoverable errors that would cause the reconciler to endlessly requeue.
func ListKongDataPlaneClientCertificates ¶ added in v1.5.0
func ListKongDataPlaneClientCertificates( ctx context.Context, sdk sdkops.DataPlaneClientCertificatesSDK, cpID string, ) ([]sdkkonnectcomp.DataPlaneClientCertificate, error)
ListKongDataPlaneClientCertificates lists KongDataPlaneClientCertificates in Konnect. It returns an error if the operation fails.
func ParseSDKErrorBody ¶
ParseSDKErrorBody parses the body of an SDK error response. Exemplary body:
{ "code": 3, "message": "data constraint error", "details": [ { "@type": "type.googleapis.com/kong.admin.model.v1.ErrorDetail", "type": "ERROR_TYPE_REFERENCE", "field": "name", "messages": [ "name (type: unique) constraint failed" ] } ] }
func SDKErrorIsConflict ¶
func SDKErrorIsConflict(sdkError *sdkkonnecterrs.SDKError) bool
SDKErrorIsConflict returns true if the provided SDKError indicates a conflict. We currently handle two codes (as mapped in https://grpc.io/docs/guides/status-codes/#the-full-list-of-status-codes) from SDK error: - 3: INVALID_ARGUMENT - 6: ALREADY_EXISTS
Example error body:
{ "code": 3, "message": "name (type: unique) constraint failed", "details": [ { "@type": "type.googleapis.com/kong.admin.model.v1.ErrorDetail", "type": "ERROR_TYPE_REFERENCE", "field": "name", "messages": [ "name (type: unique) constraint failed" ] } ] }
func SetControlPlaneGroupMembersReferenceResolvedCondition ¶
func SetControlPlaneGroupMembersReferenceResolvedCondition( cpGroup *konnectv1alpha1.KonnectGatewayControlPlane, )
SetControlPlaneGroupMembersReferenceResolvedCondition sets MembersReferenceResolved condition of control plane to True.
func SetControlPlaneGroupMembersReferenceResolvedConditionFalse ¶
func SetControlPlaneGroupMembersReferenceResolvedConditionFalse( cpGroup *konnectv1alpha1.KonnectGatewayControlPlane, reason kcfgconsts.ConditionReason, msg string, )
SetControlPlaneGroupMembersReferenceResolvedConditionFalse sets MembersReferenceResolved condition of control plane to False.
func SetKonnectEntityMirroredConditionFalse ¶ added in v1.6.0
func SetKonnectEntityMirroredConditionFalse( obj entityType, err error, )
SetKonnectEntityMirroredConditionFalse sets the KonnectEntityMirrored condition to false on the provided object.
func SetKonnectEntityMirroredConditionTrue ¶ added in v1.6.0
func SetKonnectEntityMirroredConditionTrue( obj entityType, )
SetKonnectEntityMirroredConditionTrue sets the KonnectEntityMirrored condition to true on the provided object.
func SetKonnectEntityProgrammedConditionFalse ¶
func SetKonnectEntityProgrammedConditionFalse( obj entityType, reason kcfgconsts.ConditionReason, err error, )
SetKonnectEntityProgrammedConditionFalse sets the KonnectEntityProgrammed condition to false on the provided object.
func SetKonnectEntityProgrammedConditionTrue ¶ added in v1.6.0
func SetKonnectEntityProgrammedConditionTrue( obj entityType, )
SetKonnectEntityProgrammedConditionTrue sets the KonnectEntityProgrammed condition to true on the provided object.
func UIDLabelForObject ¶
UIDLabelForObject returns the Kubernetes UID label and provided object's UID separated by a semicolon.
func Update ¶
func Update[ T constraints.SupportedKonnectEntityType, TEnt constraints.EntityType[T], ]( ctx context.Context, sdk sdkops.SDKWrapper, syncPeriod time.Duration, cl client.Client, metricRecorder metrics.Recorder, e TEnt, ) (ctrl.Result, error)
Update updates a Konnect entity. It returns an error if the entity does not have a Konnect ID or if the operation fails.
func WithKubernetesMetadataLabels ¶
func WithKubernetesMetadataLabels(obj ObjectWithMetadata, userSetLabels map[string]string) map[string]string
WithKubernetesMetadataLabels returns a map of user-provided labels to be assigned to a Konnect entity with the origin Kubernetes object's metadata added. These can be assigned to a Konnect entity that supports labels (e.g. ControlPlane).
Types ¶
type CantPerformOperationWithoutControlPlaneIDError ¶
type CantPerformOperationWithoutControlPlaneIDError struct { Entity entity Op Op }
CantPerformOperationWithoutControlPlaneIDError is an error indicating that an operation cannot be performed without a ControlPlane ID.
func (CantPerformOperationWithoutControlPlaneIDError) Error ¶
func (e CantPerformOperationWithoutControlPlaneIDError) Error() string
Error implements the error interface.
type CantPerformOperationWithoutNetworkIDError ¶ added in v1.6.0
type CantPerformOperationWithoutNetworkIDError struct { Entity entity Op Op }
CantPerformOperationWithoutNetworkIDError is an error indicating that an operation cannot be performed without a Konnect network ID.
func (CantPerformOperationWithoutNetworkIDError) Error ¶ added in v1.6.0
func (e CantPerformOperationWithoutNetworkIDError) Error() string
type ControlPlaneGroupMemberNoKonnectIDError ¶
ControlPlaneGroupMemberNoKonnectIDError is an error type returned when member of control plane group does not have a Konnect ID.
func (ControlPlaneGroupMemberNoKonnectIDError) Error ¶
func (e ControlPlaneGroupMemberNoKonnectIDError) Error() string
Error implements the error interface.
type CredentialBasicAuthSDK ¶ added in v1.5.0
type CredentialBasicAuthSDK interface { CreateBasicAuthWithConsumer(ctx context.Context, req sdkkonnectops.CreateBasicAuthWithConsumerRequest, opts ...sdkkonnectops.Option) (*sdkkonnectops.CreateBasicAuthWithConsumerResponse, error) DeleteBasicAuthWithConsumer(ctx context.Context, request sdkkonnectops.DeleteBasicAuthWithConsumerRequest, opts ...sdkkonnectops.Option) (*sdkkonnectops.DeleteBasicAuthWithConsumerResponse, error) UpsertBasicAuthWithConsumer(ctx context.Context, request sdkkonnectops.UpsertBasicAuthWithConsumerRequest, opts ...sdkkonnectops.Option) (*sdkkonnectops.UpsertBasicAuthWithConsumerResponse, error) }
CredentialBasicAuthSDK is the interface for the Konnect CredentialBasicAuthSDK.
type EntityWithMatchingIDNotFoundError ¶ added in v1.5.0
type EntityWithMatchingIDNotFoundError struct {
ID string
}
EntityWithMatchingIDNotFoundError is an error indicating that an entity with the matching ID was not found on Konnect.
func (EntityWithMatchingIDNotFoundError) Error ¶ added in v1.5.0
func (e EntityWithMatchingIDNotFoundError) Error() string
Error implements the error interface.
type EntityWithMatchingUIDNotFoundError ¶
type EntityWithMatchingUIDNotFoundError struct {
Entity entity
}
EntityWithMatchingUIDNotFoundError is an error indicating that an entity with a matching UID was not found on Konnect.
func (EntityWithMatchingUIDNotFoundError) Error ¶
func (e EntityWithMatchingUIDNotFoundError) Error() string
Error implements the error interface.
type FailedKonnectOpError ¶
type FailedKonnectOpError[T constraints.SupportedKonnectEntityType] struct { Op Op Err error }
FailedKonnectOpError is an error type that is returned when an operation against Konnect API fails.
func (FailedKonnectOpError[T]) Error ¶
func (e FailedKonnectOpError[T]) Error() string
Error implements the error interface.
func (FailedKonnectOpError[T]) Unwrap ¶
func (e FailedKonnectOpError[T]) Unwrap() error
Unwrap returns the underlying error.
type GetControlPlaneGroupMemberFailedError ¶
GetControlPlaneGroupMemberFailedError is an error type returned when failed to get member of control plane group.
func (GetControlPlaneGroupMemberFailedError) Error ¶
func (e GetControlPlaneGroupMemberFailedError) Error() string
Error implements the error interface.
func (GetControlPlaneGroupMemberFailedError) Unwrap ¶
func (e GetControlPlaneGroupMemberFailedError) Unwrap() error
Unwrap returns the underlying error.
type KonnectEntityCreatedButRelationsFailedError ¶
type KonnectEntityCreatedButRelationsFailedError struct { KonnectID string Reason kcfgconsts.ConditionReason Err error }
KonnectEntityCreatedButRelationsFailedError is an error type that is returned when an entity is created successfully in Konnect (an ID is assigned) but subsequent operations to create relations to the entity fail.
func (KonnectEntityCreatedButRelationsFailedError) Error ¶
func (e KonnectEntityCreatedButRelationsFailedError) Error() string
Error implements the error interface.
type MultipleEntitiesWithMatchingIDFoundError ¶ added in v1.5.0
type MultipleEntitiesWithMatchingIDFoundError struct {
ID string
}
MultipleEntitiesWithMatchingIDFoundError is an error indicating that multiple entities with the same ID were found on Konnect.
func (MultipleEntitiesWithMatchingIDFoundError) Error ¶ added in v1.5.0
func (e MultipleEntitiesWithMatchingIDFoundError) Error() string
Error implements the error interface.
type ObjectWithMetadata ¶
type ObjectWithMetadata interface { metav1.Object GetObjectKind() schema.ObjectKind }
ObjectWithMetadata is an interface that accepts an object with Kubernetes metadata and object Kind information.
type Op ¶
type Op string
Op is the type for the operation type of a Konnect entity.
const ( // CreateOp is the operation type for creating a Konnect entity. CreateOp Op = "create" // GetOp is the operation type for getting a Konnect entity. GetOp Op = "get" // UpdateOp is the operation type for updating a Konnect entity. UpdateOp Op = "update" // DeleteOp is the operation type for deleting a Konnect entity. DeleteOp Op = "delete" )
Source Files
¶
- conditions.go
- credentialbasicauth.go
- errors.go
- objects_metadata.go
- ops.go
- ops_controlplane.go
- ops_credentialacl.go
- ops_credentialapikey.go
- ops_credentialbasicauth.go
- ops_credentialhmac.go
- ops_credentialjwt.go
- ops_errors.go
- ops_kongcacertificate.go
- ops_kongcertificate.go
- ops_kongconsumer.go
- ops_kongconsumergroup.go
- ops_kongdataplaneclientcertificate.go
- ops_kongkey.go
- ops_kongkeyset.go
- ops_kongpluginbinding.go
- ops_kongroute.go
- ops_kongservice.go
- ops_kongsni.go
- ops_kongtarget.go
- ops_kongupstream.go
- ops_kongvault.go
- ops_konnectdataplanegroupconfigurations.go
- ops_konnectnetwork.go
- ops_konnecttransitgateway.go