operator

package module
v4.2.283+incompatible Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2019 License: Apache-2.0 Imports: 2 Imported by: 0

README

Federator.ai Operator

Federator.ai Operator is an Operator that manages Federator.ai components for an OpenShift cluster. Once installed, the Federator.ai Operator provides the following features:

  • Create/Clean up: Launch Federator.ai components using the Operator.
  • Easy Configuration: Easily configure data source of Prometheus and enable/disable add-on components, such as GUI, and predictive autoscaling.
  • Pod Scaling Recommendation/Autoscaling: Use provided CRD to setup target pods and desired policies for scaling recommendation and autoscaling.

Note: Federator.ai requires a Prometheus datasource to get historical metrics of pods and nodes. When launching Federator.ai components, Prometheus connection settings need to be provided.

Federator.ai

Federator.ai is the brain of resource orchestration for kubernetes. We use machine learning technology to provide intelligence that foresees future resource usage of your Kubernetes cluster across multiple layers. Federator.ai recommends the right sizes of containers and the right number of replications. It also elastically manages pod scaling and scheduling of your containerized applications. The benefits of Federator.ai include:

  • Up to 60% resource savings
  • Increased operational efficiency
  • Reduced manual configuration time with digital intelligence

For more information, visit our website and github.com/containers-ai/alameda.

Documentations

Please visit docs

Resources

Usage

Configuration

There are two method of configuration, the precedence from high to low is Setting Environment Variable, Setting Configuration File.

Setting Environment Variable

There are two types of environment variable that Federatorai-Operator accepts

  • Variables with prefix FEDERATORAI_OPERATOR, the available variables list are identical to the configuration file. Properties in the configuration file tree are seperated with underscore("_"). For example, to configure the logger output level, set environment variable FEDERATORAI_OPERATOR_LOG_OUTPUTLEVEL to the desired value.

  • Variables that are not with prefix FEDERATORAI_OPERATOR, the variables are listed below

    • name: WATCH_NAMESPACE
      • description: Federatorai-Operator will only reconcile AlamedaService in this namespace, or all namespaces if the variable is set to "".
    • name: POD_NAME
      • description: Federatorai-Operator will get the pod with this name that the pod is where the code is running at. It expects the environment variable POD_NAME to be set by the downwards API.
    • name: OPERATOR_NAME
      • description: Federatorai-Operator will create a service name in OPERATOR_NAME to expose metrics service.
    • name: DISABLE_OPERAND_RESOURCE_PROTECTION
      • description: If true Federatorai-Operator will not reconcile k8s obejcts that are owned by AlamedaService when those objects have been changed individually, which means Federatorai-Operator will only reconcile those objects when AlamedaService has been changed.
Setting Configuration File

See the example file. Assign the configuration file path when running Federatorai-Operator with flag --config.

$FEDERATORAI_OPERATOR_BIN --config $CONFIGURATION_FILE_PATH

Develop

Requirements

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Requirements RequirementsConfig `mapstructure:"requirements"`
	Metrics      MetricsConfig      `mapstructure:"metrics"`
	Log          log.Config         `mapstructure:"log"`
	GRPC         grpc.Config        `mapstructure:"grpc"`
}

Config encapsultes configuration of federatorai operator

func NewDefaultConfig

func NewDefaultConfig() Config

NewDefaultConfig creates operator default configuration

type MetricsConfig

type MetricsConfig struct {
	Host string `mapstructure:"host"`
	Port int    `mapstructure:"port"`
}

MetricsConfig encapsultes configuration of federatorai operator metrics server

func NewDefaultMetricsConfig

func NewDefaultMetricsConfig() MetricsConfig

NewDefaultMetricsConfig creates operator's metrics server default configuration

type RequirementsConfig added in v0.9.1

type RequirementsConfig struct {
}

RequirementsConfig encapsultes the truth of requirements resources

func NewDefaultRequirementsConfig added in v0.9.1

func NewDefaultRequirementsConfig() RequirementsConfig

NewDefaultRequirementsConfig creates default configuration

Directories

Path Synopsis
cmd
pkg
apis/federatorai/v1alpha1
Package v1alpha1 contains API Schema definitions for the federatorai v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=federatorai.containers.ai Package v1alpha1 contains API Schema definitions for the federatorai v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=federatorai.containers.ai
Package v1alpha1 contains API Schema definitions for the federatorai v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=federatorai.containers.ai Package v1alpha1 contains API Schema definitions for the federatorai v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=federatorai.containers.ai
log

Jump to

Keyboard shortcuts

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