Documentation
¶
Index ¶
- Variables
- type Config
- type Dependencies
- type Deployment
- type DeploymentInfo
- type DeploymentInfoDetails
- type DeploymentOperator
- type DeploymentReplication
- type DeploymentReplicationInfo
- type DeploymentReplicationInfoDetails
- type DeploymentReplicationOperator
- type Endpoint
- type EndpointInfo
- type LocalStorage
- type LocalStorageInfo
- type LocalStorageInfoDetails
- type Member
- type MemberGroupInfo
- type MemberInfo
- type MemberOfCluster
- type OperatorDependency
- type OperatorReference
- type OperatorType
- type Operators
- type Server
- type StateColor
- type StorageOperator
- type Volume
- type VolumeInfo
Constants ¶
This section is empty.
Variables ¶
var ( NotFoundError = errors.New("not found") )
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Namespace string
Address string // Address to listen on
TLSSecretName string // Name of secret containing TLS certificate
TLSSecretNamespace string // Namespace of secret containing TLS certificate
PodName string // Name of the Pod we're running in
PodIP string // IP address of the Pod we're running in
AdminSecretName string // Name of basic authentication secret containing the admin username+password of the dashboard
AllowAnonymous bool // If set, anonymous access to dashboard is allowed
}
Config settings for the Server
type Dependencies ¶
type Dependencies struct {
LivenessProbe *probe.LivenessProbe
Deployment OperatorDependency
DeploymentReplication OperatorDependency
Storage OperatorDependency
Backup OperatorDependency
Apps OperatorDependency
ML OperatorDependency
Analytics OperatorDependency
Networking OperatorDependency
Platform OperatorDependency
Scheduler OperatorDependency
ClusterSync OperatorDependency
Operators Operators
Secrets typedCore.SecretInterface
}
Dependencies of the Server
type Deployment ¶
type Deployment interface {
Name() string
Namespace() string
GetMode() api.DeploymentMode
Environment() api.Environment
StateColor() StateColor
PodCount() int
ReadyPodCount() int
VolumeCount() int
ReadyVolumeCount() int
StorageClasses() []string
DatabaseURL() string
DatabaseVersion() (string, string)
Members() map[api.ServerGroup][]Member
}
Deployment is the API implemented by an ArangoDeployment.
type DeploymentInfo ¶
type DeploymentInfo struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
Mode api.DeploymentMode `json:"mode"`
Environment api.Environment `json:"environment"`
StateColor StateColor `json:"state_color"`
PodCount int `json:"pod_count"`
ReadyPodCount int `json:"ready_pod_count"`
VolumeCount int `json:"volume_count"`
ReadyVolumeCount int `json:"ready_volume_count"`
StorageClasses []string `json:"storage_classes"`
DatabaseURL string `json:"database_url"`
DatabaseVersion string `json:"database_version"`
DatabaseLicense string `json:"database_license"`
}
DeploymentInfo is the information returned per deployment.
type DeploymentInfoDetails ¶
type DeploymentInfoDetails struct {
DeploymentInfo
MemberGroups []MemberGroupInfo `json:"member_groups"`
}
DeploymentInfoDetails is the detailed information returned per deployment.
type DeploymentOperator ¶
type DeploymentOperator interface {
// GetDeployments returns basic information for all deployments managed by the operator
GetDeployments() ([]Deployment, error)
// GetDeployment returns detailed information for a deployment, managed by the operator, with given name
GetDeployment(name string) (Deployment, error)
}
DeploymentOperator is the API implemented by the deployment operator.
type DeploymentReplication ¶
type DeploymentReplication interface {
Name() string
Namespace() string
StateColor() StateColor
Source() Endpoint
Destination() Endpoint
}
DeploymentReplication is the API implemented by an ArangoDeploymentReplication.
type DeploymentReplicationInfo ¶
type DeploymentReplicationInfo struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
StateColor StateColor `json:"state_color"`
Source EndpointInfo `json:"source"`
Destination EndpointInfo `json:"destination"`
}
DeploymentReplicationInfo is the information returned per deployment replication.
type DeploymentReplicationInfoDetails ¶
type DeploymentReplicationInfoDetails struct {
DeploymentReplicationInfo
}
DeploymentReplicationInfoDetails is the detailed information returned per deployment replication.
type DeploymentReplicationOperator ¶
type DeploymentReplicationOperator interface {
// GetDeploymentReplications returns basic information for all deployment replications managed by the operator
GetDeploymentReplications() ([]DeploymentReplication, error)
// GetDeploymentReplication returns detailed information for a deployment replication, managed by the operator, with given name
GetDeploymentReplication(name string) (DeploymentReplication, error)
}
DeploymentReplicationOperator is the API implemented by the deployment operator.
type Endpoint ¶
type Endpoint interface {
DeploymentName() string
MasterEndpoint() []string
AuthKeyfileSecretName() string
AuthUserSecretName() string
TLSCACert() string
TLSCACertSecretName() string
}
Endpoint is the API implemented by source&destination of the replication
type EndpointInfo ¶
type EndpointInfo struct {
DeploymentName string `json:"deployment_name"`
MasterEndpoint []string `json:"master_endpoint"`
AuthKeyfileSecretName string `json:"auth_keyfile_secret_name"`
AuthUserSecretName string `json:"auth_user_secret_name"`
TLSCACert string `json:"tls_ca_cert"`
TLSCACertSecretName string `json:"tls_ca_cert_secret_name"`
}
EndpointInfo is the information returned per source/destination endpoint of the replication.
type LocalStorage ¶
type LocalStorage interface {
Name() string
LocalPaths() []string
StateColor() StateColor
StorageClass() string
StorageClassIsDefault() bool
Volumes() []Volume
}
LocalStorage is the API implemented by an ArangoLocalStorage.
type LocalStorageInfo ¶
type LocalStorageInfo struct {
Name string `json:"name"`
LocalPaths []string `json:"local_paths"`
StateColor StateColor `json:"state_color"`
StorageClass string `json:"storage_class"`
StorageClassIsDefault bool `json:"storage_class_is_default"`
}
LocalStorageInfo is the information returned per local storage.
type LocalStorageInfoDetails ¶
type LocalStorageInfoDetails struct {
LocalStorageInfo
Volumes []VolumeInfo `json:"volumes"`
}
LocalStorageInfoDetails contains detailed info a local storage
type Member ¶
type Member interface {
ID() string
PodName() string
PVCName() string
PVName() string
MemberOfCluster() MemberOfCluster
Ready() bool
}
Member is the API implemented by a member of an ArangoDeployment.
type MemberGroupInfo ¶
type MemberGroupInfo struct {
Group string `json:"group"`
Members []MemberInfo `json:"members"`
}
MemberGroupInfo contained detailed info of a group (e.g. Agent) of members
type MemberInfo ¶
type MemberInfo struct {
ID string `json:"id"`
PodName string `json:"pod_name"`
PVCName string `json:"pvc_name"`
PVName string `json:"pv_name"`
MemberOfCluster MemberOfCluster `json:"member_of_cluster"`
Ready bool `json:"ready"`
}
MemberInfo contains detailed info of a specific member of the deployment
type MemberOfCluster ¶
type MemberOfCluster string
const ( IsMemberOfCluster MemberOfCluster = "true" IsNotMemberOfCluster MemberOfCluster = "false" NeverMemberOfCluster MemberOfCluster = "never" )
type OperatorDependency ¶
type OperatorDependency struct {
Enabled bool
Probe *probe.ReadyProbe
}
type OperatorReference ¶
type OperatorReference struct {
Namespace string `json:"namespace"`
Type OperatorType `json:"type"`
URL string `json:"url"`
}
OperatorReference contains a reference to another operator
type OperatorType ¶
type OperatorType string
const ( OperatorTypeDeployment OperatorType = "deployment" OperatorTypeDeploymentReplication OperatorType = "deployment_replication" OperatorTypeStorage OperatorType = "storage" )
type Operators ¶
type Operators interface {
// Return the deployment operator (if any)
DeploymentOperator() DeploymentOperator
// Return the deployment replication operator (if any)
DeploymentReplicationOperator() DeploymentReplicationOperator
// Return the local storage operator (if any)
StorageOperator() StorageOperator
// FindOtherOperators looks up references to other operators in the same Kubernetes cluster.
FindOtherOperators() []OperatorReference
}
Operators is the API provided to the server for accessing the various operators.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server is the HTTPS server for the operator.
func NewServer ¶
func NewServer(cli typedCore.CoreV1Interface, cfg Config, deps Dependencies) (*Server, error)
NewServer creates a new server, fetching/preparing a TLS certificate.
type StateColor ¶
type StateColor string
StateColor is a strongly typed indicator of state
const ( StateGreen StateColor = "green" // Everything good StateYellow StateColor = "yellow" // Something is going on, but deployment is available StateOrange StateColor = "orange" // Something is going on that may make the deployment unavailable. Trying to recover automatically StateRed StateColor = "red" // This is really bad. Intervention is very likely needed )
type StorageOperator ¶
type StorageOperator interface {
// GetLocalStorages returns basic information for all local storages managed by the operator
GetLocalStorages() ([]LocalStorage, error)
// GetLocalStorage returns detailed information for a local, managed by the operator, with given name
GetLocalStorage(name string) (LocalStorage, error)
}
StorageOperator is the API implemented by the storage operator.
type Volume ¶
type Volume interface {
Name() string
StateColor() StateColor
NodeName() string
Capacity() string
}
Volume is the API implemented by a volume created in a ArangoLocalStorage.
type VolumeInfo ¶
type VolumeInfo struct {
Name string `json:"name"`
StateColor StateColor `json:"state_color"`
NodeName string `json:"node_name"`
Capacity string `json:"capacity"`
}
VolumeInfo contained the information returned per volume that is created on behalf of a local storage.