v1

package
v0.0.0-...-bcb8030 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the service binding v1 API group +kubebuilder:object:generate=true +groupName=servicebinding.io

Index

Constants

View Source
const (
	// ServiceBindingReady means the ServiceBinding has projected the ProvisionedService
	// secret and the Workload is ready to start. It does not indicate the condition
	// of either the Service or the Workload resources referenced.
	ServiceBindingConditionReady = "Ready"
)

These are valid conditions of ServiceBinding.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "servicebinding.io", Version: "v1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type ClusterWorkloadResourceMapping

type ClusterWorkloadResourceMapping struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec ClusterWorkloadResourceMappingSpec `json:"spec,omitempty"`
}

ClusterWorkloadResourceMapping is the Schema for the clusterworkloadresourcemappings API

type ClusterWorkloadResourceMappingContainer

type ClusterWorkloadResourceMappingContainer struct {
	// Path is the JSONPath within the workload resource that matches an existing fragment that is container-like.
	Path string `json:"path"`
	// Name is a Restricted JSONPath that references the name of the container with the container-like workload resource
	// fragment. If not defined, container name filtering is ignored.
	Name string `json:"name,omitempty"`
	// Env is a Restricted JSONPath that references the slice of environment variables for the container with the
	// container-like workload resource fragment. The referenced location is created if it does not exist. Defaults
	// to `.envs`.
	Env string `json:"env,omitempty"`
	// VolumeMounts is a Restricted JSONPath that references the slice of volume mounts for the container with the
	// container-like workload resource fragment. The referenced location is created if it does not exist. Defaults
	// to `.volumeMounts`.
	VolumeMounts string `json:"volumeMounts,omitempty"`
}

ClusterWorkloadResourceMappingContainer defines the mapping for a specific fragment of an workload resource to a Container-like structure.

Each mapping defines exactly one path that may match multiple container-like fragments within the workload resource. For each object matching the path the name, env and volumeMounts expressions are resolved to find those structures.

type ClusterWorkloadResourceMappingList

type ClusterWorkloadResourceMappingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ClusterWorkloadResourceMapping `json:"items"`
}

ClusterWorkloadResourceMappingList contains a list of ClusterWorkloadResourceMapping

type ClusterWorkloadResourceMappingSpec

type ClusterWorkloadResourceMappingSpec struct {
	// Versions is the collection of versions for a given resource, with mappings.
	Versions []ClusterWorkloadResourceMappingTemplate `json:"versions,omitempty"`
}

ClusterWorkloadResourceMappingSpec defines the desired state of ClusterWorkloadResourceMapping

type ClusterWorkloadResourceMappingTemplate

type ClusterWorkloadResourceMappingTemplate struct {
	// Version is the version of the workload resource that this mapping is for.
	Version string `json:"version"`
	// Annotations is a Restricted JSONPath that references the annotations map within the workload resource. These
	// annotations must end up in the resulting Pod, and are generally not the workload resource's annotations.
	// Defaults to `.spec.template.metadata.annotations`.
	Annotations string `json:"annotations,omitempty"`
	// Containers is the collection of mappings to container-like fragments of the workload resource. Defaults to
	// mappings appropriate for a PodSpecable resource.
	Containers []ClusterWorkloadResourceMappingContainer `json:"containers,omitempty"`
	// Volumes is a Restricted JSONPath that references the slice of volumes within the workload resource. Defaults to
	// `.spec.template.spec.volumes`.
	Volumes string `json:"volumes,omitempty"`
}

ClusterWorkloadResourceMappingTemplate defines the mapping for a specific version of an workload resource to a logical PodTemplateSpec-like structure.

type EnvMapping

type EnvMapping struct {
	// Name is the name of the environment variable
	Name string `json:"name"`
	// Key is the key in the Secret that will be exposed
	Key string `json:"key"`
}

EnvMapping defines a mapping from the value of a Secret entry to an environment variable

type ServiceBinding

type ServiceBinding struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ServiceBindingSpec   `json:"spec,omitempty"`
	Status ServiceBindingStatus `json:"status,omitempty"`
}

ServiceBinding is the Schema for the servicebindings API

type ServiceBindingList

type ServiceBindingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ServiceBinding `json:"items"`
}

ServiceBindingList contains a list of ServiceBinding

type ServiceBindingSecretReference

type ServiceBindingSecretReference struct {
	// Name of the referent secret.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
	Name string `json:"name"`
}

ServiceBindingSecretReference defines a mirror of corev1.LocalObjectReference

type ServiceBindingServiceReference

type ServiceBindingServiceReference struct {
	// API version of the referent.
	APIVersion string `json:"apiVersion"`
	// Kind of the referent.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind string `json:"kind"`
	// Name of the referent.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
	Name string `json:"name"`
}

ServiceBindingServiceReference defines a subset of corev1.ObjectReference

type ServiceBindingSpec

type ServiceBindingSpec struct {
	// Name is the name of the service as projected into the workload container.  Defaults to .metadata.name.
	Name string `json:"name,omitempty"`
	// Type is the type of the service as projected into the workload container
	Type string `json:"type,omitempty"`
	// Provider is the provider of the service as projected into the workload container
	Provider string `json:"provider,omitempty"`
	// Workload is a reference to an object
	Workload ServiceBindingWorkloadReference `json:"workload"`
	// Service is a reference to an object that fulfills the ProvisionedService duck type
	Service ServiceBindingServiceReference `json:"service"`
	// Env is the collection of mappings from Secret entries to environment variables
	Env []EnvMapping `json:"env,omitempty"`
}

ServiceBindingSpec defines the desired state of ServiceBinding

type ServiceBindingStatus

type ServiceBindingStatus struct {
	// ObservedGeneration is the 'Generation' of the ServiceBinding that
	// was last processed by the controller.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions are the conditions of this ServiceBinding
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// Binding exposes the projected secret for this ServiceBinding
	Binding *ServiceBindingSecretReference `json:"binding,omitempty"`
}

ServiceBindingStatus defines the observed state of ServiceBinding

type ServiceBindingWorkloadReference

type ServiceBindingWorkloadReference struct {
	// API version of the referent.
	APIVersion string `json:"apiVersion"`
	// Kind of the referent.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	Kind string `json:"kind"`
	// Name of the referent.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
	Name string `json:"name,omitempty"`
	// Selector is a query that selects the workload or workloads to bind the service to
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
	// Containers describes which containers in a Pod should be bound to
	Containers []string `json:"containers,omitempty"`
}

ServiceBindingWorkloadReference defines a subset of corev1.ObjectReference with extensions

Jump to

Keyboard shortcuts

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