spec

package
v0.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 25, 2017 License: BSD-3-Clause Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Authentication added in v0.0.4

type Authentication struct {
	UserName string `json:"username"`
	Password string `json:"password"`
}

Authentication defines credentials for snapshot requests

type CRDState added in v0.0.8

type CRDState string

type CRDStatus added in v0.0.8

type CRDStatus struct {
	State   CRDState `json:"state,omitempty"`
	Message string   `json:"message,omitempty"`
}

type Cerebro added in v0.0.9

type Cerebro struct {
	// Defines the image to use for deploying Cerebro
	Image         string `json:"image"`
	Configuration string `json:"configuration"`
}

Cerebro properties if wanting operator to deploy for user

type ClusterSpec

type ClusterSpec struct {
	// ClientNodeSize defines how many client nodes to have in cluster
	ClientNodeReplicas int32 `json:"client-node-replicas"`

	// MasterNodeSize defines how many client nodes to have in cluster
	MasterNodeReplicas int `json:"master-node-replicas"`

	// DataNodeSize defines how many client nodes to have in cluster
	DataNodeReplicas int `json:"data-node-replicas"`

	// NodeSelector specifies a map of key-value pairs. For the pod to be eligible
	// to run on a node, the node must have each of the indicated key-value pairs as
	// labels.
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Zones specifies a map of key-value pairs. Defines which zones
	// to deploy persistent volumes for data nodes
	Zones []string `json:"zones,omitempty"`

	// DataDiskSize specifies how large the persistent volume should be attached
	// to the data nodes in the ES cluster
	DataDiskSize string `json:"data-volume-size"`

	// DataDiskSize specifies the docker image to use (optional)
	ElasticSearchImage string `json:"elastic-search-image"`

	// Snapshot defines how snapshots are scheduled
	Snapshot Snapshot `json:"snapshot"`

	// Storage defines how volumes are provisioned
	Storage Storage `json:"storage"`

	// JavaOptions defines args passed to elastic nodes
	JavaOptions string `json:"java-options"`

	// ImagePullSecrets defines credentials to pull image from private repository (optional)
	ImagePullSecrets []ImagePullSecrets `json:"image-pull-secrets"`

	// Resources defines memory / cpu constraints
	Resources Resources `json:"resources"`

	// Instrumentation defines metrics for the cluster
	Instrumentation Instrumentation `json:"instrumentation"`

	// Specify how the container binds to network ports
	NetworkHost string `json:"network-host"`

	//NodePort
	NodePort int32 `json:"nodePort"`

	// Kibana
	Kibana Kibana `json:"kibana"`

	//Cerebro
	Cerebro Cerebro `json:"cerebro"`

	Scheduler *snapshot.Scheduler
}

ClusterSpec defines cluster options

type ElasticsearchCluster

type ElasticsearchCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Type              string      `json:"type"`
	Spec              ClusterSpec `json:"spec"`
	Status            CRDStatus   `json:"status,omitempty"`
}

ElasticsearchCluster defines the cluster

type ElasticsearchClusterList

type ElasticsearchClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ElasticsearchCluster `json:"items"`
}

ElasticsearchClusterList represents a list of ES Clusters

type ImagePullSecrets added in v0.0.4

type ImagePullSecrets struct {
	// Name defines the name of the secret file that will be used
	Name string `json:"name"`
}

ImagePullSecrets defines credentials to pull image from private repository

type Instrumentation added in v0.0.4

type Instrumentation struct {
	StatsdHost string `json:"statsd-host"`
}

Instrumentation handles all metrics for the cluster

type Kibana added in v0.0.7

type Kibana struct {
	// Defines the image to use for deploying kibana
	Image string `json:"image"`
}

Kibana properties if wanting operator to deploy for user

type MemoryCPU

type MemoryCPU struct {
	// Memory defines max amount of memory
	Memory string `json:"memory"`

	// CPU defines max amount of CPU
	CPU string `json:"cpu"`
}

MemoryCPU defines memory cpu options

type Resources

type Resources struct {
	Requests MemoryCPU `json:"requests"`
	Limits   MemoryCPU `json:"limits"`
}

Resources defines CPU / Memory restrictions on pods

type Snapshot

type Snapshot struct {
	// Enabled determines if snapshots are enabled
	SchedulerEnabled bool `json:"scheduler-enabled"`

	// BucketName defines the AWS S3 bucket to store snapshots
	BucketName string `json:"bucket-name"`

	// CronSchedule defines how to run the snapshots
	// SEE: https://godoc.org/github.com/robfig/cron
	CronSchedule string `json:"cron-schedule"`

	// Authentication defines credentials for snapshot requests
	Authentication Authentication `json:"authentication"`
}

Snapshot defines all params to create / store snapshots

type Storage

type Storage struct {
	// StorageType is the type of storage to create
	StorageType string `json:"type"`

	// StorageClassProvisoner is the storage provisioner type
	StorageClassProvisoner string `json:"storage-class-provisioner"`

	// StorageClass to use
	StorageClass string `json:"storage-class"`

	// Volume Reclaim Policy on Persistent Volumes
	VolumeReclaimPolicy string `json:"volume-reclaim-policy"`
}

Storage defines how dynamic volumes are created https://kubernetes.io/docs/user-guide/persistent-volumes/

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL