v1alpha1

package
v0.40.0 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2024 License: BSD-3-Clause Imports: 10 Imported by: 6

Documentation

Overview

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

Index

Constants

View Source
const (
	DefaultLabelKeyPrefix             = "rpaas.extensions.tsuru.io"
	RpaasOperatorInstanceNameLabelKey = DefaultLabelKeyPrefix + "/instance-name"
	RpaasOperatorServiceNameLabelKey  = DefaultLabelKeyPrefix + "/service-name"
	RpaasOperatorPlanNameLabelKey     = DefaultLabelKeyPrefix + "/plan-name"
	RpaasOperatorTeamOwnerLabelKey    = DefaultLabelKeyPrefix + "/team-owner"
	RpaasOperatorClusterNameLabelKey  = DefaultLabelKeyPrefix + "/cluster-name"

	LegacyRpaasOperatorInstanceNameLabelKey = "rpaas_instance"
	LegacyRpaasOperatorServiceNameLabelKey  = "rpaas_service"
)
View Source
const (
	BlockTypeRoot      = "root"
	BlockTypeHTTP      = "http"
	BlockTypeServer    = "server"
	BlockTypeLuaServer = "lua-server"
	BlockTypeLuaWorker = "lua-worker"
)
View Source
const (
	// SessionTicketKeyLength48 represents 48 bytes of session ticket key length.
	SessionTicketKeyLength48 = SessionTicketKeyLength(48)

	// SessionTicketKeyLength80 represents 80 bytes of session ticket key length.
	SessionTicketKeyLength80 = SessionTicketKeyLength(80)

	// DefaultSessionTicketKeyLength holds the default session ticket key length.
	DefaultSessionTicketKeyLength = SessionTicketKeyLength48
)
View Source
const CertificateNameDefault = "default"
View Source
const (
	// DefaultSessionTicketKeyRotationInteval holds the default time interval to
	// rotate the session tickets: 1 hour.
	DefaultSessionTicketKeyRotationInteval uint32 = 60
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "extensions.tsuru.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

func Bool

func Bool(v bool) *bool

func BoolValue

func BoolValue(v *bool) bool

Types

type AllowedUpstream added in v0.13.0

type AllowedUpstream struct {
	Host string `json:"host,omitempty"`
	Port int    `json:"port,omitempty"`
}

func (*AllowedUpstream) DeepCopy added in v0.13.0

func (in *AllowedUpstream) DeepCopy() *AllowedUpstream

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

func (*AllowedUpstream) DeepCopyInto added in v0.13.0

func (in *AllowedUpstream) DeepCopyInto(out *AllowedUpstream)

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

type AutoscaleKEDAOptions added in v0.35.1

type AutoscaleKEDAOptions struct {
	// Enabled whether should use KEDA as the autoscaling controller.
	// +optional
	Enabled bool `json:"enabled,omitempty"`
	// PrometheusServerAddress is the Prometheus server (URL) address.
	// Mandatory if Enabled field is true.
	// +optional
	PrometheusServerAddress string `json:"prometheusServerAddress,omitempty"`
	// RPSQueryTemplate is a gotemplate used to define the requests per second Prometheus query.
	// Mandatory if Enabled field is true.
	// +optional
	RPSQueryTemplate string `json:"rpsQueryTemplate,omitempty"`
	// RPSAuthenticationRef is the reference to KEDA's authentication resource regarding the
	// request per second trigger.
	// +optional
	RPSAuthenticationRef *kedav1alpha1.ScaledObjectAuthRef `json:"rpsAuthenticationRef,omitempty"`
	// PollingInterval is the interval in seconds to check each trigger on.
	// +optional
	PollingInterval *int32 `json:"pollingInterval,omitempty"`
	// Timezone is a zone name registered on IANA time zone database, e.g. "America/Sao_Paulo".
	// +optional
	Timezone string `json:"timezone,omitempty"`
}

func (*AutoscaleKEDAOptions) DeepCopy added in v0.35.1

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

func (*AutoscaleKEDAOptions) DeepCopyInto added in v0.35.1

func (in *AutoscaleKEDAOptions) DeepCopyInto(out *AutoscaleKEDAOptions)

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

type Bind

type Bind struct {
	Name string `json:"name"`
	Host string `json:"host"`
}

func (*Bind) DeepCopy

func (in *Bind) DeepCopy() *Bind

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

func (*Bind) DeepCopyInto

func (in *Bind) DeepCopyInto(out *Bind)

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

type BlockType

type BlockType string

type CacheSnapshotStorage

type CacheSnapshotStorage struct {
	StorageClassName *string            `json:"storageClassName,omitempty"`
	StorageSize      *resource.Quantity `json:"storageSize,omitempty"`
	VolumeLabels     map[string]string  `json:"volumeLabels,omitempty"`
}

func (*CacheSnapshotStorage) DeepCopy

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

func (*CacheSnapshotStorage) DeepCopyInto

func (in *CacheSnapshotStorage) DeepCopyInto(out *CacheSnapshotStorage)

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

type CacheSnapshotSyncSpec

type CacheSnapshotSyncSpec struct {
	// Schedule is the the cron time string format, see https://en.wikipedia.org/wiki/Cron.
	Schedule string `json:"schedule,omitempty"`

	// Container is the image used to sync the containers
	// default is bitnami/kubectl:latest
	Image string `json:"image,omitempty"`

	// CmdPodToPVC is used to customize command used to sync memory cache (POD) to persistent storage (PVC)
	CmdPodToPVC []string `json:"cmdPodToPVC,omitempty"`

	// CmdPVCToPod is used to customize command used to sync persistent storage (PVC) to memory cache (POD)
	CmdPVCToPod []string `json:"cmdPVCToPod,omitempty"`
}

func (*CacheSnapshotSyncSpec) DeepCopy

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

func (*CacheSnapshotSyncSpec) DeepCopyInto

func (in *CacheSnapshotSyncSpec) DeepCopyInto(out *CacheSnapshotSyncSpec)

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

type CertManager added in v0.15.0

type CertManager struct {
	// Issuer refers either to Issuer or ClusterIssuer resource.
	//
	// NOTE: when there's no Issuer on this name, it tries using ClusterIssuer instead.
	Issuer string `json:"issuer,omitempty"`

	// DNSNames is a list of DNS names to be set in Subject Alternative Names.
	// +optional
	DNSNames []string `json:"dnsNames,omitempty"`

	// IPAddresses is a list of IP addresses to be set in Subject Alternative Names.
	// +optional
	IPAddresses []string `json:"ipAddresses,omitempty"`

	// DNSNamesDefault when is set use the provided DNSName from DNS Zone field.
	// +optional
	DNSNamesDefault bool `json:"dnsNamesDefault,omitempty"`
}

func (*CertManager) DeepCopy added in v0.15.0

func (in *CertManager) DeepCopy() *CertManager

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

func (*CertManager) DeepCopyInto added in v0.15.0

func (in *CertManager) DeepCopyInto(out *CertManager)

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

type DNSConfig

type DNSConfig struct {
	// Zone is the suffix which all DNS entries will be formed with
	// using the rule `instance_name.zone`
	Zone string `json:"zone"`
	// TTL is the DNS entry time to live in seconds (default is 60s)
	// +optional
	TTL *int32 `json:"ttl"`
}

func (*DNSConfig) DeepCopy

func (in *DNSConfig) DeepCopy() *DNSConfig

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

func (*DNSConfig) DeepCopyInto

func (in *DNSConfig) DeepCopyInto(out *DNSConfig)

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

type DynamicCertificates added in v0.15.0

type DynamicCertificates struct {
	// CertManager contains specific configurations to enable Cert Manager integration.
	// +optional
	CertManager *CertManager `json:"certManager,omitempty"`

	// CertManagerRequests is similar to CertManager field but for several requests.
	// +optional
	CertManagerRequests []CertManager `json:"certManagerRequests,omitempty"`
}

func (*DynamicCertificates) DeepCopy added in v0.15.0

func (in *DynamicCertificates) DeepCopy() *DynamicCertificates

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

func (*DynamicCertificates) DeepCopyInto added in v0.15.0

func (in *DynamicCertificates) DeepCopyInto(out *DynamicCertificates)

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

type File added in v0.32.0

type File struct {
	// Name is the filaname of the file.
	Name string `json:"name"`
	// ConfigMap is a reference to ConfigMap in the namespace that contains the
	// file content.
	ConfigMap *corev1.ConfigMapKeySelector `json:"configMap,omitempty"`
}

func (*File) DeepCopy added in v0.32.0

func (in *File) DeepCopy() *File

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

func (*File) DeepCopyInto added in v0.32.0

func (in *File) DeepCopyInto(out *File)

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

type Location

type Location struct {
	Path        string `json:"path"`
	Destination string `json:"destination,omitempty"`
	Content     *Value `json:"content,omitempty"`
	ForceHTTPS  bool   `json:"forceHTTPS,omitempty"`
}

func (*Location) DeepCopy

func (in *Location) DeepCopy() *Location

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

func (*Location) DeepCopyInto

func (in *Location) DeepCopyInto(out *Location)

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

type NginxConfig

type NginxConfig struct {
	User string `json:"user,omitempty"`

	UpstreamKeepalive int `json:"upstreamKeepalive,omitempty"`

	CacheEnabled     *bool              `json:"cacheEnabled,omitempty"`
	CacheInactive    string             `json:"cacheInactive,omitempty"`
	CacheLoaderFiles int                `json:"cacheLoaderFiles,omitempty"`
	CachePath        string             `json:"cachePath,omitempty"`
	CacheSize        *resource.Quantity `json:"cacheSize,omitempty"`
	CacheZoneSize    *resource.Quantity `json:"cacheZoneSize,omitempty"`

	LogFormat            string            `json:"logFormat,omitempty"`
	LogFormatEscape      string            `json:"logFormatEscape,omitempty"`
	LogFormatName        string            `json:"logFormatName,omitempty"`
	LogAdditionalHeaders []string          `json:"logAdditionalHeaders,omitempty"`
	LogAdditionalFields  map[string]string `json:"logAdditionalFields,omitempty"`

	MapHashBucketSize int `json:"mapHashBucketSize,omitempty"`
	MapHashMaxSize    int `json:"mapHashMaxSize,omitempty"`

	HTTPListenOptions  string `json:"httpListenOptions,omitempty"`
	HTTPSListenOptions string `json:"httpsListenOptions,omitempty"`

	VTSEnabled                *bool  `json:"vtsEnabled,omitempty"`
	VTSStatusHistogramBuckets string `json:"vtsStatusHistogramBuckets,omitempty"`

	ResolverAddresses []string `json:"resolverAddresses,omitempty"`
	ResolverTTL       string   `json:"resolverTTL,omitempty"`

	SyslogEnabled       *bool  `json:"syslogEnabled,omitempty"`
	SyslogServerAddress string `json:"syslogServerAddress,omitempty"`
	SyslogFacility      string `json:"syslogFacility,omitempty"`
	SyslogTag           string `json:"syslogTag,omitempty"`

	WorkerProcesses   int `json:"workerProcesses,omitempty"`
	WorkerConnections int `json:"workerConnections,omitempty"`

	TemplateExtraVars map[string]string `json:"templateExtraVars,omitempty"`
}

func (*NginxConfig) DeepCopy

func (in *NginxConfig) DeepCopy() *NginxConfig

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

func (*NginxConfig) DeepCopyInto

func (in *NginxConfig) DeepCopyInto(out *NginxConfig)

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

type RpaasFlavor

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

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

RpaasFlavor is the Schema for the rpaasflavors API +k8s:openapi-gen=true

func (*RpaasFlavor) DeepCopy

func (in *RpaasFlavor) DeepCopy() *RpaasFlavor

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

func (*RpaasFlavor) DeepCopyInto

func (in *RpaasFlavor) DeepCopyInto(out *RpaasFlavor)

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

func (*RpaasFlavor) DeepCopyObject

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

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

type RpaasFlavorList

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

RpaasFlavorList contains a list of RpaasFlavor

func (*RpaasFlavorList) DeepCopy

func (in *RpaasFlavorList) DeepCopy() *RpaasFlavorList

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

func (*RpaasFlavorList) DeepCopyInto

func (in *RpaasFlavorList) DeepCopyInto(out *RpaasFlavorList)

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

func (*RpaasFlavorList) DeepCopyObject

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

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

type RpaasFlavorSpec

type RpaasFlavorSpec struct {
	// Description provides a human readable description about this flavor.
	// +optional
	Description string `json:"description,omitempty"`

	// InstanceTemplate defines a template which allows to override the
	// associated RpaasInstance.
	// +optional
	InstanceTemplate *RpaasInstanceSpec `json:"instanceTemplate,omitempty"`

	// Default defines if the flavor should be applied by default on
	// every service instance. Default flavors cannot be listed on RpaasFlavorList.
	// +optional
	Default bool `json:"default,omitempty"`

	// CreationOnly defines if the flavor could be used only in the moment of creation of instance
	// +optional
	CreationOnly bool `json:"creationOnly,omitempty"`

	// IncompatibleFlavors defines which other flavors cannot be used with this flavor
	// +optional
	IncompatibleFlavors []string `json:"incompatibleFlavors,omitempty"`
}

RpaasFlavorSpec defines the desired state of RpaasFlavor

func (*RpaasFlavorSpec) DeepCopy

func (in *RpaasFlavorSpec) DeepCopy() *RpaasFlavorSpec

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

func (*RpaasFlavorSpec) DeepCopyInto

func (in *RpaasFlavorSpec) DeepCopyInto(out *RpaasFlavorSpec)

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

type RpaasInstance

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

	Status RpaasInstanceStatus `json:"status,omitempty"`
	Spec   RpaasInstanceSpec   `json:"spec,omitempty"`
}

