ops

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2025 License: Apache-2.0 Imports: 37 Imported by: 0

Documentation

Index

Constants

View Source
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"
)
View Source
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

View Source
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 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

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

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 ErrorIsCreateConflict

func ErrorIsCreateConflict(err error) bool

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

func ErrorIsSDKBadRequestError(err error) bool

ErrorIsSDKBadRequestError returns true if the provided error is a BadRequestError.

func ErrorIsSDKError400 added in v1.5.0

func ErrorIsSDKError400(err error) bool

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

func ErrorIsSDKError403(err error) bool

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)

GetControlPlaneByUID returns the Konnect ControlPlane that matches the provided ID.

func IgnoreUnrecoverableAPIErr

func IgnoreUnrecoverableAPIErr(err error, logger logr.Logger) error

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

func ParseSDKErrorBody(body string) (sdkErrorBody, error)

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

Exemplary 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 SetKonnectEntityProgrammedCondition

func SetKonnectEntityProgrammedCondition(
	obj entityType,
)

SetKonnectEntityProgrammedCondition sets the KonnectEntityProgrammed condition to true on the provided object.

func SetKonnectEntityProgrammedConditionFalse

func SetKonnectEntityProgrammedConditionFalse(
	obj entityType,
	reason kcfgconsts.ConditionReason,
	msg string,
)

SetKonnectEntityProgrammedConditionFalse sets the KonnectEntityProgrammed condition to false on the provided object.

func UIDLabelForObject

func UIDLabelForObject(obj client.Object) string

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

Error implements the error interface.

type ControlPlaneGroupMemberNoKonnectIDError

type ControlPlaneGroupMemberNoKonnectIDError struct {
	GroupName  string
	MemberName string
}

ControlPlaneGroupMemberNoKonnectIDError is an error type returned when member of control plane group does not have a Konnect ID.

func (ControlPlaneGroupMemberNoKonnectIDError) Error

Error implements the error interface.

type CredentialBasicAuthSDK added in v1.5.0

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

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

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

type GetControlPlaneGroupMemberFailedError struct {
	MemberName string
	Err        error
}

GetControlPlaneGroupMemberFailedError is an error type returned when failed to get member of control plane group.

func (GetControlPlaneGroupMemberFailedError) Error

Error implements the error interface.

func (GetControlPlaneGroupMemberFailedError) Unwrap

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

Error implements the error interface.

type MockCredentialBasicAuthSDK added in v1.5.0

type MockCredentialBasicAuthSDK struct {
	mock.Mock
}

MockCredentialBasicAuthSDK is an autogenerated mock type for the CredentialBasicAuthSDK type

func NewMockCredentialBasicAuthSDK added in v1.5.0

func NewMockCredentialBasicAuthSDK(t interface {
	mock.TestingT
	Cleanup(func())
}) *MockCredentialBasicAuthSDK

NewMockCredentialBasicAuthSDK creates a new instance of MockCredentialBasicAuthSDK. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. The first argument is typically a *testing.T value.

func (*MockCredentialBasicAuthSDK) CreateBasicAuthWithConsumer added in v1.5.0

CreateBasicAuthWithConsumer provides a mock function with given fields: ctx, req, opts

func (*MockCredentialBasicAuthSDK) DeleteBasicAuthWithConsumer added in v1.5.0

DeleteBasicAuthWithConsumer provides a mock function with given fields: ctx, request, opts

func (*MockCredentialBasicAuthSDK) EXPECT added in v1.5.0

func (*MockCredentialBasicAuthSDK) UpsertBasicAuthWithConsumer added in v1.5.0

UpsertBasicAuthWithConsumer provides a mock function with given fields: ctx, request, opts

type MockCredentialBasicAuthSDK_CreateBasicAuthWithConsumer_Call added in v1.5.0

type MockCredentialBasicAuthSDK_CreateBasicAuthWithConsumer_Call struct {
	*mock.Call
}

