v1alpha1

package
v0.3.0 Latest Latest
Warning

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

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

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the observability v1alpha1 API group +kubebuilder:object:generate=true +groupName=observability.aggregator.io

Index

Constants

This section is empty.

Variables

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

	// 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 APIInfo

type APIInfo struct {
	// Name is the name of the API (usually same as deployment name)
	Name string `json:"name"`

	// URL is the full URL where the OpenAPI spec can be accessed
	URL string `json:"url"`

	// LastUpdated is when the spec was last successfully collected
	LastUpdated string `json:"lastUpdated"`

	// Error is set if there was an error collecting the spec
	Error string `json:"error,omitempty"`

	// ResourceType is the type of the kubernetes resource (Deployment)
	ResourceType string `json:"resourceType"`

	// ResourceName is the name of the kubernetes resource
	ResourceName string `json:"resourceName"`

	// Namespace is the namespace of the kubernetes resource
	Namespace string `json:"namespace"`

	// Path is the OpenAPI spec path for this service
	Path string `json:"path"`

	// Port is the port for this service's OpenAPI spec
	Port string `json:"port"`

	// Annotations stores relevant annotations from the resource
	Annotations map[string]string `json:"annotations,omitempty"`

	// AllowedMethods stores the allowed HTTP methods for Swagger UI
	AllowedMethods []string `json:"allowedMethods,omitempty"`
}

APIInfo contains information about a collected OpenAPI spec

func (*APIInfo) DeepCopy

func (in *APIInfo) DeepCopy() *APIInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIInfo.

func (*APIInfo) DeepCopyInto

func (in *APIInfo) DeepCopyInto(out *APIInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenAPIAggregator

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

	Spec   OpenAPIAggregatorSpec   `json:"spec,omitempty"`
	Status OpenAPIAggregatorStatus `json:"status,omitempty"`
}

OpenAPIAggregator is the Schema for the openapiaggregators API

func (*OpenAPIAggregator) DeepCopy

func (in *OpenAPIAggregator) DeepCopy() *OpenAPIAggregator

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenAPIAggregator.

func (*OpenAPIAggregator) DeepCopyInto

func (in *OpenAPIAggregator) DeepCopyInto(out *OpenAPIAggregator)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenAPIAggregator) DeepCopyObject

func (in *OpenAPIAggregator) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OpenAPIAggregatorList

type OpenAPIAggregatorList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OpenAPIAggregator `json:"items"`
}

OpenAPIAggregatorList contains a list of OpenAPIAggregator

