Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BinPacking ¶
type BinPacking struct {
DataToNode []DataToNode `json:"-"`
Mapping []DBMapStruct `json:"-"`
}
BinPacking struct
type Combined ¶
type Combined struct {
PCConfType
BinPacking
}
Combined is a combination of the 2 main structs
type DBMapStruct ¶
type DBMapStruct struct {
DBMountPoint string `csv:"DB Mount Point"`
DBDeviceName string `csv:"DB Device Name"`
}
DBMapStruct struct holds the mapping between mount point and device names
type DataToNode ¶
DataToNode struct holds the relationship between a disk and its nodes
type PCConfType ¶
type PCConfType struct {
APIVersion string `yaml:"apiVersion" validate:"required" json:"apiVersion"`
Kind string `yaml:"kind" validate:"required" json:"kind"`
Metadata struct {
Name string `yaml:"name" json:"name"`
ClusterName string `yaml:"clusterName" json:"clusterName"`
} `yaml:"metadata" json:"metadata"`
Spec struct {
DB2 struct {
Required struct {
Role string `yaml:"role" validate:"oneof=optimized sandbox"`
Replicated bool `yaml:"replicated"`
DatabaseName string `yaml:"databaseName" validate:"required"`
InstancePort int `yaml:"instancePort" validate:"required"`
InstanceName string `yaml:"instanceName" validate:"required"`
InstanceID int `yaml:"instanceID" validate:"required"`
InstanceGD int `yaml:"instanceGD" validate:"required"`
FencedID int `yaml:"fencedID" validate:"required"`
FencedGD int `yaml:"fencedGD" validate:"required"`
InstanceSecret string `yaml:"instanceSecret" validate:"required"`
InstanceSecretVal string //calculated dynamically, base64 decoded
FencedName string `yaml:"fencedName" validate:"required"`
FencedSecret string `yaml:"fencedSecret" validate:"required"`
FencedSecretVal string //calculated dynamically, base64 decoded
DB2Version string `yaml:"db2Version" validate:"required"`
DB2Binary string `yaml:"db2Binary" validate:"required"`
DB2License string `yaml:"db2License" validate:"required"`
Organization string `yaml:"organization" validate:"oneof=row column"`
} `yaml:"required"`
Optional struct {
TopLevelDir string `yaml:"topLevelDir" json:"topLevelDir"`
NumInstances int `yaml:"numInstances" validate:"required"`
NumDB int `yaml:"numdb" validate:"required"`
} `yaml:"optional" json:"optional"`
} `yaml:"db2" json:"db2"`
Nodes struct {
Required struct {
NumNodes int `yaml:"numNodes" validate:"node-check,required"`
NVMEList [][]map[string]string `yaml:"nvmeList" validate:"nvme-check,gt=0,required" json:"NVMEList"`
IPAddresses []string `yaml:"ipAddresses" validate:"ip-check,gt=0,required,dive,ip" json:"ipAdresses"`
IPAddressesAsList string `json:"-"` //generated dynamically
Names []string `yaml:"names" validate:"names-check,gt=0,required" json:"names"`
NamesAsList string `json:"-"` //generated dynamically
Partitions int `yaml:"partitions" validate:"required" json:"partitions"`
SizePerPartition map[string]string `json:"-"` //generated dynamically
NodeInfoMap map[string]*nodeInfo `json:"-"` //generated dynamically
} `yaml:"required" json:"required"`
Optional struct {
DBPrimitiveNamePrefix string `yaml:"dbPrimitiveNamePrefix" json:"dbPrimitiveNamePrefix"`
} `yaml:"optional" json:"-"`
} `yaml:"nodes" json:"nodes"`
Linbit struct {
Required struct {
} `yaml:"required" json:"-"`
Optional struct {
NumStripes int `yaml:"numStripes" json:"numStripes"`
StripeSize string `yaml:"stripeSize" json:"stripeSize"`
VolumeDefinition struct {
Nodes struct {
Size string `yaml:"size" json:"size"`
Minor string `json:"-"` //generated dynamically
} `yaml:"nodes" json:"nodes"`
NFS struct {
Size string `yaml:"size" json:"size"`
NumNFSServers int `yaml:"numNFSServers" json:"numNFSServers"`
Minor string `json:"-"` //generated dynamically
} `yaml:"nfs" json:"nfs"`
DB2Local struct {
Size string `yaml:"size" json:"size"`
} `yaml:"db2local" json:"db2local"`
} `yaml:"volumeDefinition" json:"volumeDefinition"`
} `yaml:"optional" json:"optional"`
} `yaml:"linbit" json:"linbit"`
NFS struct {
Server struct {
Required struct {
VirtualIP string `yaml:"nfsVirtualIP" validate:"required,ip" json:"nfsVirtualIP"`
CIDRNetMask string `yaml:"cidrNetmask" validate:"required" json:"cidrNetmask"`
NIC string `yaml:"nic" validate:"required" json:"nic"`
ClientSpec string `json:"-"` //calculated dynamically
NodesForPlacement []string `json:"-"` //calculated dynamically
} `yaml:"required" json:"required"`
Optional struct {
Path string `yaml:"nfsPath" json:"nfsPath"`
ExportResourceDirectory string `yaml:"exportResourceDirectory" json:"exportResourceDirectory"`
MountpointName string `yaml:"mountpointName" json:"mountpointName"`
} `yaml:"optional" json:"-"`
} `yaml:"server" json:"server"`
Client struct {
Optional struct {
MountPoint string `yaml:"mountPoint" json:"mountPoint"`
} `yaml:"optional" json:"-"`
} `yaml:"client" json:"-"`
} `yaml:"nfs" json:"nfs"`
} `yaml:"spec" json:"spec"`
}
PCConfType is the main config file needed
func (*PCConfType) PreconfigureFields ¶
func (config *PCConfType) PreconfigureFields() error
PreconfigureFields preconfigures some fields for config struct
type S3Config ¶
type S3Config struct {
APIVersion string `yaml:"apiVersion"`
Kind string `yaml:"kind"`
Metadata struct {
Name string
} `yaml:"metadata"`
Spec struct {
UploadFile struct {
KeyName string `yaml:"keyName"`
Name string `yaml:"name"`
Log string `yaml:"log"`
} `yaml:"uploadFile"`
S3 struct {
APIKey string `yaml:"apiKey"`
ServiceInstanceID string `yaml:"serviceInstanceID"`
AuthEndpoint string `yaml:"authEndpoint"`
ServiceEndpoint string `yaml:"serviceEndpoint"`
BucketLocation string `yaml:"bucketLocation"`
BucketName string `yaml:"bucketName"`
PartSize string `yaml:"partSize"`
} `yaml:"s3"`
DownloadFile struct {
Prefix string `yaml:"prefix"`
Name string `yaml:"name"`
Log string `yaml:"log"`
} `yaml:"downloadFile"`
} `yaml:"spec"`
}
S3Config struct for S3 config yaml file
Click to show internal directories.
Click to hide internal directories.