konnect

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: 58 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// IndexFieldKongCredentialACLReferencesKongConsumer is the index name for KongCredentialACL -> Consumer.
	IndexFieldKongCredentialACLReferencesKongConsumer = "kongCredentialsACLConsumerRef"
	// IndexFieldKongCredentialACLReferencesKongSecret is the index name for KongCredentialACL -> Secret.
	IndexFieldKongCredentialACLReferencesKongSecret = "kongCredentialsACLSecretRef"
)
View Source
const (
	// IndexFieldKongCredentialAPIKeyReferencesKongConsumer is the index name for KongCredentialAPIKey -> Consumer.
	IndexFieldKongCredentialAPIKeyReferencesKongConsumer = "kongCredentialsAPIKeyConsumerRef"
	// IndexFieldKongCredentialAPIKeyReferencesSecret is the index name for KongCredentialAPIKey -> Secret.
	IndexFieldKongCredentialAPIKeyReferencesSecret = "kongCredentialsAPIKeySecretRef"
)
View Source
const (
	// IndexFieldKongCredentialBasicAuthReferencesKongConsumer is the index name for KongCredentialBasicAuth -> Consumer.
	IndexFieldKongCredentialBasicAuthReferencesKongConsumer = "kongCredentialsBasicAuthConsumerRef"
	// IndexFieldKongCredentialBasicAuthReferencesSecret is the index name for KongCredentialBasicAuth -> Secret.
	IndexFieldKongCredentialBasicAuthReferencesSecret = "kongCredentialsBasicAuthSecretRef"
)
View Source
const (
	// IndexFieldKongCredentialHMACReferencesKongConsumer is the index name for KongCredentialHMAC -> Consumer.
	IndexFieldKongCredentialHMACReferencesKongConsumer = "kongCredentialsHMACConsumerRef"
	// IndexFieldKongCredentialHMACReferencesSecret is the index name for KongCredentialHMAC -> Secret.
	IndexFieldKongCredentialHMACReferencesSecret = "kongCredentialsHMACSecretRef"
)
View Source
const (
	// IndexFieldKongCredentialJWTReferencesKongConsumer is the index name for KongCredentialJWT -> Consumer.
	IndexFieldKongCredentialJWTReferencesKongConsumer = "kongCredentialsJWTConsumerRef"
	// IndexFieldKongCredentialAPIKeyReferencesSecret is the index name for KongCredentialJWT -> Secret.
	IndexFieldKongCredentialJWTReferencesSecret = "kongCredentialsJWTSecretRef"
)
View Source
const (
	// IndexFieldKongConsumerOnKongConsumerGroup is the index field for KongConsumer -> KongConsumerGroup.
	IndexFieldKongConsumerOnKongConsumerGroup = "consumerGroupRef"
	// IndexFieldKongConsumerOnPlugin is the index field for KongConsumer -> KongPlugin.
	IndexFieldKongConsumerOnPlugin = "consumerPluginRef"
	// IndexFieldKongConsumerOnKonnectGatewayControlPlane is the index field for KongConsumer -> KonnectGatewayControlPlane.
	IndexFieldKongConsumerOnKonnectGatewayControlPlane = "consumerKonnectGatewayControlPlaneRef"
	// IndexFieldKongConsumerReferencesSecrets is the index field for Consumer -> Secret.
	IndexFieldKongConsumerReferencesSecrets = "kongConsumerSecretRef"
)
View Source
const (
	// IndexFieldKongConsumerGroupOnPlugin is the index field for KongConsumerGroup -> KongPlugin.
	IndexFieldKongConsumerGroupOnPlugin = "consumerGroupPluginRef"
	// IndexFieldKongConsumerGroupOnKonnectGatewayControlPlane is the index field for KongConsumerGroup -> KonnectGatewayControlPlane.
	IndexFieldKongConsumerGroupOnKonnectGatewayControlPlane = "consumerGroupKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKongKeyOnKongKeySetReference is the index field for KongKey-> KongKeySet.
	IndexFieldKongKeyOnKongKeySetReference = "kongKeySetRef"

	// IndexFieldKongKeyOnKonnectGatewayControlPlane is the index field for KongKey -> KonnectGatewayControlPlane.
	IndexFieldKongKeyOnKonnectGatewayControlPlane = "kongKeyKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKongPluginBindingKongPluginReference is the index field for KongPluginBinding -> KongPlugin.
	IndexFieldKongPluginBindingKongPluginReference = "kongPluginBindingPluginRef"
	// IndexFieldKongPluginBindingKongServiceReference is the index field for KongPluginBinding -> KongService.
	IndexFieldKongPluginBindingKongServiceReference = "kongPluginBindingServiceRef"
	// IndexFieldKongPluginBindingKongRouteReference is the index field for KongPluginBinding -> KongRoute.
	IndexFieldKongPluginBindingKongRouteReference = "kongPluginBindingRouteRef"
	// IndexFieldKongPluginBindingKongConsumerReference is the index field for KongPluginBinding -> KongConsumer.
	IndexFieldKongPluginBindingKongConsumerReference = "kongPluginBindingConsumerRef"
	// IndexFieldKongPluginBindingKongConsumerGroupReference is the index field for KongPluginBinding -> KongConsumerGroup.
	IndexFieldKongPluginBindingKongConsumerGroupReference = "kongPluginBindingConsumerGroupRef"
	// IndexFieldKongPluginBindingKonnectGatewayControlPlane is the index field for KongPluginBinding -> KonnectGatewayControlPlane.
	IndexFieldKongPluginBindingKonnectGatewayControlPlane = "kongPluginBindingKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKongRouteOnReferencedPluginNames is the index field for KongRoute -> KongPlugin.
	IndexFieldKongRouteOnReferencedPluginNames = "kongRouteKongPluginRef"
	// IndexFieldKongRouteOnReferencedKongService is the index field for KongRoute -> KongService.
	IndexFieldKongRouteOnReferencedKongService = "kongRouteKongServiceRef"
)
View Source
const (
	// IndexFieldKongServiceOnReferencedPluginNames is the index field for KongService -> KongPlugin.
	IndexFieldKongServiceOnReferencedPluginNames = "kongServiceKongPluginRef"
	// IndexFieldKongServiceOnKonnectGatewayControlPlane is the index field for KongService -> KonnectGatewayControlPlane.
	IndexFieldKongServiceOnKonnectGatewayControlPlane = "kongServiceKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKonnectCloudGatewayDataPlaneGroupConfigurationOnAPIAuthConfiguration is the index field for KonnectCloudGatewayDataPlaneGroupConfiguration -> APIAuthConfiguration.
	IndexFieldKonnectCloudGatewayDataPlaneGroupConfigurationOnAPIAuthConfiguration = "konnectCloudGatewayDataPlaneGroupConfigurationAPIAuthConfigurationRef"
	// IndexFieldKonnectCloudGatewayDataPlaneGroupConfigurationOnKonnectGatewayControlPlane is the index field for KonnectCloudGatewayDataPlaneGroupConfiguration -> KonnectGatewayControlPlane.
	IndexFieldKonnectCloudGatewayDataPlaneGroupConfigurationOnKonnectGatewayControlPlane = "konnectCloudGatewayDataPlaneGroupConfigurationOnKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKonnectExtensionOnAPIAuthConfiguration is the index field for KonnectExtension -> APIAuthConfiguration.
	IndexFieldKonnectExtensionOnAPIAuthConfiguration = "konnectExtensionAPIAuthConfigurationRef"
	// IndexFieldKonnectExtensionOnSecrets is the index field for KonnectExtension -> Secret.
	IndexFieldKonnectExtensionOnSecrets = "konnectExtensionSecretRef"
	// IndexFieldKonnectExtensionOnKonnectGatewayControlPlane is the index field for KonnectExtension -> KonnectGatewayControlPlane.
	IndexFieldKonnectExtensionOnKonnectGatewayControlPlane = "konnectExtensionKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKonnectGatewayControlPlaneGroupOnMembers is the index field for KonnectGatewayControlPlane -> its members.
	IndexFieldKonnectGatewayControlPlaneGroupOnMembers = "konnectGatewayControlPlaneGroupMembers"

	// IndexFieldKonnectGatewayControlPlaneOnAPIAuthConfiguration is the index field for KonnectGatewayControlPlane -> APIAuthConfiguration.
	IndexFieldKonnectGatewayControlPlaneOnAPIAuthConfiguration = "konnectGatewayControlPlaneAPIAuthConfigurationRef"

	// IndexFieldKonnectGatewayControlPlaneOnKonnectID is the index field for KonnectGatewayControlPlane -> KonnectID.
	IndexFieldKonnectGatewayControlPlaneOnKonnectID = "konnectGatewayControlPlaneKonnectID"
)
View Source
const (
	// KongCredentialTypeBasicAuth is the type of basic-auth credential, it's used
	// as the value for konghq.com/credential label.
	KongCredentialTypeBasicAuth = "basic-auth"
	// KongCredentialTypeAPIKey is the type of api-key credential, it's used
	// as the value for konghq.com/credential label.
	KongCredentialTypeAPIKey = "key-auth"
	// KongCredentialTypeJWT is the type of jwt-auth credential.
	// It's used as the values of konghq.com/credential label.
	KongCredentialTypeJWT = "jwt"
	// KongCredentialTypeACL is the type of Access Control Lists(ACLs) managed similar as credentials.
	// It's used as the value for konghq.com/credential label.
	KongCredentialTypeACL = "acl"
	// KongCredentialTypeHMAC is the type of HMAC credential, it's used
	// as the value for konghq.com/credential label.
	KongCredentialTypeHMAC = "hmac"
)
View Source
const (
	// CredentialSecretKeyNameAPIKeyKey is the credential secret key name for API key type.
	CredentialSecretKeyNameAPIKeyKey = "key"
	// CredentialSecretKeyNameACLGroupKey is the credential secret key name for ACL group type.
	CredentialSecretKeyNameACLGroupKey = "group"
	// CredentialSecretKeyNameJwtAlgorithmKey is the credential secret key name for JWT algorithm.
	CredentialSecretKeyNameJwtAlgorithmKey = "algorithm"
	// CredentualSecretKeyNameJwtKeyKey is the credential secret key name for JWT key.
	CredentialSecretKeyNameJwtKeyKey = "key"
	// CredentialSecretKeyNameJwtRSAPublicKeyKey is the credential secret key name for JWT RSA public key.
	CredentialSecretKeyNameJwtRSAPublicKeyKey = "rsa_public_key" //nolint:gosec
	// CredentialSecretKeyNameJwtSecretKey is the credentail secret ley name for JWT secret.
	CredentialSecretKeyNameJwtSecretKey = "secret"
	// CredentialSecretKeyNameHMACUsername is the credential secret key name for HMAC username type.
	CredentialSecretKeyNameHMACUsername = "username"
	// CredentialSecretKeyNameHMACSecret is the credential secret key name for HMAC secret type.
	CredentialSecretKeyNameHMACSecret = "secret"
)
View Source
const (
	// SecretTokenKey is the key used to store the token in the Secret.
	SecretTokenKey = "token"
	// SecretCredentialLabel is the label used to identify Secrets holding
	// KonnectAPIAuthConfiguration tokens.
	SecretCredentialLabel = "konghq.com/credential" //nolint:gosec
	// SecretCredentialLabelValueKonnect is the value of the label used to
	// identify Secrets holding KonnectAPIAuthConfiguration tokens.
	SecretCredentialLabelValueKonnect = "konnect"
)
View Source
const (
	// CredentialTypeLabel is the label key for the credential type.
	CredentialTypeLabel = "konghq.com/credential" //nolint:gosec
)
View Source
const (
	// IndexFieldKongCACertificateOnKonnectGatewayControlPlane is the index field for KongCACertificate -> KonnectGatewayControlPlane.
	IndexFieldKongCACertificateOnKonnectGatewayControlPlane = "kongCACertificateKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKongCertificateOnKonnectGatewayControlPlane is the index field for KongCertificate -> KonnectGatewayControlPlane.
	IndexFieldKongCertificateOnKonnectGatewayControlPlane = "kongCertificateKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKongDataPlaneClientCertificateOnKonnectGatewayControlPlane is the index field for KongDataPlaneCertificate -> KonnectGatewayControlPlane.
	IndexFieldKongDataPlaneClientCertificateOnKonnectGatewayControlPlane = "dataPlaneCertificateKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKongKeySetOnKonnectGatewayControlPlane is the index field for KongKeySet -> KonnectGatewayControlPlane.
	IndexFieldKongKeySetOnKonnectGatewayControlPlane = "kongKeySetKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKongSNIOnCertificateRefNmae is the index field for KongSNI -> Certificate.
	IndexFieldKongSNIOnCertificateRefNmae = "kongSNICertificateRefName"
)
View Source
const (
	// IndexFieldKongTargetOnReferencedUpstream is the index field for KongTarget -> KongUpstream.
	IndexFieldKongTargetOnReferencedUpstream = "kongTargetUpstreamRef"
)
View Source
const (
	// IndexFieldKongUpstreamOnKonnectGatewayControlPlane is the index field for KongUpstream -> KonnectGatewayControlPlane.
	IndexFieldKongUpstreamOnKonnectGatewayControlPlane = "kongUpstreamKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKongVaultOnKonnectGatewayControlPlane is the index field for KongVault -> KonnectGatewayControlPlane.
	IndexFieldKongVaultOnKonnectGatewayControlPlane = "vaultKonnectGatewayControlPlaneRef"
)
View Source
const (
	// IndexFieldKonnectCloudGatewayNetworkOnAPIAuthConfiguration is the index field for KonnectCloudGatewayNetwork -> APIAuthConfiguration.
	IndexFieldKonnectCloudGatewayNetworkOnAPIAuthConfiguration = "konnectCloudGatewayNetworkAPIAuthConfigurationRef"
)
View Source
const (
	// KonnectCleanupFinalizer is the finalizer that is added to the Konnect
	// entities when they are created in Konnect, and which is removed when
	// the CR and Konnect entity are deleted.
	KonnectCleanupFinalizer = "gateway.konghq.com/konnect-cleanup"
)
View Source
const (
	// SecretKonnectDataPlaneCertificateLabel is the label to mark that the secret is used as a Konnect DP certificate.
	// A secret must have the label to be watched by the KonnectExtension reconciler.
	SecretKonnectDataPlaneCertificateLabel = "konghq.com/konnect-dp-cert" //nolint:gosec
)

