75 lines
5.9 KiB
Go
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)"`
|
|
}
|