RpaasInstance is the Schema for the rpaasinstances API

func (*RpaasInstance) BelongsToCluster

func (i *RpaasInstance) BelongsToCluster(clusterName string) bool

func (*RpaasInstance) CertManagerRequests added in v0.22.0

func (i *RpaasInstance) CertManagerRequests() (reqs []CertManager)

func (*RpaasInstance) ClusterName added in v0.37.2

func (i *RpaasInstance) ClusterName() string

func (*RpaasInstance) DeepCopy

func (in *RpaasInstance) DeepCopy() *RpaasInstance

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

func (*RpaasInstance) DeepCopyInto

func (in *RpaasInstance) DeepCopyInto(out *RpaasInstance)

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

func (*RpaasInstance) DeepCopyObject

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

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

func (*RpaasInstance) GetBaseLabels added in v0.37.2

func (i *RpaasInstance) GetBaseLabels(labels map[string]string) map[string]string

func (*RpaasInstance) SetClusterName

func (i *RpaasInstance) SetClusterName(clusterName string)

func (*RpaasInstance) SetTeamOwner

func (i *RpaasInstance) SetTeamOwner(team string)

func (*RpaasInstance) TeamOwner

func (i *RpaasInstance) TeamOwner() string

type RpaasInstanceAutoscaleSpec

