v1alpha1

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2025 License: BSD-3-Clause Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the mc.k8s.lex.la v1alpha1 API group. +kubebuilder:object:generate=true +groupName=mc.k8s.lex.la

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "mc.k8s.lex.la", 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 AvailableUpdate

type AvailableUpdate struct {
	// Version is the available Paper version.
	Version string `json:"version"`

	// Build is the available Paper build number.
	Build int `json:"build"`

	// ReleasedAt is when this Paper version was released.
	ReleasedAt metav1.Time `json:"releasedAt"`

	// Plugins lists plugin versions for this update.
	Plugins []PluginVersionPair `json:"plugins"`

	// FoundAt is when this update was discovered.
	FoundAt metav1.Time `json:"foundAt"`
}

AvailableUpdate represents an available server update.

func (*AvailableUpdate) DeepCopy

func (in *AvailableUpdate) DeepCopy() *AvailableUpdate

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

func (*AvailableUpdate) DeepCopyInto

func (in *AvailableUpdate) DeepCopyInto(out *AvailableUpdate)

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

type BlockedByInfo

type BlockedByInfo struct {
	// Plugin is the name of the Plugin resource blocking the update.
	Plugin string `json:"plugin"`

	// Version is the current/desired version of the blocking plugin.
	Version string `json:"version"`

	// SupportedVersions lists Paper versions this plugin supports.
	// +optional
	SupportedVersions []string `json:"supportedVersions,omitempty"`
}

BlockedByInfo contains details about which plugin is blocking an update.

func (*BlockedByInfo) DeepCopy

func (in *BlockedByInfo) DeepCopy() *BlockedByInfo

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

func (*BlockedByInfo) DeepCopyInto

func (in *BlockedByInfo) DeepCopyInto(out *BlockedByInfo)

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

type CompatibilityOverride

type CompatibilityOverride struct {
	// Enabled determines if the override replaces API metadata.
	Enabled bool `json:"enabled"`

	// MinecraftVersions lists supported Minecraft versions.
	// +optional
	MinecraftVersions []string `json:"minecraftVersions,omitempty"`
}

CompatibilityOverride allows manual compatibility specification.

func (*CompatibilityOverride) DeepCopy

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

func (*CompatibilityOverride) DeepCopyInto

func (in *CompatibilityOverride) DeepCopyInto(out *CompatibilityOverride)

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

type DeletionProgressEntry

type DeletionProgressEntry struct {
	// ServerName is the PaperMCServer name.
	ServerName string `json:"serverName"`

	// Namespace is the PaperMCServer namespace.
	Namespace string `json:"namespace"`

	// JARDeleted indicates the JAR file has been removed from disk.
	JARDeleted bool `json:"jarDeleted"`

	// DeletedAt is when the JAR was actually deleted.
	// +optional
	DeletedAt *metav1.Time `json:"deletedAt,omitempty"`
}

DeletionProgressEntry tracks JAR cleanup status for one server during plugin deletion.

func (*DeletionProgressEntry) DeepCopy

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

func (*DeletionProgressEntry) DeepCopyInto

func (in *DeletionProgressEntry) DeepCopyInto(out *DeletionProgressEntry)

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

type GracefulShutdown

type GracefulShutdown struct {
	// Timeout is the shutdown timeout (must match terminationGracePeriodSeconds).
	Timeout metav1.Duration `json:"timeout"`
}

GracefulShutdown defines graceful shutdown configuration.

func (*GracefulShutdown) DeepCopy

func (in *GracefulShutdown) DeepCopy() *GracefulShutdown

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

func (*GracefulShutdown) DeepCopyInto

func (in *GracefulShutdown) DeepCopyInto(out *GracefulShutdown)

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

type MaintenanceWindow

type MaintenanceWindow struct {
	// Cron is the schedule for applying updates (e.g., "0 4 * * 0").
	Cron string `json:"cron"`

	// Enabled determines if the maintenance window is active.
	Enabled bool `json:"enabled"`
}

MaintenanceWindow defines the time window for applying updates.

func (*MaintenanceWindow) DeepCopy

func (in *MaintenanceWindow) DeepCopy() *MaintenanceWindow

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

func (*MaintenanceWindow) DeepCopyInto

func (in *MaintenanceWindow) DeepCopyInto(out *MaintenanceWindow)

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

type MatchedInstance

type MatchedInstance struct {
	// Name is the server name.
	Name string `json:"name"`

	// Namespace is the server namespace.
	Namespace string `json:"namespace"`

	// Version is the server's current Paper version.
	Version string `json:"version"`

	// Compatible indicates if the plugin is compatible with this server.
	Compatible bool `json:"compatible"`
}

