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 ¶
- Variables
- type AvailableUpdate
- type BlockedByInfo
- type CompatibilityOverride
- type DeletionProgressEntry
- type GracefulShutdown
- type MaintenanceWindow
- type MatchedInstance
- type PaperMCServer
- type PaperMCServerList
- type PaperMCServerSpec
- type PaperMCServerStatus
- type Plugin
- type PluginList
- type PluginRef
- type PluginSource
- type PluginSpec
- type PluginStatus
- type PluginVersionInfo
- type PluginVersionPair
- type RCONConfig
- type SecretKeyRef
- type ServerPluginStatus
- type ServiceConfig
- type UpdateBlockedStatus
- type UpdateHistory
- type UpdateSchedule
Constants ¶
This section is empty.
Variables ¶
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 ¶
func (in *CompatibilityOverride) DeepCopy() *CompatibilityOverride
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 ¶
func (in *DeletionProgressEntry) DeepCopy() *DeletionProgressEntry
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plugin.
func (*Plugin) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Plugin) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginRef.
func (*PluginRef) DeepCopyInto ¶
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.