v1alpha1

package
v0.0.0-...-8203151 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2024 License: Apache-2.0 Imports: 4 Imported by: 51

Documentation

Overview

+groupName=console.openshift.io

Index

Constants

This section is empty.

Variables

View Source
var (
	GroupName    = "console.openshift.io"
	GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}

	// Install is a function which adds this version to a scheme
	Install = schemeBuilder.AddToScheme

	// SchemeGroupVersion generated code relies on this name
	// Deprecated
	SchemeGroupVersion = GroupVersion
	// AddToScheme exists solely to keep the old generators creating valid code
	// DEPRECATED
	AddToScheme = schemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource generated code relies on this being here, but it logically belongs to the group DEPRECATED

Types

type ConsolePlugin

type ConsolePlugin struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is the standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	metav1.ObjectMeta `json:"metadata"`

	// +kubebuilder:validation:Required
	// +required
	Spec ConsolePluginSpec `json:"spec"`
}

ConsolePlugin is an extension for customizing OpenShift web console by dynamically loading code from another service running on the cluster.

Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +kubebuilder:object:root=true +kubebuilder:resource:path=consoleplugins,scope=Cluster +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/764 +openshift:file-pattern=operatorOrdering=90 +openshift:capability=Console +kubebuilder:metadata:annotations="description=Extension for configuring openshift web console plugins." +kubebuilder:metadata:annotations="displayName=ConsolePlugin" +kubebuilder:metadata:annotations="service.beta.openshift.io/inject-cabundle=true"

func (*ConsolePlugin) DeepCopy

func (in *ConsolePlugin) DeepCopy() *ConsolePlugin

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

func (*ConsolePlugin) DeepCopyInto

func (in *ConsolePlugin) DeepCopyInto(out *ConsolePlugin)

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

func (*ConsolePlugin) DeepCopyObject

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

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

func (ConsolePlugin) SwaggerDoc

func (ConsolePlugin) SwaggerDoc() map[string]string

type ConsolePluginList

type ConsolePluginList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is the standard list's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	metav1.ListMeta `json:"metadata"`

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

Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.

func (*ConsolePluginList) DeepCopy

func (in *ConsolePluginList) DeepCopy() *ConsolePluginList

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

func (*ConsolePluginList) DeepCopyInto

func (in *ConsolePluginList) DeepCopyInto(out *ConsolePluginList)

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

func (*ConsolePluginList) DeepCopyObject

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

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

func (ConsolePluginList) SwaggerDoc

func (ConsolePluginList) SwaggerDoc() map[string]string

type ConsolePluginProxy

type ConsolePluginProxy struct {
	// type is the type of the console plugin's proxy. Currently only "Service" is supported.
	// +kubebuilder:validation:Required
	// +required
	Type ConsolePluginProxyType `json:"type"`
	// alias is a proxy name that identifies the plugin's proxy. An alias name
	// should be unique per plugin. The console backend exposes following
	// proxy endpoint:
	//
	// /api/proxy/plugin/<plugin-name>/<proxy-alias>/<request-path>?<optional-query-parameters>
	//
	// Request example path:
	//
	// /api/proxy/plugin/acm/search/pods?namespace=openshift-apiserver
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=128
	// +kubebuilder:validation:Pattern=`^[A-Za-z0-9-_]+$`
	// +required
	Alias string `json:"alias"`
	// service is an in-cluster Service that the plugin will connect to.
	// The Service must use HTTPS. The console backend exposes an endpoint
	// in order to proxy communication between the plugin and the Service.
	// Note: service field is required for now, since currently only "Service"
	// type is supported.
	// +kubebuilder:validation:Required
	// +required
	Service ConsolePluginProxyServiceConfig `json:"service,omitempty"`
	// caCertificate provides the cert authority certificate contents,
	// in case the proxied Service is using custom service CA.
	// By default, the service CA bundle provided by the service-ca operator is used.
	// +kubebuilder:validation:Pattern=`^-----BEGIN CERTIFICATE-----([\s\S]*)-----END CERTIFICATE-----\s?$`
	// +kubebuilder:validation:Optional
	// +optional
	CACertificate string `json:"caCertificate,omitempty"`
	// authorize indicates if the proxied request should contain the logged-in user's
	// OpenShift access token in the "Authorization" request header. For example:
	//
	// Authorization: Bearer sha256~kV46hPnEYhCWFnB85r5NrprAxggzgb6GOeLbgcKNsH0
	//
	// By default the access token is not part of the proxied request.
	// +kubebuilder:default:=false
	// +kubebuilder:validation:Optional
	// +optional
	Authorize bool `json:"authorize,omitempty"`
}