MatchedInstance represents a PaperMCServer instance matched by the selector.

func (*MatchedInstance) DeepCopy

func (in *MatchedInstance) DeepCopy() *MatchedInstance

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

func (*MatchedInstance) DeepCopyInto

func (in *MatchedInstance) DeepCopyInto(out *MatchedInstance)

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

type PaperMCServer

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

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of PaperMCServer
	// +required
	Spec PaperMCServerSpec `json:"spec"`

	// status defines the observed state of PaperMCServer
	// +optional
	Status PaperMCServerStatus `json:"status,omitempty,omitzero"`
}

PaperMCServer is the Schema for the papermcservers API.

func (*PaperMCServer) DeepCopy

func (in *PaperMCServer) DeepCopy() *PaperMCServer

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

func (*PaperMCServer) DeepCopyInto

func (in *PaperMCServer) DeepCopyInto(out *PaperMCServer)

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

func (*PaperMCServer) DeepCopyObject

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

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

type PaperMCServerList

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

PaperMCServerList contains a list of PaperMCServer.

func (*PaperMCServerList) DeepCopy

func (in *PaperMCServerList) DeepCopy() *PaperMCServerList

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

func (*PaperMCServerList) DeepCopyInto

func (in *PaperMCServerList) DeepCopyInto(out *PaperMCServerList)

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

func (*PaperMCServerList) DeepCopyObject

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

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

type PaperMCServerSpec

type PaperMCServerSpec struct {
	// UpdateStrategy defines the update strategy for Paper version.
	// Valid values: "latest", "auto", "pin", "build-pin".
	// - latest: always use latest available version from Docker Hub
	// - auto: use constraint solver to find best version compatible with plugins
	// - pin: pin to specific version, auto-update to latest build (requires version field)
	// - build-pin: pin to specific version and build (requires version and build fields)
	// +kubebuilder:validation:Enum=latest;auto;pin;build-pin
	UpdateStrategy string `json:"updateStrategy"`

	// Version specifies the target Paper version (required for pin and build-pin strategies).
	// Example: "1.21.1" for a Minecraft version.
	// +optional
	Version string `json:"version,omitempty"`

	// Build specifies the target Paper build number (required for build-pin strategy, optional for pin).
	// If set with pin strategy, it serves as a minimum build; operator will still auto-update to newer builds.
	// If set with build-pin strategy, operator will pin to this exact build.
	// +optional
	Build *int `json:"build,omitempty"`

	// UpdateDelay is the grace period before applying Paper updates.
	// +optional
	UpdateDelay *metav1.Duration `json:"updateDelay,omitempty"`

	// UpdateSchedule defines when to check and apply updates.
	UpdateSchedule UpdateSchedule `json:"updateSchedule"`

	// GracefulShutdown configures graceful server shutdown.
	GracefulShutdown GracefulShutdown `json:"gracefulShutdown"`

	// RCON configures RCON for graceful shutdown.
	RCON RCONConfig `json:"rcon"`

	// Service configures the Kubernetes Service for this server.
	// +optional
	Service ServiceConfig `json:"service,omitempty"`

	// PodTemplate is the template for the StatefulSet pod.
	PodTemplate corev1.PodTemplateSpec `json:"podTemplate"`
}

PaperMCServerSpec defines the desired state of PaperMCServer.

func (*PaperMCServerSpec) DeepCopy

func (in *PaperMCServerSpec) DeepCopy() *PaperMCServerSpec

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

func (*PaperMCServerSpec) DeepCopyInto

func (in *PaperMCServerSpec) DeepCopyInto(out *PaperMCServerSpec)

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

type PaperMCServerStatus