func (*OpenAPIAggregatorList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenAPIAggregatorList.

func (*OpenAPIAggregatorList) DeepCopyInto

func (in *OpenAPIAggregatorList) DeepCopyInto(out *OpenAPIAggregatorList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OpenAPIAggregatorList) DeepCopyObject

func (in *OpenAPIAggregatorList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OpenAPIAggregatorSpec

type OpenAPIAggregatorSpec struct {
	// LabelSelector selects target deployments to collect OpenAPI specs from
	// This field is currently not used if WatchNamespaces is implemented as primary.
	// Consider removing or marking as deprecated if WatchNamespaces becomes the sole method.
	LabelSelector map[string]string `json:"labelSelector,omitempty"`

	// WatchNamespaces specifies a list of namespaces to watch for services.
	// If empty or not provided, the controller will watch services in the same namespace as the OpenAPIAggregator CR.
	// If set to [""] (a list containing a single empty string), the controller will watch services in all namespaces.
	// Requires appropriate RBAC permissions for watching services in the specified namespaces (e.g., ClusterRole for all namespaces).
	// +optional
	WatchNamespaces []string `json:"watchNamespaces,omitempty"`

	// DefaultPath is the default path for OpenAPI documentation
	// +kubebuilder:default="/v2/api-docs"
	DefaultPath string `json:"defaultPath,omitempty"`

	// DefaultPort is the default port for OpenAPI documentation
	// +kubebuilder:default="8080"
	DefaultPort string `json:"defaultPort,omitempty"`

	// SwaggerAnnotation is the annotation key that indicates if the Service should be included
	// +kubebuilder:default="openapi.aggregator.io/swagger"
	SwaggerAnnotation string `json:"swaggerAnnotation,omitempty"`

	// PathAnnotation is the annotation key for OpenAPI path
	// +kubebuilder:default="openapi.aggregator.io/path"
	PathAnnotation string `json:"pathAnnotation,omitempty"`

	// PortAnnotation is the annotation key for OpenAPI port
	// +kubebuilder:default="openapi.aggregator.io/port"
	PortAnnotation string `json:"portAnnotation,omitempty"`

	// AllowedMethodsAnnotation is the annotation key for allowed HTTP methods in Swagger UI
	// +kubebuilder:default="openapi.aggregator.io/allowed-methods"
	AllowedMethodsAnnotation string `json:"allowedMethodsAnnotation,omitempty"`
}

OpenAPIAggregatorSpec defines the desired state of OpenAPIAggregator

func (*OpenAPIAggregatorSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenAPIAggregatorSpec.

func (*OpenAPIAggregatorSpec) DeepCopyInto

func (in *OpenAPIAggregatorSpec) DeepCopyInto(out *OpenAPIAggregatorSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenAPIAggregatorStatus

type OpenAPIAggregatorStatus struct {
	// CollectedAPIs contains information about the OpenAPI specs that have been collected
	CollectedAPIs []APIInfo `json:"collectedAPIs,omitempty"`
}

OpenAPIAggregatorStatus defines the observed state of OpenAPIAggregator

func (*OpenAPIAggregatorStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenAPIAggregatorStatus.

func (*OpenAPIAggregatorStatus) DeepCopyInto

func (in *OpenAPIAggregatorStatus) DeepCopyInto(out *OpenAPIAggregatorStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceList added in v0.3.0

type ResourceList map[string]string

ResourceList is a map of resource names to quantities

func (ResourceList) DeepCopy added in v0.3.0

func (in ResourceList) DeepCopy() ResourceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceList.

func (ResourceList) DeepCopyInto added in v0.3.0

func (in ResourceList) DeepCopyInto(out *ResourceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceRequirements added in v0.3.0

type ResourceRequirements struct {
	// Limits describes the maximum amount of compute resources allowed
	// +optional
	Limits ResourceList `json:"limits,omitempty"`

	// Requests describes the minimum amount of compute resources required
	// +optional
	Requests ResourceList `json:"requests,omitempty"`
}

ResourceRequirements describes the compute resource requirements

func (*ResourceRequirements) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRequirements.

func (*ResourceRequirements) DeepCopyInto added in v0.3.0

func (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SwaggerServer added in v0.3.0

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

	Spec   SwaggerServerSpec   `json:"spec,omitempty"`
	Status SwaggerServerStatus `json:"status,omitempty"`
}

SwaggerServer is the Schema for the swaggerservers API

func (*SwaggerServer) DeepCopy added in v0.3.0

func (in *SwaggerServer) DeepCopy() *SwaggerServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SwaggerServer.

func (*SwaggerServer) DeepCopyInto added in v0.3.0

func (in *SwaggerServer) DeepCopyInto(out *SwaggerServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SwaggerServer) DeepCopyObject added in v0.3.0

func (in *SwaggerServer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SwaggerServerList added in v0.3.0

type SwaggerServerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SwaggerServer `json:"items"`
}

SwaggerServerList contains a list of SwaggerServer

func (*SwaggerServerList) DeepCopy added in v0.3.0

func (in *SwaggerServerList) DeepCopy() *SwaggerServerList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SwaggerServerList.

func (*SwaggerServerList) DeepCopyInto added in v0.3.0

func (in *SwaggerServerList) DeepCopyInto(out *SwaggerServerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SwaggerServerList) DeepCopyObject added in v0.3.0

func (in *SwaggerServerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SwaggerServerSpec added in v0.3.0

type SwaggerServerSpec struct {

	// ConfigMapName is the name of the ConfigMap containing the OpenAPI specifications.
	// +kubebuilder:validation:Required
	ConfigMapName string `json:"configMapName"`

	// Port is the port number on which the Swagger UI will be exposed.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port"`

	// Image is the Docker image to use for the Swagger UI server.
	// If not specified, defaults to "ghcr.io/hellices/openapi-multi-swagger:latest".
	// +optional
	Image string `json:"image,omitempty"`

	// ImagePullPolicy defines the policy for pulling the Docker image.
	// Defaults to "IfNotPresent".
	// +optional
	// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
	ImagePullPolicy string `json:"imagePullPolicy,omitempty"`

	// Resources defines the CPU and memory resources for the Swagger UI server.
	// +optional
	Resources ResourceRequirements `json:"resources,omitempty"`

	// WatchIntervalSeconds is the interval in seconds for the server to check for updates to the ConfigMap.
	// Defaults to "10".
	// +optional
	WatchIntervalSeconds string `json:"watchIntervalSeconds,omitempty"`

	// LogLevel is the logging level for the Swagger UI server.
	// Valid values are: "trace", "debug", "info", "warn", "error", "fatal", "panic".
	// Defaults to "info".
	// +optional
	// +kubebuilder:validation:Enum=trace;debug;info;warn;error;fatal;panic
	LogLevel string `json:"logLevel,omitempty"`

	// DevMode enables or disables development mode for the Swagger UI server, which provides more verbose logging.
	// Valid values are: "true", "false".
	// Defaults to "false".
	// +optional
	// +kubebuilder:validation:Enum="true";"false"
	DevMode string `json:"devMode,omitempty"`
}

SwaggerServerSpec defines the desired state of SwaggerServer

func (*SwaggerServerSpec) DeepCopy added in v0.3.0

func (in *SwaggerServerSpec) DeepCopy() *SwaggerServerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SwaggerServerSpec.

func (*SwaggerServerSpec) DeepCopyInto added in v0.3.0

func (in *SwaggerServerSpec) DeepCopyInto(out *SwaggerServerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SwaggerServerStatus added in v0.3.0

type SwaggerServerStatus struct {
	// Ready indicates whether the Swagger UI server is ready to serve requests
	Ready bool `json:"ready"`

	// URL is the URL where the Swagger UI is accessible
	URL string `json:"url,omitempty"`

	// Conditions represent the latest available observations of an object's state
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

SwaggerServerStatus defines the observed state of SwaggerServer

func (*SwaggerServerStatus) DeepCopy added in v0.3.0

func (in *SwaggerServerStatus) DeepCopy() *SwaggerServerStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SwaggerServerStatus.

func (*SwaggerServerStatus) DeepCopyInto added in v0.3.0

func (in *SwaggerServerStatus) DeepCopyInto(out *SwaggerServerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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