 Documentation
      ¶
      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.