type PaperMCServerStatus struct {
	// CurrentVersion is the currently running Paper version.
	// +optional
	CurrentVersion string `json:"currentVersion,omitempty"`

	// CurrentBuild is the currently running Paper build number.
	// +optional
	CurrentBuild int `json:"currentBuild,omitempty"`

	// DesiredVersion is the target Paper version the operator wants to run.
	// +optional
	DesiredVersion string `json:"desiredVersion,omitempty"`

	// DesiredBuild is the target Paper build number the operator wants to run.
	// +optional
	DesiredBuild int `json:"desiredBuild,omitempty"`

	// Plugins lists matched Plugin resources and their versions.
	// +optional
	Plugins []ServerPluginStatus `json:"plugins,omitempty"`

	// AvailableUpdate contains the next available update if any.
	// +optional
	AvailableUpdate *AvailableUpdate `json:"availableUpdate,omitempty"`

	// LastUpdate records the most recent update attempt.
	// +optional
	LastUpdate *UpdateHistory `json:"lastUpdate,omitempty"`

	// UpdateBlocked indicates if updates are blocked due to compatibility issues.
	// +optional
	UpdateBlocked *UpdateBlockedStatus `json:"updateBlocked,omitempty"`

	// Conditions represent the current state of the PaperMCServer resource.
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

PaperMCServerStatus defines the observed state of PaperMCServer.

func (*PaperMCServerStatus) DeepCopy

func (in *PaperMCServerStatus) DeepCopy() *PaperMCServerStatus

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

func (*PaperMCServerStatus) DeepCopyInto

func (in *PaperMCServerStatus) DeepCopyInto(out *PaperMCServerStatus)

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

type Plugin

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

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of Plugin
	// +required
	Spec PluginSpec `json:"spec"`

	// status defines the observed state of Plugin
	// +optional
	Status PluginStatus `json:"status,omitempty,omitzero"`
}

Plugin is the Schema for the plugins API.

func (*Plugin) DeepCopy

func (in *Plugin) DeepCopy() *Plugin

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

func (*Plugin) DeepCopyInto

func (in *Plugin) DeepCopyInto(out *Plugin)

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

func (*Plugin) DeepCopyObject

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

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

type PluginList

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

PluginList contains a list of Plugin.

func (*PluginList) DeepCopy

func (in *PluginList) DeepCopy() *PluginList

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

func (*PluginList) DeepCopyInto

func (in *PluginList) DeepCopyInto(out *PluginList)

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

func (*PluginList) DeepCopyObject

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

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

type PluginRef

type PluginRef struct {
	// Name is the Plugin name.
	Name string `json:"name"`

	// Namespace is the Plugin namespace.
	Namespace string `json:"namespace"`
}

PluginRef references a Plugin resource.

func (*PluginRef) DeepCopy

func (in *PluginRef) DeepCopy() *PluginRef

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

func (*PluginRef) DeepCopyInto

func (in *PluginRef) DeepCopyInto(out *PluginRef)

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

type PluginSource

type PluginSource struct {
	// Type specifies the plugin repository type.
	// +kubebuilder:validation:Enum=hangar;modrinth;spigot;url
	Type string `json:"type"`

	// Project is the plugin project identifier (for hangar/modrinth/spigot).
	// +optional
	Project string `json:"project,omitempty"`

	// URL is the direct download URL (for type: url).
	// +optional
	URL string `json:"url,omitempty"`
}

PluginSource defines the source of a plugin.

func (*PluginSource) DeepCopy

func (in *PluginSource) DeepCopy() *PluginSource

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

func (*PluginSource) DeepCopyInto

func (in *PluginSource) DeepCopyInto(out *PluginSource)

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

type PluginSpec

type PluginSpec struct {
	// Source specifies where to fetch the plugin.
	Source PluginSource `json:"source"`

	// UpdateStrategy defines how plugin versions are managed.
	// Valid values: "latest", "auto", "pin", "build-pin".
	// - latest: always use the latest available version from the repository
	// - auto: use constraint solver to find best version compatible with matched servers
	// - pin: pin to specific version (requires version field), auto-update to latest build
	// - build-pin: pin to specific version and build (requires version and build fields)
	// +kubebuilder:validation:Enum=latest;auto;pin;build-pin
	// +kubebuilder:default=latest
	UpdateStrategy string `json:"updateStrategy,omitempty"`

	// Version specifies the target plugin version (required for pin and build-pin strategies).
	// Example: "2.5.0" for a semantic version.
	// +optional
	Version string `json:"version,omitempty"`

	// Build specifies the target plugin build number (optional, only used with build-pin strategy).
	// If set, the operator will pin to this exact build of the specified version.
	// +optional
	Build *int `json:"build,omitempty"`

	// UpdateDelay is the grace period before auto-applying new versions.
	// +optional
	UpdateDelay *metav1.Duration `json:"updateDelay,omitempty"`

	// InstanceSelector selects which PaperMCServer instances to apply this plugin to.
	InstanceSelector metav1.LabelSelector `json:"instanceSelector"`

	// Port is the network port that this plugin exposes (optional).
	// If specified, this port will be added to the Service of all matched servers (TCP+UDP).
	// Example: 8123 for Dynmap web interface.
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	Port *int32 `json:"port,omitempty"`

	// CompatibilityOverride allows manual compatibility specification for edge cases.
	// +optional
	CompatibilityOverride *CompatibilityOverride `json:"compatibilityOverride,omitempty"`
}