type RpaasInstanceAutoscaleSpec struct {
	// MaxReplicas is the upper limit for the number of replicas that can be set
	// by the HorizontalPodAutoscaler.
	MaxReplicas int32 `json:"maxReplicas"`
	// MinReplicas is the lower limit for the number of replicas that can be set
	// by the HorizontalPodAutoscaler.
	// Defaults to the RpaasInstance replicas value.
	// +optional
	MinReplicas *int32 `json:"minReplicas,omitempty"`
	// TargetCPUUtilizationPercentage is the target average CPU utilization over
	// all the pods. Represented as a percentage of requested CPU, e.g. int32(80)
	// equals to 80%.
	// +optional
	TargetCPUUtilizationPercentage *int32 `json:"targetCPUUtilizationPercentage,omitempty"`
	// TargetMemoryUtilizationPercentage is the target average memory utilization
	// over all the pods. Represented as a percentage of requested memory, e.g.
	// int32(80) equals to 80%.
	// +optional
	TargetMemoryUtilizationPercentage *int32 `json:"targetMemoryUtilizationPercentage,omitempty"`
	// TargetRequestsPerSecond is the target rate of HTTP requests (in a second)
	// pods should keep before scaling up/down pods.
	// +optional
	TargetRequestsPerSecond *int32 `json:"targetRequestsPerSecond,omitempty"`
	// Schedules are the time windows where the minimum replica count should change.
	// +optional
	Schedules []ScheduledWindow `json:"schedules,omitempty"`
	// KEDAOptions defines the options used when creating autoscaling resources via KEDA's API.
	// +optional
	KEDAOptions *AutoscaleKEDAOptions `json:"kedaOptions,omitempty"`
}

