Files
truecharts/clustertool/pkg/charts/valuesYaml/persistenceValues.go
T
2024-10-19 15:18:05 +02:00

75 lines
5.9 KiB
Go

package valuesYaml
// ISCSIOptions represents the schema for iSCSI Options.
type ISCSIOptions struct {
TargetPortal string `yaml:"targetPortal" schema:"type:string,required:true" description:"targetPortal"`
IQN string `yaml:"iqn" schema:"type:string,required:true" description:"iqn"`
LUN int `yaml:"lun" schema:"type:int,default:0" description:"lun"`
AuthSession AuthSession `yaml:"authSession" schema:"type:dict,additional_attrs:true" description:"authSession"`
AuthDiscovery AuthDiscovery `yaml:"authDiscovery" schema:"type:dict,additional_attrs:true" description:"authDiscovery"`
}
// AuthSession represents the schema for authentication session in iSCSI Options.
type AuthSession struct {
Username string `yaml:"username" schema:"type:string" description:"username"`
Password string `yaml:"password" schema:"type:string" description:"password"`
UsernameInitiator string `yaml:"usernameInitiator" schema:"type:string" description:"usernameInitiator"`
PasswordInitiator string `yaml:"passwordInitiator" schema:"type:string" description:"passwordInitiator"`
}
// AuthDiscovery represents the schema for authentication discovery in iSCSI Options.
type AuthDiscovery struct {
Username string `yaml:"username" schema:"type:string" description:"username"`
Password string `yaml:"password" schema:"type:string" description:"password"`
UsernameInitiator string `yaml:"usernameInitiator" schema:"type:string" description:"usernameInitiator"`
PasswordInitiator string `yaml:"passwordInitiator" schema:"type:string" description:"passwordInitiator"`
}
// AutoPermissions represents the schema for Automatic Permissions Configuration.
type AutoPermissions struct {
Enabled bool `yaml:"enabled" schema:"type:boolean,default:false,show_subquestions_if:true" description:"enabled"`
Chown bool `yaml:"chown" schema:"show_if:[[enabled,=,true]],type:boolean,default:false" description:"Run CHOWN"`
Chmod string `yaml:"chmod" schema:"show_if:[[enabled,=,true]],type:string,valid_chars:'[0-9]{3}'" description:"Run CHMOD"`
Recursive bool `yaml:"recursive" schema:"show_if:[[enabled,=,true]],type:boolean,default:false" description:"Recursive"`
}
// HostPathOptions represents the schema for Host Path Options.
type HostPathOptions struct {
Path string `yaml:"path" schema:"type:string,required:true" description:"Path inside the container the storage is mounted"`
}
// StaticBinding represents the schema for Static Fixed PVC Bindings.
type StaticBinding struct {
Mode string `yaml:"mode" schema:"type:string,default:disabled,enum:disabled,smb,nfs" description:"mode"`
Server string `yaml:"server" schema:"show_if:[[mode,!=,disabled]],type:string,default:'myserver'" description:"Server"`
Share string `yaml:"share" schema:"show_if:[[mode,!=,disabled]],type:string,default:'/myshare'" description:"Share"`
User string `yaml:"user" schema:"show_if:[[mode,=,smb]],type:string,default:'myuser'" description:"User"`
Domain string `yaml:"domain" schema:"show_if:[[mode,=,smb]],type:string" description:"Domain"`
Password string `yaml:"password" schema:"show_if:[[mode,=,smb]],type:string" description:"Password"`
}
// VolumeSnapshot represents the schema for Volume Snapshots.
type VolumeSnapshot struct {
Name string `yaml:"name" schema:"type:string,default:mysnapshot" description:"Name"`
VolumeSnapshotClassName string `yaml:"volumeSnapshotClassName" schema:"type:string" description:"volumeSnapshot Class Name (Advanced)"`
}
// Persistence represents the schema for Integrated Persistent Storage.
type Persistence struct {
Name string `yaml:"name,omitempty" schema:"type:string" description:"Custom storage name"`
Enabled bool `yaml:"enabled" schema:"type:boolean,default:true,hidden:true" description:"Enable Integrated Persistent Storage"`
Type string `yaml:"type" schema:"type:string,default:pvc,enum:pvc,hostPath,emptyDir,nfs,iscsi" description:"Sets the persistence type, Anything other than PVC could break rollback!"`
Server string `yaml:"server" schema:"show_if:[[type,=,nfs]]type:string default:''" description:"NFS Server"`
Path string `yaml:"path" schema:"show_if:[[type,=,nfs]],type:string" description:"Path on NFS Server"`
ISCSI ISCSIOptions `yaml:"iscsi" schema:"show_if:[[type,=,iscsi]],type:dict,additional_attrs:true" description:"iSCSI Options"`
AutoPermissions AutoPermissions `yaml:"autoPermissions" schema:"show_if:[[type,!=,pvc]],type:dict,additional_attrs:true" description:"Automatic Permissions Configuration"`
ReadOnly bool `yaml:"readOnly" schema:"type:boolean,default:false" description:"Read Only"`
HostPath HostPathOptions `yaml:"hostPath" schema:"show_if:[[type,=,hostPath]],type:hostpath" description:"Host Path"`
MountPath string `yaml:"mountPath" schema:"type:string,required:true,valid_chars:^\\/([a-zA-Z0-9._-]+(\\s?[a-zA-Z0.9._-]+|\\/?)$" description:"Path inside the container the storage is mounted"`
Medium string `yaml:"medium" schema:"show_if:[[type,=,emptyDir]],type:string,enum:'Memory'" description:"EmptyDir Medium"`
Size string `yaml:"size" schema:"show_if:[[type,=,pvc]],type:string,default:256Gi" description:"Size Quotum of Storage"`
StorageClass string `yaml:"storageClass" schema:"show_if:[[type,=,pvc]],type:string" description:"storageClass (Advanced)"`
Static StaticBinding `yaml:"static" schema:"show_if:[[type,=,pvc]],type:dict,additional_attrs:true" description:"Static Fixed PVC Bindings (Experimental)"`
VolumeSnapshots []VolumeSnapshot `yaml:"volumeSnapshots" schema:"show_if:[[type,=,pvc]],type:list,default:[]" description:"Volume Snapshots (Experimental)"`
}