PluginSpec defines the desired state of Plugin.

func (*PluginSpec) DeepCopy

func (in *PluginSpec) DeepCopy() *PluginSpec

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

func (*PluginSpec) DeepCopyInto

func (in *PluginSpec) DeepCopyInto(out *PluginSpec)

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

type PluginStatus

type PluginStatus struct {
	// AvailableVersions contains cached metadata from the plugin repository.
	// +optional
	AvailableVersions []PluginVersionInfo `json:"availableVersions,omitempty"`

	// MatchedInstances lists servers this plugin applies to with per-server resolved versions.
	// +optional
	MatchedInstances []MatchedInstance `json:"matchedInstances,omitempty"`

	// RepositoryStatus indicates the plugin repository availability.
	// +optional
	// +kubebuilder:validation:Enum=available;unavailable;orphaned
	RepositoryStatus string `json:"repositoryStatus,omitempty"`

	// LastFetched is the timestamp of the last API fetch.
	// +optional
	LastFetched *metav1.Time `json:"lastFetched,omitempty"`

	// DeletionProgress tracks JAR cleanup per server during plugin deletion.
	// This field is populated when the plugin is being deleted (has DeletionTimestamp).
	// +optional
	DeletionProgress []DeletionProgressEntry `json:"deletionProgress,omitempty"`

	// Conditions represent the current state of the Plugin resource.
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

PluginStatus defines the observed state of Plugin.

func (*PluginStatus) DeepCopy

func (in *PluginStatus) DeepCopy() *PluginStatus

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

func (*PluginStatus) DeepCopyInto

func (in *PluginStatus) DeepCopyInto(out *PluginStatus)

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

type PluginVersionInfo

type PluginVersionInfo struct {
	// Version is the plugin version string.
	Version string `json:"version"`

	// MinecraftVersions lists compatible Minecraft versions.
	MinecraftVersions []string `json:"minecraftVersions"`

	// DownloadURL is the URL to download this version.
	DownloadURL string `json:"downloadURL"`

	// Hash is the SHA256 hash of the plugin JAR.
	Hash string `json:"hash"`

	// CachedAt is when this metadata was cached.
	CachedAt metav1.Time `json:"cachedAt"`

	// ReleasedAt is when this version was released.
	ReleasedAt metav1.Time `json:"releasedAt"`
}

PluginVersionInfo contains metadata about a specific plugin version.

func (*PluginVersionInfo) DeepCopy

func (in *PluginVersionInfo) DeepCopy() *PluginVersionInfo

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

func (*PluginVersionInfo) DeepCopyInto

func (in *PluginVersionInfo) DeepCopyInto(out *PluginVersionInfo)

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

type PluginVersionPair

type PluginVersionPair struct {
	// PluginRef references the Plugin resource.
	PluginRef PluginRef `json:"pluginRef"`

	// Version is the plugin version.
	Version string `json:"version"`
}

PluginVersionPair pairs a plugin with its version.

func (*PluginVersionPair) DeepCopy

func (in *PluginVersionPair) DeepCopy() *PluginVersionPair

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

func (*PluginVersionPair) DeepCopyInto

func (in *PluginVersionPair) DeepCopyInto(out *PluginVersionPair)

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

type RCONConfig

type RCONConfig struct {
	// Enabled determines if RCON is enabled.
	Enabled bool `json:"enabled"`

	// PasswordSecret references the Secret containing the RCON password.
	PasswordSecret SecretKeyRef `json:"passwordSecret"`

	// Port is the RCON port.
	// +optional
	// +kubebuilder:default=25575
	Port int32 `json:"port,omitempty"`
}

RCONConfig defines RCON configuration for the server.

func (*RCONConfig) DeepCopy

func (in *RCONConfig) DeepCopy() *RCONConfig

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

func (*RCONConfig) DeepCopyInto

func (in *RCONConfig) DeepCopyInto(out *RCONConfig)

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

type SecretKeyRef

type SecretKeyRef struct {
	// Name is the Secret name.
	Name string `json:"name"`

	// Key is the key within the Secret.
	Key string `json:"key"`
}

SecretKeyRef references a key in a Secret.

func (*SecretKeyRef) DeepCopy

func (in *SecretKeyRef) DeepCopy() *SecretKeyRef

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

func (*SecretKeyRef) DeepCopyInto

func (in *SecretKeyRef) DeepCopyInto(out *SecretKeyRef)

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

type ServerPluginStatus

type ServerPluginStatus struct {
	// PluginRef references the Plugin resource.
	PluginRef PluginRef `json:"pluginRef"`

	// ResolvedVersion is the plugin version resolved for this server.
	ResolvedVersion string `json:"resolvedVersion"`

	// CurrentVersion is the currently installed plugin version.
	// +optional
	CurrentVersion string `json:"currentVersion,omitempty"`

	// DesiredVersion is the target plugin version the operator wants to install.
	// +optional
	DesiredVersion string `json:"desiredVersion,omitempty"`

	// Compatible indicates if this version is compatible with the server.
	Compatible bool `json:"compatible"`

	// Source is the plugin repository type.
	Source string `json:"source"`

	// PendingDeletion marks the plugin for removal on next server restart.
	// This is set when the Plugin CRD is deleted but the JAR is still on disk.
	// +optional
	PendingDeletion bool `json:"pendingDeletion,omitempty"`

	// InstalledJARName is the filename of the installed JAR in /data/plugins/.
	// Example: "BlueMap-5.4-paper.jar". Used for targeted deletion.
	// +optional
	InstalledJARName string `json:"installedJarName,omitempty"`
}

ServerPluginStatus represents a plugin's status for this server.

func (*ServerPluginStatus) DeepCopy

func (in *ServerPluginStatus) DeepCopy() *ServerPluginStatus

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

func (*ServerPluginStatus) DeepCopyInto

func (in *ServerPluginStatus) DeepCopyInto(out *ServerPluginStatus)

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

type ServiceConfig

type ServiceConfig struct {
	// Type is the Service type (LoadBalancer, NodePort, or ClusterIP).
	// +optional
	// +kubebuilder:default=LoadBalancer
	// +kubebuilder:validation:Enum=LoadBalancer;NodePort;ClusterIP
	Type corev1.ServiceType `json:"type,omitempty"`

	// Annotations are custom annotations for the Service (e.g., for LoadBalancer configuration).
	// Examples: service.cilium.io/global, metallb.universe.tf/loadBalancerIPs
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// LoadBalancerIP is the IP address for LoadBalancer type services.
	// +optional
	LoadBalancerIP string `json:"loadBalancerIP,omitempty"`
}

ServiceConfig defines configuration for the Kubernetes Service.

func (*ServiceConfig) DeepCopy

func (in *ServiceConfig) DeepCopy() *ServiceConfig

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

func (*ServiceConfig) DeepCopyInto

func (in *ServiceConfig) DeepCopyInto(out *ServiceConfig)

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

type UpdateBlockedStatus

type UpdateBlockedStatus struct {
	// Blocked indicates if updates are currently blocked.
	Blocked bool `json:"blocked"`

	// Reason provides a human-readable explanation for the block.
	// +optional
	Reason string `json:"reason,omitempty"`

	// BlockedBy contains details about which plugin is blocking the update.
	// +optional
	BlockedBy *BlockedByInfo `json:"blockedBy,omitempty"`
}

UpdateBlockedStatus indicates if updates are blocked due to compatibility issues.

func (*UpdateBlockedStatus) DeepCopy

func (in *UpdateBlockedStatus) DeepCopy() *UpdateBlockedStatus

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

func (*UpdateBlockedStatus) DeepCopyInto

func (in *UpdateBlockedStatus) DeepCopyInto(out *UpdateBlockedStatus)

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

type UpdateHistory

type UpdateHistory struct {
	// AppliedAt is when the update was applied.
	AppliedAt metav1.Time `json:"appliedAt"`

	// PreviousVersion is the Paper version before the update.
	PreviousVersion string `json:"previousVersion"`

	// Successful indicates if the update succeeded.
	Successful bool `json:"successful"`
}

UpdateHistory records the last update attempt.

func (*UpdateHistory) DeepCopy

func (in *UpdateHistory) DeepCopy() *UpdateHistory

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

func (*UpdateHistory) DeepCopyInto

func (in *UpdateHistory) DeepCopyInto(out *UpdateHistory)

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

type UpdateSchedule

type UpdateSchedule struct {
	// CheckCron is the cron schedule for checking updates (e.g., "0 3 * * *").
	CheckCron string `json:"checkCron"`

	// MaintenanceWindow defines when updates can be applied.
	MaintenanceWindow MaintenanceWindow `json:"maintenanceWindow"`
}

UpdateSchedule defines when to check and apply updates.

func (*UpdateSchedule) DeepCopy

func (in *UpdateSchedule) DeepCopy() *UpdateSchedule

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

func (*UpdateSchedule) DeepCopyInto

func (in *UpdateSchedule) DeepCopyInto(out *UpdateSchedule)

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