RpaasInstanceAutoscaleSpec describes the behavior of HorizontalPodAutoscaler.

func (*RpaasInstanceAutoscaleSpec) DeepCopy

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

func (*RpaasInstanceAutoscaleSpec) DeepCopyInto

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

type RpaasInstanceExternalAddressesStatus added in v0.38.0

type RpaasInstanceExternalAddressesStatus struct {
	IPs       []string `json:"ips,omitempty"`
	Hostnames []string `json:"hostnames,omitempty"`
}

func (*RpaasInstanceExternalAddressesStatus) DeepCopy added in v0.39.2

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

func (*RpaasInstanceExternalAddressesStatus) DeepCopyInto added in v0.39.2

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

type RpaasInstanceList

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

RpaasInstanceList contains a list of RpaasInstance

func (*RpaasInstanceList) DeepCopy

func (in *RpaasInstanceList) DeepCopy() *RpaasInstanceList

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

func (*RpaasInstanceList) DeepCopyInto

func (in *RpaasInstanceList) DeepCopyInto(out *RpaasInstanceList)

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

func (*RpaasInstanceList) DeepCopyObject

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

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

type RpaasInstanceSpec

type RpaasInstanceSpec struct {
	// Number of desired pods. This is a pointer to distinguish between explicit
	// zero and not specified. Defaults to 1.
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`

	// PlanName is the name of the rpaasplan instance.
	// +optional
	PlanName string `json:"planName,omitempty"`

	// PlanNamespace is the namespace of target plan and their flavors, when empty uses the same namespace of instance.
	// +optional
	PlanNamespace string `json:"planNamespace,omitempty"`

	// Flavors are references to RpaasFlavors resources. When provided, each flavor
	// merges its instance template spec with this instance spec.
	// +optional
	Flavors []string `json:"flavors,omitempty"`

	// PlanTemplate allow overriding fields in the specified plan.
	// +optional
	PlanTemplate *RpaasPlanSpec `json:"planTemplate,omitempty"`

	// Binds is the list of apps bounded to the instance
	// +optional
	Binds []Bind `json:"binds,omitempty"`

	// Blocks are configuration file fragments added to the generated nginx
	// config.
	Blocks map[BlockType]Value `json:"blocks,omitempty"`

	// Locations hold paths that can be configured to forward resquests to
	// one destination app or include raw NGINX configurations itself.
	// +optional
	Locations []Location `json:"locations,omitempty"`

	// DNS Configuration for the current flavor
	// +optional
	DNS *DNSConfig `json:"dns,omitempty"`

	// TLS configuration.
	// +optional
	TLS []nginxv1alpha1.NginxTLS `json:"tls,omitempty"`

	// Service to expose the nginx instance
	// +optional
	Service *nginxv1alpha1.NginxService `json:"service,omitempty"`

	// ExtraFiles points to a ConfigMap where the files are stored.
	//
	// Deprecated: ExtraFiles stores all files in a single ConfigMap. In other
	// words, they share the limit of 1MiB due to etcd limitations. In order to
	// get around it, use the Field field.
	//
	// +optional
	ExtraFiles *nginxv1alpha1.FilesRef `json:"extraFiles,omitempty"`

	// Files is a list of regular files of general purpose to be mounted on
	// Nginx pods. As ConfigMap stores the file content, a file cannot exceed 1MiB.
	// +optional
	Files []File `json:"files,omitempty"`

	// The number of old Configs to retain to allow rollback.
	// +optional
	ConfigHistoryLimit *int `json:"configHistoryLimit,omitempty"`

	// PodTemplate used to configure the NGINX pod template.
	// +optional
	PodTemplate nginxv1alpha1.NginxPodTemplateSpec `json:"podTemplate,omitempty"`

	// Autoscale holds the infos used to configure the HorizontalPodAutoscaler
	// for this instance.
	// +optional
	Autoscale *RpaasInstanceAutoscaleSpec `json:"autoscale,omitempty"`

	// Lifecycle describes actions that should be executed when
	// some event happens to nginx container.
	// +optional
	Lifecycle *nginxv1alpha1.NginxLifecycle `json:"lifecycle,omitempty"`

	// TLSSessionResumption configures the instance to support session resumption
	// using either session tickets or session ID (in the future). Defaults to
	// disabled.
	// +optional
	TLSSessionResumption *TLSSessionResumption `json:"tlsSessionResumption,omitempty"`

	// AllowedUpstreams holds the endpoints to which the RpaasInstance should be able to access
	// +optional
	AllowedUpstreams []AllowedUpstream `json:"allowedUpstreams,omitempty"`

	// DynamicCertificates enables automatic issuing and renewal for TLS certificates.
	// +optional
	DynamicCertificates *DynamicCertificates `json:"dynamicCertificates,omitempty"`

	// Ingress defines a minimal set of configurations to expose the instance over
	// an Ingress.
	// +optional
	Ingress *nginxv1alpha1.NginxIngress `json:"ingress,omitempty"`

	// EnablePodDisruptionBudget defines whether a PodDisruptionBudget should be attached
	// to Nginx or not. Defaults to disabled.
	//
	// If enabled, PDB's min available is calculated as:
	//  minAvailable = floor(N * 90%), where
	//  N:
	//   - rpaasinstance.spec.autoscale.minReplicas (if set and less than maxReplicas);
	//   - rpaasinstance.spec.autoscale.maxReplicas (if set);
	//   - rpaasinstance.spec.replicas (if set);
	//   - zero, otherwise.
	//
	// +optional
	EnablePodDisruptionBudget *bool `json:"enablePodDisruptionBudget,omitempty"`

	// ProxyProtocol defines whether allocate additional ports to expose via proxy protocol
	// +optional
	ProxyProtocol bool `json:"proxyProtocol,omitempty"`

	// Suspend flag tells whether controller should suspend any further
	// modifications on this resource. Defaults to false.
	// +optional
	// +kubebuilder:default:=false
	Suspend *bool `json:"suspend,omitempty"`

	// Shutdown flag tells whether controller should scale down Nginx instances.
	// Any assosciated HorizontalPodAutoscaler is remove/created when this flag is toggled.
	// +optional
	// +kubebuilder:default:=false
	Shutdown bool `json:"shutdown,omitempty"`
}

RpaasInstanceSpec defines the desired state of RpaasInstance

func (*RpaasInstanceSpec) DeepCopy

func (in *RpaasInstanceSpec) DeepCopy() *RpaasInstanceSpec

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

func (*RpaasInstanceSpec) DeepCopyInto

func (in *RpaasInstanceSpec) DeepCopyInto(out *RpaasInstanceSpec)

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

type RpaasInstanceStatus

type RpaasInstanceStatus struct {
	//Revision hash calculated for the current spec of rpaasinstance
	RevisionHash string `json:"revisionHash,omitempty"`

	// Revision hash calculated for the current spec of nginx.
	WantedNginxRevisionHash string `json:"wantedNginxRevisionHash,omitempty"`

	// The revision hash observed by the controller in the nginx object.
	ObservedNginxRevisionHash string `json:"observedNginxRevisionHash,omitempty"`

	// PodSelector is the NGINX's pod label selector.
	PodSelector string `json:"podSelector,omitempty"`

	// The most recent generation observed by the rpaas operator controller.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// CurrentReplicas is the last observed number of pods.
	CurrentReplicas int32 `json:"currentReplicas,omitempty"`

	// NginxUpdated is true if the wanted nginx revision hash equals the
	// observed nginx revision hash.
	NginxUpdated bool `json:"nginxUpdated"`

	// External IP addreses of Nginx
	ExternalAddresses RpaasInstanceExternalAddressesStatus `json:"externalAddresses,omitempty"`
}

RpaasInstanceStatus defines the observed state of RpaasInstance

func (*RpaasInstanceStatus) DeepCopy

func (in *RpaasInstanceStatus) DeepCopy() *RpaasInstanceStatus

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

func (*RpaasInstanceStatus) DeepCopyInto

func (in *RpaasInstanceStatus) DeepCopyInto(out *RpaasInstanceStatus)

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

type RpaasPlan

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

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

RpaasPlan is the Schema for the rpaasplans API

func (*RpaasPlan) DeepCopy

func (in *RpaasPlan) DeepCopy() *RpaasPlan

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

func (*RpaasPlan) DeepCopyInto

func (in *RpaasPlan) DeepCopyInto(out *RpaasPlan)

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

func (*RpaasPlan) DeepCopyObject

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

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

type RpaasPlanList

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

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

RpaasPlanList contains a list of RpaasPlan

func (*RpaasPlanList) DeepCopy

func (in *RpaasPlanList) DeepCopy() *RpaasPlanList

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

func (*RpaasPlanList) DeepCopyInto

func (in *RpaasPlanList) DeepCopyInto(out *RpaasPlanList)

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

func (*RpaasPlanList) DeepCopyObject

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

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

type RpaasPlanSpec

type RpaasPlanSpec struct {
	// Image is the NGINX container image name. Defaults to Nginx image value.
	// +optional
	Image string `json:"image,omitempty"`
	// Config defines some NGINX configurations values that can be used in the
	// configuration template.
	// +optional
	Config NginxConfig `json:"config,omitempty"`
	// Template contains the main NGINX configuration template.
	// +optional
	Template *Value `json:"template,omitempty"`
	// Description describes the plan.
	// +optional
	Description string `json:"description,omitempty"`
	// Default indicates whether plan is default.
	// +optional
	Default bool `json:"default,omitempty"`
	// Resources requirements to be set on the NGINX container.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
}

RpaasPlanSpec defines the desired state of RpaasPlan

func (*RpaasPlanSpec) DeepCopy

func (in *RpaasPlanSpec) DeepCopy() *RpaasPlanSpec

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

func (*RpaasPlanSpec) DeepCopyInto

func (in *RpaasPlanSpec) DeepCopyInto(out *RpaasPlanSpec)

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

type ScheduledWindow added in v0.37.0

type ScheduledWindow struct {
	// MinReplicas is the minimum replica count set while the scheduled window is active.
	MinReplicas int32 `json:"minReplicas"`
	// Start is a Cron expression indicating the start of the shedule window.
	Start string `json:"start"`
	// End is a Cron expression indicating the end of the scheduled window.
	End string `json:"end"`
	// Timezone is a zone name registered on IANA time zone database, e.g. "America/Sao_Paulo".
	// +optional
	Timezone string `json:"timezone,omitempty"`
}

func (*ScheduledWindow) DeepCopy added in v0.37.0

func (in *ScheduledWindow) DeepCopy() *ScheduledWindow

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

func (*ScheduledWindow) DeepCopyInto added in v0.37.0

func (in *ScheduledWindow) DeepCopyInto(out *ScheduledWindow)

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

type SessionTicketKeyLength

type SessionTicketKeyLength uint16

type TLSSessionResumption

type TLSSessionResumption struct {
	// SessionTicket defines the parameters to set the TLS session tickets.
	// +optional
	SessionTicket *TLSSessionTicket `json:"sessionTicket,omitempty"`
}

func (*TLSSessionResumption) DeepCopy

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

func (*TLSSessionResumption) DeepCopyInto

func (in *TLSSessionResumption) DeepCopyInto(out *TLSSessionResumption)

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

type TLSSessionTicket

type TLSSessionTicket struct {
	// KeepLastKeys defines how many session ticket encryption keys should be
	// kept in addition to the current one. Zero means no old encryption keys.
	// Defaults to zero.
	// +optional
	KeepLastKeys uint32 `json:"keepLastKeys,omitempty"`

	// KeyRotationInterval defines the time interval, in minutes, that a
	// key rotation job should occurs. Defaults to 60 minutes (an hour).
	// +optional
	KeyRotationInterval uint32 `json:"keyRotationInterval,omitempty"`

	// KeyLength defines the length of bytes for a session tickets. Should be
	// either 48 or 80 bytes. Defaults to 48 bytes.
	// +optional
	KeyLength SessionTicketKeyLength `json:"keyLength,omitempty"`

	// Image is the container image name used to execute the session ticket
	// rotation job. It requires either "bash", "base64", "openssl" and "kubectl"
	// programs be installed into. Defaults to "bitnami/kubectl:latest".
	// +optional
	Image string `json:"image,omitempty"`
}

func (*TLSSessionTicket) DeepCopy

func (in *TLSSessionTicket) DeepCopy() *TLSSessionTicket

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

func (*TLSSessionTicket) DeepCopyInto

func (in *TLSSessionTicket) DeepCopyInto(out *TLSSessionTicket)

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

type Value

type Value struct {
	Value     string       `json:"value,omitempty"`
	ValueFrom *ValueSource `json:"valueFrom,omitempty"`
}

func (*Value) DeepCopy

func (in *Value) DeepCopy() *Value

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

func (*Value) DeepCopyInto

func (in *Value) DeepCopyInto(out *Value)

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

type ValueSource

type ValueSource struct {
	ConfigMapKeyRef *corev1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty"`
	Namespace       string                       `json:"namespace,omitempty"`
}

func (*ValueSource) DeepCopy

func (in *ValueSource) DeepCopy() *ValueSource

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

func (*ValueSource) DeepCopyInto

func (in *ValueSource) DeepCopyInto(out *ValueSource)

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