ConsolePluginProxy holds information on various service types to which console's backend will proxy the plugin's requests.

func (*ConsolePluginProxy) DeepCopy

func (in *ConsolePluginProxy) DeepCopy() *ConsolePluginProxy

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

func (*ConsolePluginProxy) DeepCopyInto

func (in *ConsolePluginProxy) DeepCopyInto(out *ConsolePluginProxy)

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

func (ConsolePluginProxy) SwaggerDoc

func (ConsolePluginProxy) SwaggerDoc() map[string]string

type ConsolePluginProxyServiceConfig

type ConsolePluginProxyServiceConfig struct {
	// name of Service that the plugin needs to connect to.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=128
	// +required
	Name string `json:"name"`
	// namespace of Service that the plugin needs to connect to
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=128
	// +required
	Namespace string `json:"namespace"`
	// port on which the Service that the plugin needs to connect to
	// is listening on.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Maximum:=65535
	// +kubebuilder:validation:Minimum:=1
	// +required
	Port int32 `json:"port"`
}

ProxyTypeServiceConfig holds information on Service to which console's backend will proxy the plugin's requests.

func (*ConsolePluginProxyServiceConfig) DeepCopy

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

func (*ConsolePluginProxyServiceConfig) DeepCopyInto

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

func (ConsolePluginProxyServiceConfig) SwaggerDoc

type ConsolePluginProxyType

type ConsolePluginProxyType string

ProxyType is an enumeration of available proxy types +kubebuilder:validation:Pattern=`^(Service)$`

const (
	// ProxyTypeService is used when proxying communication to a Service
	ProxyTypeService ConsolePluginProxyType = "Service"
)

type ConsolePluginService

type ConsolePluginService struct {
	// name of Service that is serving the plugin assets.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=128
	// +required
	Name string `json:"name"`
	// namespace of Service that is serving the plugin assets.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=128
	// +required
	Namespace string `json:"namespace"`
	// port on which the Service that is serving the plugin is listening to.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Maximum:=65535
	// +kubebuilder:validation:Minimum:=1
	// +required
	Port int32 `json:"port"`
	// basePath is the path to the plugin's assets. The primary asset it the
	// manifest file called `plugin-manifest.json`, which is a JSON document
	// that contains metadata about the plugin and the extensions.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Pattern=`^/`
	// +kubebuilder:default:="/"
	// +required
	BasePath string `json:"basePath"`
}

ConsolePluginService holds information on Service that is serving console dynamic plugin assets.

func (*ConsolePluginService) DeepCopy

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

func (*ConsolePluginService) DeepCopyInto

func (in *ConsolePluginService) DeepCopyInto(out *ConsolePluginService)

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

func (ConsolePluginService) SwaggerDoc

func (ConsolePluginService) SwaggerDoc() map[string]string

type ConsolePluginSpec

type ConsolePluginSpec struct {
	// displayName is the display name of the plugin.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +optional
	DisplayName string `json:"displayName,omitempty"`
	// service is a Kubernetes Service that exposes the plugin using a
	// deployment with an HTTP server. The Service must use HTTPS and
	// Service serving certificate. The console backend will proxy the
	// plugins assets from the Service using the service CA bundle.
	// +kubebuilder:validation:Required
	// +required
	Service ConsolePluginService `json:"service"`
	// proxy is a list of proxies that describe various service type
	// to which the plugin needs to connect to.
	// +kubebuilder:validation:Optional
	// +optional
	Proxy []ConsolePluginProxy `json:"proxy,omitempty"`
}

ConsolePluginSpec is the desired plugin configuration.

func (*ConsolePluginSpec) DeepCopy

func (in *ConsolePluginSpec) DeepCopy() *ConsolePluginSpec

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

func (*ConsolePluginSpec) DeepCopyInto

func (in *ConsolePluginSpec) DeepCopyInto(out *ConsolePluginSpec)

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

func (ConsolePluginSpec) SwaggerDoc

func (ConsolePluginSpec) SwaggerDoc() map[string]string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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