Documentation ¶
Index ¶
- func GetCredentials(ctx context.Context, client client.Client, secretRef *v1.ObjectReference, ...) (*google.Credentials, error)
- func SetInternalStatus(ctx context.Context, c *eventingv1alpha1.Channel, pcs *GcpPubSubChannelStatus) error
- type GcpPubSubChannelStatus
- type GcpPubSubSubscriptionStatus
- type PubSubClient
- type PubSubClientCreator
- type PubSubMessage
- type PubSubPublishResult
- type PubSubSubscription
- type PubSubTopic
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetCredentials ¶
func GetCredentials(ctx context.Context, client client.Client, secretRef *v1.ObjectReference, key string) (*google.Credentials, error)
GetCredentials gets GCP credentials from a secretRef. The credentials must be stored in JSON format in the secretRef.
func SetInternalStatus ¶
func SetInternalStatus(ctx context.Context, c *eventingv1alpha1.Channel, pcs *GcpPubSubChannelStatus) error
SetInternalStatus saves GcpPubSubChannelStatus to the given Channel, which should only be one whose provisioner is gcp-pubsub.
Types ¶
type GcpPubSubChannelStatus ¶
type GcpPubSubChannelStatus struct { // Secret is the Secret that contains the credential to use. Secret *corev1.ObjectReference `json:"secret"` // SecretKey is the key in Secret that contains the credential to use. SecretKey string `json:"secretKey"` // GCPProject is the GCP project where the Topic and Subscription exist. GCPProject string `json:"gcpProject"` // Topic is the name of the PubSub Topic created in GCP to represent this Channel. Topic string `json:"topic,omitempty"` // Subscriptions is the list of Knative Eventing Subscriptions to this Channel, each paired with // the PubSub Subscription in GCP that represents it. // +patchMergeKey=uid // +patchStrategy=merge Subscriptions []GcpPubSubSubscriptionStatus `json:"subscriptions,omitempty" patchStrategy:"merge" patchMergeKey:"uid"` }
GcpPubSubChannelStatus is the struct saved to Channel's status.internal if the Channel's provisioner is gcp-pubsub. It is used to send data to the dispatcher from the controller.
func GetInternalStatus ¶
func GetInternalStatus(c *eventingv1alpha1.Channel) (*GcpPubSubChannelStatus, error)
GetInternalStatus reads GcpPubSubChannelStatus from the given Channel, which should only be one whose provisioner is gcp-pubsub. If the internal status is not set, then the empty GcpPubSubChannelStatus is returned.
func (*GcpPubSubChannelStatus) IsEmpty ¶
func (pcs *GcpPubSubChannelStatus) IsEmpty() bool
IsEmpty determines if this GcpPubSubChannelStatus is equivalent to &GcpPubSubChannelStatus{}. It exists because slices are not compared by golang's ==.
type GcpPubSubSubscriptionStatus ¶
type GcpPubSubSubscriptionStatus struct { v1alpha1.SubscriberSpec // Subscription is the name of the PubSub Subscription resource in GCP that represents this // Knative Eventing Subscription. Subscription string `json:"subscription,omitempty"` }
GcpPubSubSubscriptionStatus represents the saved status of a gcp-pubsub Channel.
type PubSubClient ¶
type PubSubClient interface { SubscriptionInProject(id, projectId string) PubSubSubscription CreateSubscription(ctx context.Context, id string, topic PubSubTopic) (PubSubSubscription, error) Topic(id string) PubSubTopic CreateTopic(ctx context.Context, id string) (PubSubTopic, error) }
PubSubClient is the set of methods we use on pubsub.Client. See pubsub.Client for documentation of the functions.
func GcpPubSubClientCreator ¶
func GcpPubSubClientCreator(ctx context.Context, creds *google.Credentials, googleCloudProject string) (PubSubClient, error)
GcpPubSubClientCreator creates a real GCP PubSub client. It should always be used, except during unit tests.
type PubSubClientCreator ¶
type PubSubClientCreator func(ctx context.Context, creds *google.Credentials, googleCloudProject string) (PubSubClient, error)
PubSubClientCreator creates a pubSubClient.
type PubSubMessage ¶
type PubSubMessage interface { ID() string Data() []byte Attributes() map[string]string Ack() Nack() }
PubSubMessage is the set of methods we use on pubsub.Message. It exists to make PubSubClient unit testable. See pubsub.Message for documentation of the functions.
type PubSubPublishResult ¶
type PubSubPublishResult interface { Ready() <-chan struct{} Get(ctx context.Context) (serverID string, err error) }
PubSubPublishResult is the set of methods we use on pubsub.PublishResult. It exists to make PubSubClient unit testable. See pubsub.PublishResult for documentation of any functions.
type PubSubSubscription ¶
type PubSubSubscription interface { Exists(ctx context.Context) (bool, error) ID() string Delete(ctx context.Context) error Receive(ctx context.Context, f func(context.Context, PubSubMessage)) error }
PubSubSubscription is the set of methods we use on pubsub.Subscription. It exists to make PubSubClient unit testable. See pubsub.Subscription for documentation of the functions.
type PubSubTopic ¶
type PubSubTopic interface { Exists(ctx context.Context) (bool, error) ID() string Delete(ctx context.Context) error Publish(ctx context.Context, msg *pubsub.Message) PubSubPublishResult Stop() }
PubSubTopic is the set of methods we use on pubsub.Topic. It exists to make PubSubClient unit testable. See pubsub.Topic for documentation of the functions.