MockCredentialBasicAuthSDK_CreateBasicAuthWithConsumer_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateBasicAuthWithConsumer'

func (*MockCredentialBasicAuthSDK_CreateBasicAuthWithConsumer_Call) Return added in v1.5.0

func (*MockCredentialBasicAuthSDK_CreateBasicAuthWithConsumer_Call) Run added in v1.5.0

type MockCredentialBasicAuthSDK_DeleteBasicAuthWithConsumer_Call added in v1.5.0

type MockCredentialBasicAuthSDK_DeleteBasicAuthWithConsumer_Call struct {
	*mock.Call
}

MockCredentialBasicAuthSDK_DeleteBasicAuthWithConsumer_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeleteBasicAuthWithConsumer'

func (*MockCredentialBasicAuthSDK_DeleteBasicAuthWithConsumer_Call) Return added in v1.5.0

func (*MockCredentialBasicAuthSDK_DeleteBasicAuthWithConsumer_Call) Run added in v1.5.0

type MockCredentialBasicAuthSDK_Expecter added in v1.5.0

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

func (*MockCredentialBasicAuthSDK_Expecter) CreateBasicAuthWithConsumer added in v1.5.0

func (_e *MockCredentialBasicAuthSDK_Expecter) CreateBasicAuthWithConsumer(ctx interface{}, req interface{}, opts ...interface{}) *MockCredentialBasicAuthSDK_CreateBasicAuthWithConsumer_Call

CreateBasicAuthWithConsumer is a helper method to define mock.On call

  • ctx context.Context
  • req operations.CreateBasicAuthWithConsumerRequest
  • opts ...operations.Option

func (*MockCredentialBasicAuthSDK_Expecter) DeleteBasicAuthWithConsumer added in v1.5.0

func (_e *MockCredentialBasicAuthSDK_Expecter) DeleteBasicAuthWithConsumer(ctx interface{}, request interface{}, opts ...interface{}) *MockCredentialBasicAuthSDK_DeleteBasicAuthWithConsumer_Call

DeleteBasicAuthWithConsumer is a helper method to define mock.On call

  • ctx context.Context
  • request operations.DeleteBasicAuthWithConsumerRequest
  • opts ...operations.Option

func (*MockCredentialBasicAuthSDK_Expecter) UpsertBasicAuthWithConsumer added in v1.5.0

func (_e *MockCredentialBasicAuthSDK_Expecter) UpsertBasicAuthWithConsumer(ctx interface{}, request interface{}, opts ...interface{}) *MockCredentialBasicAuthSDK_UpsertBasicAuthWithConsumer_Call

UpsertBasicAuthWithConsumer is a helper method to define mock.On call

  • ctx context.Context
  • request operations.UpsertBasicAuthWithConsumerRequest
  • opts ...operations.Option

type MockCredentialBasicAuthSDK_UpsertBasicAuthWithConsumer_Call added in v1.5.0

type MockCredentialBasicAuthSDK_UpsertBasicAuthWithConsumer_Call struct {
	*mock.Call
}

MockCredentialBasicAuthSDK_UpsertBasicAuthWithConsumer_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpsertBasicAuthWithConsumer'

func (*MockCredentialBasicAuthSDK_UpsertBasicAuthWithConsumer_Call) Return added in v1.5.0

func (*MockCredentialBasicAuthSDK_UpsertBasicAuthWithConsumer_Call) Run added in v1.5.0

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

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"
)

type ServerURL

type ServerURL string

ServerURL is a type to represent a server URL.

func NewServerURL

func NewServerURL[T any](u string) ServerURL

NewServerURL creates a new ServerURL from a string. It accepts either a full URL or a hostname.

func (ServerURL) String

func (s ServerURL) String() string

String returns the string representation of the ServerURL.

Directories

Path Synopsis
sdk

Jump to

Keyboard shortcuts

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