Documentation
¶
Overview ¶
pkg/apis/common/constants.go
pkg/apis/common/types.go +kubebuilder:object:generate=true +groupName=common.infini.cloud
Index ¶
- Constants
- Variables
- type AffinitySpec
- type AppConfigData
- type ConfigMountSpec
- type ContainerSecurityContextSpec
- type DeploymentStrategyPart
- type EnvFromSourceSpec
- type EnvVarSpec
- type ImageSpec
- type NodeSelectorSpec
- type PersistenceSpec
- type PodDisruptionBudgetSpecV1
- type PodDisruptionBudgetSpecV1beta1
- type PodManagementPolicyTypePart
- type PodSecurityContextSpec
- type PortSpec
- type ProbesConfig
- type ResourcesSpec
- type RuntimeConfig
- type SecretMountSpec
- type ServiceAccountSpec
- type ServiceSpecPart
- type StatefulSetUpdateStrategyPart
- type StorageSpec
- type TolerationsSpec
- type WorkloadReference
Constants ¶
const ( AppNameLabel = "infini.cloud/application-name" // Label for ApplicationDefinition name CompNameLabel = "infini.cloud/component-name" // Label for ComponentDefinition name (type) CompInstanceLabel = "infini.cloud/component-instance" // Label for ApplicationComponent name (instance) ManagedByLabel = "app.kubernetes.io/managed-by" // Standard Kubernetes label OperatorName = "runtime-operator" // Name of this operator InClusterNamespacePath = "/var/run/secrets/kubernetes.io/serviceaccount/namespace" )
Constants for standard labels and operator identification.
Variables ¶
var Namespace string
Functions ¶
This section is empty.
Types ¶
type AppConfigData ¶
AppConfigData holds configuration data as key-value strings (filename -> content).
func (AppConfigData) DeepCopy ¶
func (in AppConfigData) DeepCopy() AppConfigData
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppConfigData.
func (AppConfigData) DeepCopyInto ¶
func (in AppConfigData) DeepCopyInto(out *AppConfigData)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigMountSpec ¶
type ConfigMountSpec struct {
// +kubebuilder:validation:Required
Name string `json:"name"`
// +optional
VolumeName string `json:"volumeName,omitempty"`
// +kubebuilder:validation:Required
MountPath string `json:"mountPath"`
// +optional
SubPath *string `json:"subPath,omitempty"`
// +optional
Items []corev1.KeyToPath `json:"items,omitempty"`
// +optional
ReadOnly *bool `json:"readOnly,omitempty"`
}
ConfigMountSpec defines how to mount a ConfigMap as a volume.
func (*ConfigMountSpec) DeepCopy ¶
func (in *ConfigMountSpec) DeepCopy() *ConfigMountSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMountSpec.
func (*ConfigMountSpec) DeepCopyInto ¶
func (in *ConfigMountSpec) DeepCopyInto(out *ConfigMountSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ContainerSecurityContextSpec ¶
type ContainerSecurityContextSpec = corev1.SecurityContext
ContainerSecurityContextSpec uses corev1.SecurityContext directly.
type DeploymentStrategyPart ¶
type DeploymentStrategyPart = appsv1.DeploymentStrategy
DeploymentStrategyPart uses appsv1.DeploymentStrategy directly.
type EnvFromSourceSpec ¶
type EnvFromSourceSpec = corev1.EnvFromSource
EnvFromSourceSpec uses corev1.EnvFromSource directly.
type ImageSpec ¶
type ImageSpec struct {
// +optional
Repository string `json:"repository,omitempty"`
// +optional
Tag string `json:"tag,omitempty"`
// +optional
PullPolicy corev1.PullPolicy `json:"pullPolicy,omitempty"`
}
ImageSpec defines the container image configuration.
func (*ImageSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.
func (*ImageSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSelectorSpec ¶
NodeSelectorSpec uses map directly.
func (NodeSelectorSpec) DeepCopy ¶
func (in NodeSelectorSpec) DeepCopy() NodeSelectorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelectorSpec.
func (NodeSelectorSpec) DeepCopyInto ¶
func (in NodeSelectorSpec) DeepCopyInto(out *NodeSelectorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PersistenceSpec ¶
type PersistenceSpec struct {
// +optional
Enabled bool `json:"enabled,omitempty"`
// +optional
Size *resource.Quantity `json:"size,omitempty"`
// +optional
VolumeName string `json:"volumeName,omitempty"`
// +optional
MountPath string `json:"mountPath,omitempty"`
// +optional
StorageClassName *string `json:"storageClassName,omitempty"`
// +optional
AccessModes []corev1.PersistentVolumeAccessMode `json:"accessModes,omitempty"`
}
PersistenceSpec defines configuration for a shared PersistentVolumeClaim (for Deployment).
func (*PersistenceSpec) DeepCopy ¶
func (in *PersistenceSpec) DeepCopy() *PersistenceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistenceSpec.
func (*PersistenceSpec) DeepCopyInto ¶
func (in *PersistenceSpec) DeepCopyInto(out *PersistenceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodDisruptionBudgetSpecV1 ¶
type PodDisruptionBudgetSpecV1 = policyv1.PodDisruptionBudgetSpec
双版本类型定义
type PodDisruptionBudgetSpecV1beta1 ¶
type PodDisruptionBudgetSpecV1beta1 = policyv1beta1.PodDisruptionBudgetSpec
双版本类型定义
type PodManagementPolicyTypePart ¶
type PodManagementPolicyTypePart = appsv1.PodManagementPolicyType
PodManagementPolicyTypePart uses appsv1.PodManagementPolicyType directly.
type PodSecurityContextSpec ¶
type PodSecurityContextSpec = corev1.PodSecurityContext
PodSecurityContextSpec uses corev1.PodSecurityContext directly.
type PortSpec ¶
type PortSpec struct {
// +optional
Name string `json:"name,omitempty"`
// +kubebuilder:validation:Required
ContainerPort int32 `json:"containerPort"`
// +optional
Protocol corev1.Protocol `json:"protocol,omitempty"`
// +optional
TargetPort *intstr.IntOrString `json:"targetPort,omitempty"`
// +optional
NodePort int32 `json:"nodePort,omitempty"`
}
PortSpec defines a container or service port.
func (*PortSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortSpec.
func (*PortSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProbesConfig ¶
type ProbesConfig struct {
// +optional
Liveness *corev1.Probe `json:"liveness,omitempty"`
// +optional
Readiness *corev1.Probe `json:"readiness,omitempty"`
// +optional
Startup *corev1.Probe `json:"startup,omitempty"`
}
ProbesConfig groups different types of probes.
func (*ProbesConfig) DeepCopy ¶
func (in *ProbesConfig) DeepCopy() *ProbesConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProbesConfig.
func (*ProbesConfig) DeepCopyInto ¶
func (in *ProbesConfig) DeepCopyInto(out *ProbesConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourcesSpec ¶
type ResourcesSpec struct {
// +optional
Limits corev1.ResourceList `json:"limits,omitempty"`
// +optional
Requests corev1.ResourceList `json:"requests,omitempty"`
}
ResourcesSpec defines the CPU and Memory requests and limits.
func (*ResourcesSpec) DeepCopy ¶
func (in *ResourcesSpec) DeepCopy() *ResourcesSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcesSpec.
func (*ResourcesSpec) DeepCopyInto ¶
func (in *ResourcesSpec) DeepCopyInto(out *ResourcesSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RuntimeConfig ¶
type RuntimeConfig struct {
// Replicas defines the number of desired pods.
// +kubebuilder:validation:Required
// +kubebuilder:validation:Minimum=0
// +optional
Replicas *int32 `json:"replicas,omitempty"` // Pointer to allow zero value
// Image specifies the container image details.
// +kubebuilder:validation:Required
// +optional
Image *ImageSpec `json:"image,omitempty"` // Pointer as it's checked for nil
Command []string `json:"command,omitempty" protobuf:"bytes,3,rep,name=command"`
Args []string `json:"args,omitempty" protobuf:"bytes,4,rep,name=args"`
// Ports defines the network ports exposed by the container.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinItems=1
// +optional
Ports []PortSpec `json:"ports,omitempty"` // Slice, builder checks for emptiness
InitContainer *corev1.Container
// Resources specifies CPU and memory resource requests and limits for the main container.
// +optional
Resources *ResourcesSpec `json:"resources,omitempty"`
// Env defines environment variables for the main container.
// +optional
Env []EnvVarSpec `json:"env,omitempty"` // EnvVarSpec is likely corev1.EnvVar
// EnvFrom defines sources to populate environment variables from (e.g., ConfigMaps, Secrets).
// +optional
EnvFrom []EnvFromSourceSpec `json:"envFrom,omitempty"` // EnvFromSourceSpec is likely corev1.EnvFromSource
// Probes defines liveness, readiness, and startup probe configurations.
// +optional
Probes *ProbesConfig `json:"probes,omitempty"`
// ContainerSecurityContext defines security settings specific to the main container.
// +optional
ContainerSecurityContext *ContainerSecurityContextSpec `json:"containerSecurityContext,omitempty"` // Likely *corev1.SecurityContext
// PodSecurityContext defines security settings for the entire pod.
// +optional
PodSecurityContext *PodSecurityContextSpec `json:"podSecurityContext,omitempty"` // Likely *corev1.PodSecurityContext
// ServiceAccount defines configuration for the Kubernetes Service Account.
// +optional
ServiceAccount *ServiceAccountSpec `json:"serviceAccount,omitempty"`
// NodeSelector specifies label selectors for node assignment.
// +optional
NodeSelector NodeSelectorSpec `json:"nodeSelector,omitempty"` // Likely map[string]string
// Tolerations specify pod tolerations for scheduling.
// +optional
Tolerations []TolerationsSpec `json:"tolerations,omitempty"` // Likely []corev1.Toleration
// Affinity specifies pod affinity and anti-affinity rules.
// +optional
Affinity *AffinitySpec `json:"affinity,omitempty"` // Likely *corev1.Affinity
// Persistence defines configuration for a shared PersistentVolumeClaim (typically for Deployment).
// +optional
Persistence *PersistenceSpec `json:"persistence,omitempty"`
// Storage defines the template for PersistentVolumeClaims created per replica (typically for StatefulSet).
// +optional
Storage *StorageSpec `json:"storage,omitempty"`
// Service defines how to expose the pods via a Kubernetes Service.
// +optional
Service *ServiceSpecPart `json:"service,omitempty"` // Use the helper struct defined below
// ConfigFiles provides configuration file content as key-value pairs (filename -> content).
// These will typically be mounted via a ConfigMap generated by the operator.
// +optional
ConfigFiles AppConfigData `json:"configFiles,omitempty"` // Likely map[string]string
// ConfigMounts specifies how to mount existing ConfigMaps as volumes.
// +optional
ConfigMounts []ConfigMountSpec `json:"configMounts,omitempty"`
// SecretMounts specifies how to mount existing Secrets as volumes.
// +optional
SecretMounts []SecretMountSpec `json:"secretMounts,omitempty"`
// AdditionalVolumes allows specifying custom volumes (e.g., emptyDir, hostPath) directly.
// Use with caution.
// +optional
AdditionalVolumes []corev1.Volume `json:"additionalVolumes,omitempty"`
// VolumeMounts allows specifying custom volume mounts for the main container.
// Use with caution, ensure volume names match defined volumes.
// +optional
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
// StatefulSetUpdateStrategy defines the update strategy for the StatefulSet.
// +optional
StatefulSetUpdateStrategy *StatefulSetUpdateStrategyPart `json:"statefulSetUpdateStrategy,omitempty"` // Likely *appsv1.StatefulSetUpdateStrategy
// PodManagementPolicy defines the pod management policy for the StatefulSet.
// +optional
PodManagementPolicy *PodManagementPolicyTypePart `json:"podManagementPolicy,omitempty"` // Likely *appsv1.PodManagementPolicyType
// PodDisruptionBudget defines the PDB settings for the deployment/statefulset.
// +optional
PodDisruptionBudgetBeta1 *PodDisruptionBudgetSpecV1beta1 `json:"podDisruptionBudgetBeta1,omitempty"`
PodDisruptionBudget *PodDisruptionBudgetSpecV1 `json:"podDisruptionBudget,omitempty"`
}
It includes core workload settings and potentially overrides for common components.
func (*RuntimeConfig) DeepCopy ¶
func (in *RuntimeConfig) DeepCopy() *RuntimeConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeConfig.
func (*RuntimeConfig) DeepCopyInto ¶
func (in *RuntimeConfig) DeepCopyInto(out *RuntimeConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretMountSpec ¶
type SecretMountSpec struct {
// +kubebuilder:validation:Required
SecretName string `json:"secretName"`
// +optional
VolumeName string `json:"volumeName,omitempty"`
// +kubebuilder:validation:Required
MountPath string `json:"mountPath"`
// +optional
Items []corev1.KeyToPath `json:"items,omitempty"`
// +optional
ReadOnly *bool `json:"readOnly,omitempty"`
}
SecretMountSpec defines how to mount a Secret as a volume.
func (*SecretMountSpec) DeepCopy ¶
func (in *SecretMountSpec) DeepCopy() *SecretMountSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretMountSpec.
func (*SecretMountSpec) DeepCopyInto ¶
func (in *SecretMountSpec) DeepCopyInto(out *SecretMountSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceAccountSpec ¶
type ServiceAccountSpec struct {
// +optional
Create *bool `json:"create,omitempty"` // Default: false
// +optional
Name string `json:"name,omitempty"`
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
}
ServiceAccountSpec defines Service Account creation and usage.
func (*ServiceAccountSpec) DeepCopy ¶
func (in *ServiceAccountSpec) DeepCopy() *ServiceAccountSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSpec.
func (*ServiceAccountSpec) DeepCopyInto ¶
func (in *ServiceAccountSpec) DeepCopyInto(out *ServiceAccountSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceSpecPart ¶
type ServiceSpecPart struct {
// Type specifies the Kubernetes Service type (ClusterIP, NodePort, LoadBalancer).
// Defaults to ClusterIP if not specified.
// +optional
Type *corev1.ServiceType `json:"type,omitempty"`
// Ports defines the ports the Service should expose.
// If not specified, ports from the main component config might be used.
// +optional
Ports []PortSpec `json:"ports,omitempty"`
// Annotations specific to the Service resource.
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
}
ServiceSpecPart is a helper struct grouping common Service configuration fields. Used within specific component configs like RuntimeConfig.
func (*ServiceSpecPart) DeepCopy ¶
func (in *ServiceSpecPart) DeepCopy() *ServiceSpecPart
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpecPart.
func (*ServiceSpecPart) DeepCopyInto ¶
func (in *ServiceSpecPart) DeepCopyInto(out *ServiceSpecPart)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StatefulSetUpdateStrategyPart ¶
type StatefulSetUpdateStrategyPart = appsv1.StatefulSetUpdateStrategy
StatefulSetUpdateStrategyPart uses appsv1.StatefulSetUpdateStrategy directly.
type StorageSpec ¶
type StorageSpec struct {
// +optional
Enabled bool `json:"enabled,omitempty"`
// +optional
Size *resource.Quantity `json:"size,omitempty"`
// +optional
VolumeClaimTemplateName string `json:"volumeClaimTemplateName,omitempty"`
// +optional
MountPath string `json:"mountPath,omitempty"`
// +optional
StorageClassName *string `json:"storageClassName,omitempty"`
// +optional
AccessModes []corev1.PersistentVolumeAccessMode `json:"accessModes,omitempty"`
// +optional
DataSubpath *string `json:"dataSubpath,omitempty"`
}
StorageSpec defines the template for PersistentVolumeClaims created per replica (for StatefulSet).
func (*StorageSpec) DeepCopy ¶
func (in *StorageSpec) DeepCopy() *StorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageSpec.
func (*StorageSpec) DeepCopyInto ¶
func (in *StorageSpec) DeepCopyInto(out *StorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TolerationsSpec ¶
type TolerationsSpec = corev1.Toleration
TolerationsSpec uses corev1.Toleration directly.
type WorkloadReference ¶
type WorkloadReference struct {
// +kubebuilder:validation:Required
APIVersion string `json:"apiVersion"`
// +kubebuilder:validation:Required
Kind string `json:"kind"`
}
WorkloadReference indicates the target Kubernetes workload type.
func (*WorkloadReference) DeepCopy ¶
func (in *WorkloadReference) DeepCopy() *WorkloadReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadReference.
func (*WorkloadReference) DeepCopyInto ¶
func (in *WorkloadReference) DeepCopyInto(out *WorkloadReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.