Variables

This section is empty.

Functions

func KongCACertificateReconciliationWatchOptions

func KongCACertificateReconciliationWatchOptions(cl client.Client) []func(*ctrl.Builder) *ctrl.Builder

KongCACertificateReconciliationWatchOptions returns the watch options for the KongCACertificate.

func KongCertificateReconciliationWatchOptions

func KongCertificateReconciliationWatchOptions(cl client.Client) []func(*ctrl.Builder) *ctrl.Builder

KongCertificateReconciliationWatchOptions returns the watch options for the KongCertificate.

func KongConsumerGroupReconciliationWatchOptions

func KongConsumerGroupReconciliationWatchOptions(
	cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KongConsumerGroupReconciliationWatchOptions returns the watch options for the KongConsumerGroup.

func KongConsumerReconciliationWatchOptions

func KongConsumerReconciliationWatchOptions(
	cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KongConsumerReconciliationWatchOptions returns the watch options for the KongConsumer.

func KongDataPlaneClientCertificateReconciliationWatchOptions

func KongDataPlaneClientCertificateReconciliationWatchOptions(cl client.Client) []func(*ctrl.Builder) *ctrl.Builder

KongDataPlaneClientCertificateReconciliationWatchOptions returns the watch options for the KongDataPlaneClientCertificate.

func KongKeyReconciliationWatchOptions

func KongKeyReconciliationWatchOptions(cl client.Client) []func(*ctrl.Builder) *ctrl.Builder

KongKeyReconciliationWatchOptions returns the watch options for the KongKey.

func KongKeySetReconciliationWatchOptions

func KongKeySetReconciliationWatchOptions(cl client.Client) []func(*ctrl.Builder) *ctrl.Builder

KongKeySetReconciliationWatchOptions returns the watch options for the KongKeySet.

func KongPluginBindingReconciliationWatchOptions

func KongPluginBindingReconciliationWatchOptions(
	cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KongPluginBindingReconciliationWatchOptions returns the watch options for the KongPluginBinding.

func KongRouteReconciliationWatchOptions

func KongRouteReconciliationWatchOptions(
	cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KongRouteReconciliationWatchOptions returns the watch options for the KongRoute.

func KongSNIReconciliationWatchOptions

func KongSNIReconciliationWatchOptions(cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KongSNIReconciliationWatchOptions returns the watch options for the KongSNI.

func KongServiceReconciliationWatchOptions

func KongServiceReconciliationWatchOptions(
	cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KongServiceReconciliationWatchOptions returns the watch options for the KongService.

func KongTargetReconciliationWatchOptions

func KongTargetReconciliationWatchOptions(cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KongTargetReconciliationWatchOptions returns the watch options for the KongTarget.

func KongUpstreamReconciliationWatchOptions

func KongUpstreamReconciliationWatchOptions(
	cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KongUpstreamReconciliationWatchOptions returns the watch options for the KongUpstream.

func KongVaultReconciliationWatchOptions

func KongVaultReconciliationWatchOptions(cl client.Client) []func(*ctrl.Builder) *ctrl.Builder

KongVaultReconciliationWatchOptions returns the watch options for KongVault.

func KonnectCloudGatewayDataPlaneGroupConfigurationReconciliationWatchOptions added in v1.5.0

func KonnectCloudGatewayDataPlaneGroupConfigurationReconciliationWatchOptions(
	cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KonnectCloudGatewayDataPlaneGroupConfigurationReconciliationWatchOptions returns the watch options for the KonnectCloudGatewayDataPlaneGroupConfiguration.

func KonnectCloudGatewayNetworkReconciliationWatchOptions added in v1.5.0

func KonnectCloudGatewayNetworkReconciliationWatchOptions(
	cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KonnectCloudGatewayNetworkReconciliationWatchOptions returns the watch options for the KonnectCloudGatewayNetwork.

func KonnectGatewayControlPlaneReconciliationWatchOptions

func KonnectGatewayControlPlaneReconciliationWatchOptions(
	cl client.Client,
) []func(*ctrl.Builder) *ctrl.Builder

KonnectGatewayControlPlaneReconciliationWatchOptions returns the watch options for the KonnectGatewayControlPlane.

func ReconciliationWatchOptionsForEntity

func ReconciliationWatchOptionsForEntity[
	T constraints.SupportedKonnectEntityType,
	TEnt constraints.EntityType[T],
](
	cl client.Client,
	ent TEnt,
) []func(*ctrl.Builder) *ctrl.Builder

ReconciliationWatchOptionsForEntity returns the watch options for the given Konnect entity type.

func RemoveOwnerRefIfSet added in v1.5.0

func RemoveOwnerRefIfSet[
	T constraints.SupportedKonnectEntityType,
	TEnt constraints.EntityType[T],
	TOwner constraints.SupportedKonnectEntityType,
	TEntOwner constraints.EntityType[TOwner],
](
	ctx context.Context,
	cl client.Client,
	ent TEnt,
	owner TEntOwner,
) (ctrl.Result, error)

RemoveOwnerRefIfSet removes the owner reference from the given entity if it is set. It returns a requeue result if there was a conflict during the patch operation.

Such references may have been added by older versions of KGO (< 1.5). TODO: remove this after a couple of minor versions.

Types

type EntityWithControlPlaneRef

type EntityWithControlPlaneRef interface {
	SetControlPlaneID(string)
	GetControlPlaneID() string
}

EntityWithControlPlaneRef is an interface for entities that have a ControlPlaneRef.

type ForeignRelations

type ForeignRelations struct {
	Consumer      []configurationv1.KongConsumer
	ConsumerGroup []configurationv1beta1.KongConsumerGroup
	Route         []configurationv1alpha1.KongRoute
	Service       []configurationv1alpha1.KongService
}

ForeignRelations contains all the relations between Kong entities and KongPlugin.

func (*ForeignRelations) GetCombinations

func (relations *ForeignRelations) GetCombinations() []Rel

GetCombinations returns all possible combinations of relations.

NOTE: This is heavily based on the implementation in the Kong Ingress Controller: https://github.com/Kong/kubernetes-ingress-controller/blob/ee797b4e84bd176526af32ab6db54f16ee9c245b/internal/util/relations_test.go

TODO: https://github.com/Kong/gateway-operator/pull/659 The combinations created here should be reconsidered. Specifically the Service + Route combination which currently creates 2 separate relations targeting Service and Route independently. This most likely should create 2 relations targeting Service and Service+Route.

func (*ForeignRelations) GroupByControlPlane

func (relations *ForeignRelations) GroupByControlPlane(
	ctx context.Context,
	cl client.Client,
) (ForeignRelationsGroupedByControlPlane, error)

GroupByControlPlane groups all the entities by ControlPlane.

type ForeignRelationsGroupedByControlPlane

type ForeignRelationsGroupedByControlPlane map[types.NamespacedName]ForeignRelations

ForeignRelationsGroupedByControlPlane is a map of ForeignRelations grouped by ControlPlane.

func (ForeignRelationsGroupedByControlPlane) GetCombinations

GetCombinations returns all possible combinations of relations grouped by ControlPlane.

type KongCredentialSecretReconciler added in v1.5.0

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

KongCredentialSecretReconciler reconciles a KongPlugin object.

func NewKongCredentialSecretReconciler added in v1.5.0

func NewKongCredentialSecretReconciler(
	developmentMode bool,
	client client.Client,
	scheme *runtime.Scheme,
) *KongCredentialSecretReconciler

NewKongCredentialSecretReconciler creates a new KongCredentialSecretReconciler.

func (*KongCredentialSecretReconciler) Reconcile added in v1.5.0

Reconcile reconciles a Secrets that are used as Consumers credentials.

func (*KongCredentialSecretReconciler) SetupWithManager added in v1.5.0

func (r *KongCredentialSecretReconciler) SetupWithManager(_ context.Context, mgr ctrl.Manager) error

SetupWithManager sets up the controller with the Manager.

type KongPluginBindingBuilder

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

KongPluginBindingBuilder helps to build KongPluginBinding objects.

func NewKongPluginBindingBuilder

func NewKongPluginBindingBuilder() *KongPluginBindingBuilder

NewKongPluginBindingBuilder creates a new KongPluginBindingBuilder.

func (*KongPluginBindingBuilder) Build

Build returns the KongPluginBinding.

func (*KongPluginBindingBuilder) WithConsumerGroupTarget

func (b *KongPluginBindingBuilder) WithConsumerGroupTarget(cg string) *KongPluginBindingBuilder

WithConsumerGroupTarget sets the consumer group target of the KongPluginBinding.

func (*KongPluginBindingBuilder) WithConsumerTarget

func (b *KongPluginBindingBuilder) WithConsumerTarget(consumer string) *KongPluginBindingBuilder

WithConsumerTarget sets the consumer target of the KongPluginBinding.

func (*KongPluginBindingBuilder) WithControlPlaneRef

WithControlPlaneRef sets the control plane reference of the KongPluginBinding. NOTE: Users have to ensure that the ControlPlaneRef that's set here is the same across all the KongPluginBinding targets.

func (*KongPluginBindingBuilder) WithControlPlaneRefKonnectNamespaced

func (b *KongPluginBindingBuilder) WithControlPlaneRefKonnectNamespaced(name string) *KongPluginBindingBuilder

WithControlPlaneRefKonnectNamespaced sets the control plane reference of the KongPluginBinding. NOTE: Users have to ensure that the ControlPlaneRef that's set here is the same across all the KongPluginBinding targets.

func (*KongPluginBindingBuilder) WithGenerateName

func (b *KongPluginBindingBuilder) WithGenerateName(name string) *KongPluginBindingBuilder

WithGenerateName sets the generate name of the KongPluginBinding.

func (*KongPluginBindingBuilder) WithName

WithName sets the name of the KongPluginBinding.

func (*KongPluginBindingBuilder) WithNamespace

func (b *KongPluginBindingBuilder) WithNamespace(namespace string) *KongPluginBindingBuilder

WithNamespace sets the namespace of the KongPluginBinding.

func (*KongPluginBindingBuilder) WithOwnerReference

func (b *KongPluginBindingBuilder) WithOwnerReference(owner client.Object, scheme *runtime.Scheme) (*KongPluginBindingBuilder, error)

WithOwnerReference sets the owner reference of the KongPluginBinding.

func (*KongPluginBindingBuilder) WithPluginRef

func (b *KongPluginBindingBuilder) WithPluginRef(pluginName string) *KongPluginBindingBuilder

WithPluginRef sets the plugin reference of the KongPluginBinding.

func (*KongPluginBindingBuilder) WithRouteTarget

func (b *KongPluginBindingBuilder) WithRouteTarget(routeName string) *KongPluginBindingBuilder

WithRouteTarget sets the route target of the KongPluginBinding.

func (*KongPluginBindingBuilder) WithScope added in v1.5.0

WithScope sets the scope of the KongPluginBinding.

func (*KongPluginBindingBuilder) WithServiceTarget

func (b *KongPluginBindingBuilder) WithServiceTarget(serviceName string) *KongPluginBindingBuilder

WithServiceTarget sets the service target of the KongPluginBinding.

type KongPluginReconciler

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

KongPluginReconciler reconciles a KongPlugin object.

func NewKongPluginReconciler

func NewKongPluginReconciler(
	developmentMode bool,
	client client.Client,
) *KongPluginReconciler

NewKongPluginReconciler creates a new KongPluginReconciler.

func (*KongPluginReconciler) Reconcile

func (r *KongPluginReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)

Reconcile reconciles a KongPlugin object. The purpose of this reconciler is to handle annotations on Kong entities objects that reference KongPlugin objects. As a result of such annotations, KongPluginBinding objects are created and managed by the controller.

func (*KongPluginReconciler) SetupWithManager

func (r *KongPluginReconciler) SetupWithManager(_ context.Context, mgr ctrl.Manager) error

SetupWithManager sets up the controller with the Manager.

type KonnectAPIAuthConfigurationReconciler

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

KonnectAPIAuthConfigurationReconciler reconciles a KonnectAPIAuthConfiguration object.

func NewKonnectAPIAuthConfigurationReconciler

func NewKonnectAPIAuthConfigurationReconciler(
	sdkFactory sdkops.SDKFactory,
	developmentMode bool,
	client client.Client,
) *KonnectAPIAuthConfigurationReconciler

NewKonnectAPIAuthConfigurationReconciler creates a new KonnectAPIAuthConfigurationReconciler.

func (*KonnectAPIAuthConfigurationReconciler) Reconcile

Reconcile reconciles a KonnectAPIAuthConfiguration object.

func (*KonnectAPIAuthConfigurationReconciler) SetupWithManager

SetupWithManager sets up the controller with the Manager.

type KonnectEntityPluginBindingFinalizerReconciler

type KonnectEntityPluginBindingFinalizerReconciler[
	T constraints.SupportedKonnectEntityPluginReferenceableType,
	TEnt constraints.EntityType[T],
] struct {
	DevelopmentMode bool
	Client          client.Client
}

KonnectEntityPluginBindingFinalizerReconciler reconciles Konnect entities that may be referenced by KongPluginBinding. It uses the generic type constraints to constrain the supported types.

func NewKonnectEntityPluginReconciler

func NewKonnectEntityPluginReconciler[
	T constraints.SupportedKonnectEntityPluginReferenceableType,
	TEnt constraints.EntityType[T],
](
	developmentMode bool,
	client client.Client,
) *KonnectEntityPluginBindingFinalizerReconciler[T, TEnt]

NewKonnectEntityPluginReconciler returns a new KonnectEntityPluginReconciler for the given Konnect entity type.

func (*KonnectEntityPluginBindingFinalizerReconciler[T, TEnt]) Reconcile

Reconcile reconciles the Konnect entity that can be set as KongPluginBinding target. It reconciles only entities that are referenced by managed KongPluginBindings, i.e. those that are created by the controller out of konghq.com/plugins annotations.

Its purpose is to:

  • check if the entity is marked for deletion and mark KongPluginBindings that reference it.
  • add a finalizer to the entity if there are KongPluginBindings referencing it. This finalizer designates that this entity needs to have its KongPluginBindings removed upon deletion
  • remove the finalizer if all KongPluginBindings referencing it are removed.

func (*KonnectEntityPluginBindingFinalizerReconciler[T, TEnt]) SetupWithManager

func (r *KonnectEntityPluginBindingFinalizerReconciler[T, TEnt]) SetupWithManager(
	ctx context.Context, mgr ctrl.Manager,
) error

SetupWithManager sets up the controller with the given manager.

type KonnectEntityReconciler

type KonnectEntityReconciler[T constraints.SupportedKonnectEntityType, TEnt constraints.EntityType[T]] struct {
	DevelopmentMode         bool
	Client                  client.Client
	SyncPeriod              time.Duration
	MaxConcurrentReconciles uint

	MetricRecoder metrics.Recorder
	// contains filtered or unexported fields
}

KonnectEntityReconciler reconciles a Konnect entities. It uses the generic type constraints to constrain the supported types.

func NewKonnectEntityReconciler

func NewKonnectEntityReconciler[
	T constraints.SupportedKonnectEntityType,
	TEnt constraints.EntityType[T],
](
	sdkFactory sdkops.SDKFactory,
	developmentMode bool,
	client client.Client,
	opts ...KonnectEntityReconcilerOption[T, TEnt],
) *KonnectEntityReconciler[T, TEnt]

NewKonnectEntityReconciler returns a new KonnectEntityReconciler for the given Konnect entity type.

func (*KonnectEntityReconciler[T, TEnt]) Reconcile

func (r *KonnectEntityReconciler[T, TEnt]) Reconcile(
	ctx context.Context, req ctrl.Request,
) (ctrl.Result, error)

Reconcile reconciles the given Konnect entity.

func (*KonnectEntityReconciler[T, TEnt]) SetupWithManager

func (r *KonnectEntityReconciler[T, TEnt]) SetupWithManager(ctx context.Context, mgr ctrl.Manager) error

SetupWithManager sets up the controller with the given manager.

type KonnectEntityReconcilerOption

type KonnectEntityReconcilerOption[
	T constraints.SupportedKonnectEntityType,
	TEnt constraints.EntityType[T],
] func(*KonnectEntityReconciler[T, TEnt])

KonnectEntityReconcilerOption is a functional option for the KonnectEntityReconciler.

func WithKonnectEntitySyncPeriod

func WithKonnectEntitySyncPeriod[T constraints.SupportedKonnectEntityType, TEnt constraints.EntityType[T]](
	d time.Duration,
) KonnectEntityReconcilerOption[T, TEnt]

WithKonnectEntitySyncPeriod sets the sync period for the reconciler.

func WithKonnectMaxConcurrentReconciles

func WithKonnectMaxConcurrentReconciles[T constraints.SupportedKonnectEntityType, TEnt constraints.EntityType[T]](
	maxConcurrent uint,
) KonnectEntityReconcilerOption[T, TEnt]

WithKonnectMaxConcurrentReconciles sets the max concurrent reconciles for the reconciler.

func WithMetricRecorder added in v1.5.0

func WithMetricRecorder[T constraints.SupportedKonnectEntityType, TEnt constraints.EntityType[T]](
	metricRecorder metrics.Recorder,
) KonnectEntityReconcilerOption[T, TEnt]

WithMetricRecoder sets the metric recorder to record metrics of Konnect entity operations of the reconciler.

type KonnectExtensionReconciler added in v1.5.0

type KonnectExtensionReconciler struct {
	client.Client
	DevelopmentMode          bool
	SdkFactory               sdkops.SDKFactory
	SyncPeriod               time.Duration
	ClusterCASecretName      string
	ClusterCASecretNamespace string
	ClusterCAKeyConfig       secrets.KeyConfig
}

KonnectExtensionReconciler reconciles a KonnectExtension object.

func (*KonnectExtensionReconciler) Reconcile added in v1.5.0

Reconcile reconciles a KonnectExtension object.

func (*KonnectExtensionReconciler) SetupWithManager added in v1.5.0

func (r *KonnectExtensionReconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager) error

SetupWithManager sets up the controller with the Manager.

type ReconciliationIndexOption

type ReconciliationIndexOption struct {
	IndexObject  client.Object
	IndexField   string
	ExtractValue client.IndexerFunc
}

ReconciliationIndexOption contains required options of index for a kind of object required for reconciliation.

func IndexOptionsForCredentialsACL

func IndexOptionsForCredentialsACL() []ReconciliationIndexOption

IndexOptionsForCredentialsACL returns required Index options for KongCredentialACL.

func IndexOptionsForCredentialsAPIKey

func IndexOptionsForCredentialsAPIKey() []ReconciliationIndexOption

IndexOptionsForCredentialsAPIKey returns required Index options for KongCredentialAPIKey.

func IndexOptionsForCredentialsBasicAuth

func IndexOptionsForCredentialsBasicAuth() []ReconciliationIndexOption

IndexOptionsForCredentialsBasicAuth returns required Index options for KongCredentialBasicAuth.

func IndexOptionsForCredentialsHMAC

func IndexOptionsForCredentialsHMAC() []ReconciliationIndexOption

IndexOptionsForCredentialsHMAC returns required Index options for KongCredentialHMAC.

func IndexOptionsForCredentialsJWT

func IndexOptionsForCredentialsJWT() []ReconciliationIndexOption

IndexOptionsForCredentialsJWT returns required Index options for KongCredentialJWT.

func IndexOptionsForKongCACertificate

func IndexOptionsForKongCACertificate(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKongCACertificate returns required Index options for KongCACertificate reconclier.

func IndexOptionsForKongCertificate

func IndexOptionsForKongCertificate(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKongCertificate returns required Index options for KongCertificate reconclier.

func IndexOptionsForKongConsumer

func IndexOptionsForKongConsumer(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKongConsumer returns required Index options for KongConsumer reconciler.

func IndexOptionsForKongConsumerGroup

func IndexOptionsForKongConsumerGroup(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKongConsumerGroup returns required Index options for KongConsumerGroup reconciler.

func IndexOptionsForKongDataPlaneCertificate

func IndexOptionsForKongDataPlaneCertificate(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKongDataPlaneCertificate returns required Index options for KongConsumer reconciler.

func IndexOptionsForKongKey

func IndexOptionsForKongKey(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKongKey returns required Index options for KongKey reconclier.

func IndexOptionsForKongKeySet

func IndexOptionsForKongKeySet(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKongKeySet returns required Index options for KongKeySet reconclier.

func IndexOptionsForKongPluginBinding

func IndexOptionsForKongPluginBinding() []ReconciliationIndexOption

IndexOptionsForKongPluginBinding returns required Index options for KongPluginBinding reconclier.

func IndexOptionsForKongRoute

func IndexOptionsForKongRoute() []ReconciliationIndexOption

IndexOptionsForKongRoute returns required Index options for KongRoute reconciler.

func IndexOptionsForKongSNI

func IndexOptionsForKongSNI() []ReconciliationIndexOption

IndexOptionsForKongSNI returns required Index options for KongSNI reconciler.

func IndexOptionsForKongService

func IndexOptionsForKongService(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKongService returns required Index options for KongService reconciler.

func IndexOptionsForKongTarget

func IndexOptionsForKongTarget() []ReconciliationIndexOption

IndexOptionsForKongTarget returns required Index options for KongTarget reconciler.

func IndexOptionsForKongUpstream

func IndexOptionsForKongUpstream(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKongUpstream returns required Index options for KongUpstream reconciler.

func IndexOptionsForKongVault

func IndexOptionsForKongVault(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKongVault returns required Index options for KongVault reconciler.

func IndexOptionsForKonnectCloudGatewayDataPlaneGroupConfiguration added in v1.5.0

func IndexOptionsForKonnectCloudGatewayDataPlaneGroupConfiguration(cl client.Client) []ReconciliationIndexOption

IndexOptionsForKonnectCloudGatewayDataPlaneGroupConfiguration returns required Index options for KonnectCloudGatewayDataPlaneGroupConfiguration reconciler.

func IndexOptionsForKonnectCloudGatewayNetwork added in v1.5.0

func IndexOptionsForKonnectCloudGatewayNetwork() []ReconciliationIndexOption

IndexOptionsForKonnectCloudGatewayNetwork returns required Index options for KonnectCloudGatewayNetwork reconciler.

func IndexOptionsForKonnectExtension added in v1.5.0

func IndexOptionsForKonnectExtension() []ReconciliationIndexOption

IndexOptionsForKonnectExtension returns required Index options for KonnectExtension reconciler.

func IndexOptionsForKonnectGatewayControlPlane

func IndexOptionsForKonnectGatewayControlPlane() []ReconciliationIndexOption

IndexOptionsForKonnectGatewayControlPlane returns required Index options for KonnectGatewayControlPlane reconciler.

type ReferencedControlPlaneDoesNotExistError

type ReferencedControlPlaneDoesNotExistError struct {
	Reference commonv1alpha1.ControlPlaneRef
	Err       error
}

ReferencedControlPlaneDoesNotExistError is an error type that is returned when a Konnect entity references a KonnectGatewayControlPlane that does not exist.

func (ReferencedControlPlaneDoesNotExistError) Error

Error implements the error interface.

func (ReferencedControlPlaneDoesNotExistError) Unwrap

Unwrap returns the underlying error.

type ReferencedKongCertificateDoesNotExist

type ReferencedKongCertificateDoesNotExist struct {
	Reference types.NamespacedName
	Err       error
}

ReferencedKongCertificateDoesNotExist is an error type that is returned when a Konnect entity references a Kong Certificate which does not exist.

func (ReferencedKongCertificateDoesNotExist) Error

Error implements the error interface.

type ReferencedKongCertificateIsBeingDeleted

type ReferencedKongCertificateIsBeingDeleted struct {
	Reference         types.NamespacedName
	DeletionTimestamp time.Time
}

ReferencedKongCertificateIsBeingDeleted is an error type that is returned when a Konnect entity references a Kong Certificate which is being deleted.

func (ReferencedKongCertificateIsBeingDeleted) Error

Error implements the error interface.

type ReferencedKongConsumerDoesNotExist

type ReferencedKongConsumerDoesNotExist struct {
	Reference types.NamespacedName
	Err       error
}

ReferencedKongConsumerDoesNotExist is an error type that is returned when the referenced KongConsumer does not exist.

func (ReferencedKongConsumerDoesNotExist) Error

Error implements the error interface.

type ReferencedKongConsumerIsBeingDeleted

type ReferencedKongConsumerIsBeingDeleted struct {
	Reference         types.NamespacedName
	DeletionTimestamp time.Time
}

ReferencedKongConsumerIsBeingDeleted is an error type that is returned when a Konnect entity references a Kong Consumer which is being deleted.

func (ReferencedKongConsumerIsBeingDeleted) Error

Error implements the error interface.

type ReferencedKongGatewayControlPlaneIsUnsupported added in v1.5.0

type ReferencedKongGatewayControlPlaneIsUnsupported struct {
	Reference commonv1alpha1.ControlPlaneRef
}

ReferencedKongGatewayControlPlaneIsUnsupported is an error type that is returned when a given CP reference type is not supported.

func (ReferencedKongGatewayControlPlaneIsUnsupported) Error added in v1.5.0

type ReferencedKongKeySetDoesNotExist

type ReferencedKongKeySetDoesNotExist struct {
	Reference types.NamespacedName
	Err       error
}

ReferencedKongKeySetDoesNotExist is an error type that is returned when a Konnect entity references a KongKeySet which does not exist.

func (ReferencedKongKeySetDoesNotExist) Error

Error implements the error interface.

type ReferencedKongKeySetIsBeingDeleted

type ReferencedKongKeySetIsBeingDeleted struct {
	Reference         types.NamespacedName
	DeletionTimestamp time.Time
}

ReferencedKongKeySetIsBeingDeleted is an error type that is returned when a Konnect entity references a KongKeySet which is being deleted.

func (ReferencedKongKeySetIsBeingDeleted) Error

Error implements the error interface.

type ReferencedKongServiceIsBeingDeleted

type ReferencedKongServiceIsBeingDeleted struct {
	Reference types.NamespacedName
}

ReferencedKongServiceIsBeingDeleted is an error type that is returned when a Konnect entity references a Kong Service which is being deleted.

func (ReferencedKongServiceIsBeingDeleted) Error

Error implements the error interface.

type ReferencedKongUpstreamDoesNotExist

type ReferencedKongUpstreamDoesNotExist struct {
	Reference types.NamespacedName
	Err       error
}

ReferencedKongUpstreamDoesNotExist is an error type that is returned when a Konnect entity references a Kong Upstream which does not exist.

func (ReferencedKongUpstreamDoesNotExist) Error

Error implements the error interface.

type ReferencedKongUpstreamIsBeingDeleted

type ReferencedKongUpstreamIsBeingDeleted struct {
	Reference         types.NamespacedName
	DeletionTimestamp time.Time
}

ReferencedKongUpstreamIsBeingDeleted is an error type that is returned when a Konnect entity references a Kong Upstream which is being deleted.

func (ReferencedKongUpstreamIsBeingDeleted) Error

Error implements the error interface.

type Rel

type Rel struct {
	Consumer, ConsumerGroup, Route, Service string
}

Rel represents a relation between Kong entities and KongPlugin.

Source Files

Directories

Path Synopsis
ops
sdk

Jump to

Keyboard shortcuts

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