Documentation ¶
Index ¶
- Constants
- Variables
- func APIGatewaySettingStrings() []string
- func AutoGenerateSpotConfig(awsClient *aws.Client, spotConfig *SpotConfig, region string, ...) error
- func CheckSpotInstanceCompatibility(target aws.InstanceMetadata, suggested aws.InstanceMetadata) error
- func CheckSpotInstancePriceCompatibility(target aws.InstanceMetadata, suggested aws.InstanceMetadata, maxPrice *float64, ...) error
- func ConfigurePrompt(userClusterConfig *Config, cachedClusterConfig *Config, ...) error
- func ErrorCantOverrideDefaultTag() error
- func ErrorConfigCannotBeChangedOnUpdate(configKey string, prevVal interface{}) error
- func ErrorConfiguredWhenSpotIsNotEnabled(configKey string) error
- func ErrorDidNotMatchStrictS3Regex() error
- func ErrorIOPSNotSupported(volumeType VolumeType) error
- func ErrorIOPSTooLarge(iops int64, volumeSize int64) error
- func ErrorIncompatibleSpotInstanceTypeCPU(target aws.InstanceMetadata, suggested aws.InstanceMetadata) error
- func ErrorIncompatibleSpotInstanceTypeGPU(target aws.InstanceMetadata, suggested aws.InstanceMetadata) error
- func ErrorIncompatibleSpotInstanceTypeInf(suggested aws.InstanceMetadata) error
- func ErrorIncompatibleSpotInstanceTypeMemory(target aws.InstanceMetadata, suggested aws.InstanceMetadata) error
- func ErrorInstanceTypeNotSupported(instanceType string) error
- func ErrorInstanceTypeNotSupportedInRegion(instanceType string, region string) error
- func ErrorInstanceTypeTooSmall() error
- func ErrorInvalidAvailabilityZone(userZone string, allZones strset.Set, region string) error
- func ErrorInvalidInstanceType(instanceType string) error
- func ErrorInvalidRegion(region string) error
- func ErrorMinInstancesGreaterThanMax(min int64, max int64) error
- func ErrorNATRequiredWithPrivateSubnetVisibility() error
- func ErrorNotEnoughDefaultSupportedZones(region string, validZones strset.Set, instanceType string, ...) error
- func ErrorOnDemandBaseCapacityGreaterThanMax(onDemandBaseCapacity int64, max int64) error
- func ErrorS3RegionDiffersFromCluster(bucketName string, bucketRegion string, clusterRegion string) error
- func ErrorSSLCertificateARNNotFound(sslCertificateARN string, region string) error
- func ErrorSpotPriceGreaterThanMaxPrice(suggestedSpotPrice float64, maxPrice float64, suggested aws.InstanceMetadata) error
- func ErrorSpotPriceGreaterThanTargetOnDemand(spotPrice float64, target aws.InstanceMetadata, suggested aws.InstanceMetadata) error
- func ErrorUnsupportedAvailabilityZone(userZone string, instanceType string, instanceTypes ...string) error
- func InstallPrompt(clusterConfig *Config, disallowPrompt bool) error
- func LoadBalancerSchemeStrings() []string
- func NATGatewayStrings() []string
- func RegionPrompt(clusterConfig *Config, disallowPrompt bool) error
- func RegionValidator(region string) (string, error)
- func SQSNamePrefix(clusterName string) string
- func SetDefaults(cc *Config) error
- func SubnetVisibilityStrings() []string
- func ValidateRegion(region string) error
- func VolumeTypesStrings() []string
- type APIGatewaySetting
- type AccessConfig
- type Config
- type InternalConfig
- type LoadBalancerScheme
- type NATGateway
- type SpotConfig
- type SubnetVisibility
- type VolumeType
Constants ¶
const ( InstanceTypeKey = "instance_type" MinInstancesKey = "min_instances" MaxInstancesKey = "max_instances" TagsKey = "tags" InstanceVolumeSizeKey = "instance_volume_size" InstanceVolumeTypeKey = "instance_volume_type" InstanceVolumeIOPSKey = "instance_volume_iops" SpotKey = "spot" SpotConfigKey = "spot_config" InstanceDistributionKey = "instance_distribution" OnDemandBaseCapacityKey = "on_demand_base_capacity" OnDemandPercentageAboveBaseCapacityKey = "on_demand_percentage_above_base_capacity" MaxPriceKey = "max_price" InstancePoolsKey = "instance_pools" OnDemandBackupKey = "on_demand_backup" ClusterNameKey = "cluster_name" RegionKey = "region" AvailabilityZonesKey = "availability_zones" SSLCertificateARNKey = "ssl_certificate_arn" BucketKey = "bucket" LogGroupKey = "log_group" SubnetVisibilityKey = "subnet_visibility" NATGatewayKey = "nat_gateway" APILoadBalancerSchemeKey = "api_load_balancer_scheme" OperatorLoadBalancerSchemeKey = "operator_load_balancer_scheme" APIGatewaySettingKey = "api_gateway" VPCCIDRKey = "vpc_cidr" TelemetryKey = "telemetry" ImageOperatorKey = "image_operator" ImageManagerKey = "image_manager" ImageDownloaderKey = "image_downloader" ImageRequestMonitorKey = "image_request_monitor" ImageClusterAutoscalerKey = "image_cluster_autoscaler" ImageMetricsServerKey = "image_metrics_server" ImageInferentiaKey = "image_inferentia" ImageNeuronRTDKey = "image_neuron_rtd" ImageNvidiaKey = "image_nvidia" ImageFluentdKey = "image_fluentd" ImageStatsdKey = "image_statsd" ImageIstioProxyKey = "image_istio_proxy" ImageIstioPilotKey = "image_istio_pilot" ImageIstioCitadelKey = "image_istio_citadel" ImageIstioGalleyKey = "image_istio_galley" // User facing string APIVersionUserKey = "cluster version" ClusterNameUserKey = "cluster name" RegionUserKey = "aws region" AvailabilityZonesUserKey = "availability zones" SSLCertificateARNUserKey = "ssl certificate arn" BucketUserKey = "s3 bucket" SpotUserKey = "use spot instances" InstanceTypeUserKey = "instance type" MinInstancesUserKey = "min instances" MaxInstancesUserKey = "max instances" TagsUserKey = "tags" InstanceVolumeSizeUserKey = "instance volume size (Gi)" InstanceVolumeTypeUserKey = "instance volume type" InstanceVolumeIOPSUserKey = "instance volume iops" InstanceDistributionUserKey = "spot instance distribution" OnDemandBaseCapacityUserKey = "spot on demand base capacity" OnDemandPercentageAboveBaseCapacityUserKey = "spot on demand percentage above base capacity" MaxPriceUserKey = "spot max price ($ per hour)" InstancePoolsUserKey = "spot instance pools" OnDemandBackupUserKey = "on demand backup" LogGroupUserKey = "cloudwatch log group" SubnetVisibilityUserKey = "subnet visibility" NATGatewayUserKey = "nat gateway" APILoadBalancerSchemeUserKey = "api load balancer scheme" OperatorLoadBalancerSchemeUserKey = "operator load balancer scheme" APIGatewaySettingUserKey = "api gateway" VPCCIDRUserKey = "vpc cidr" TelemetryUserKey = "telemetry" ImageOperatorUserKey = "operator image" ImageManagerUserKey = "manager image" ImageDownloaderUserKey = "downloader image" ImageRequestMonitorUserKey = "request monitor image" ImageClusterAutoscalerUserKey = "cluster autoscaler image" ImageMetricsServerUserKey = "metrics server image" ImageInferentiaUserKey = "inferentia image" ImageNeuronRTDUserKey = "neuron rtd image" ImageNvidiaUserKey = "nvidia image" ImageFluentdUserKey = "fluentd image" ImageStatsdUserKey = "statsd image" ImageIstioProxyUserKey = "istio proxy image" ImageIstioPilotUserKey = "istio pilot image" ImageIstioCitadelUserKey = "istio citadel image" ImageIstioGalleyUserKey = "istio galley image" )
const ( ErrInvalidRegion = "clusterconfig.invalid_region" ErrInstanceTypeTooSmall = "clusterconfig.instance_type_too_small" ErrMinInstancesGreaterThanMax = "clusterconfig.min_instances_greater_than_max" ErrInstanceTypeNotSupportedInRegion = "clusterconfig.instance_type_not_supported_in_region" ErrIncompatibleSpotInstanceTypeMemory = "clusterconfig.incompatible_spot_instance_type_memory" ErrIncompatibleSpotInstanceTypeCPU = "clusterconfig.incompatible_spot_instance_type_cpu" ErrIncompatibleSpotInstanceTypeGPU = "clusterconfig.incompatible_spot_instance_type_gpu" ErrIncompatibleSpotInstanceTypeInf = "clusterconfig.incompatible_spot_instance_type_inf" ErrSpotPriceGreaterThanTargetOnDemand = "clusterconfig.spot_price_greater_than_target_on_demand" ErrSpotPriceGreaterThanMaxPrice = "clusterconfig.spot_price_greater_than_max_price" ErrInstanceTypeNotSupported = "clusterconfig.instance_type_not_supported" ErrAtLeastOneInstanceDistribution = "clusterconfig.at_least_one_instance_distribution" ErrNoCompatibleSpotInstanceFound = "clusterconfig.no_compatible_spot_instance_found" ErrConfiguredWhenSpotIsNotEnabled = "clusterconfig.configured_when_spot_is_not_enabled" ErrOnDemandBaseCapacityGreaterThanMax = "clusterconfig.on_demand_base_capacity_greater_than_max" ErrConfigCannotBeChangedOnUpdate = "clusterconfig.config_cannot_be_changed_on_update" ErrInvalidAvailabilityZone = "clusterconfig.invalid_availability_zone" ErrUnsupportedAvailabilityZone = "clusterconfig.unsupported_availability_zone" ErrNotEnoughValidDefaultAvailibilityZones = "clusterconfig.not_enough_valid_default_availability_zones" ErrDidNotMatchStrictS3Regex = "clusterconfig.did_not_match_strict_s3_regex" ErrNATRequiredWithPrivateSubnetVisibility = "clusterconfig.nat_required_with_private_subnet_visibility" ErrS3RegionDiffersFromCluster = "clusterconfig.s3_region_differs_from_cluster" ErrInvalidInstanceType = "clusterconfig.invalid_instance_type" ErrIOPSNotSupported = "clusterconfig.iops_not_supported" ErrIOPSTooLarge = "clusterconfig.iops_too_large" ErrCantOverrideDefaultTag = "clusterconfig.cant_override_default_tag" ErrSSLCertificateARNNotFound = "clusterconfig.ssl_certificate_arn_not_found" )
const (
ClusterNameTag = "cortex.dev/cluster-name"
)
Variables ¶
var AccessPromptValidation = &cr.PromptValidation{ SkipNonNilFields: true, PromptItemValidations: []*cr.PromptItemValidation{ { StructField: "ClusterName", PromptOpts: &prompt.Options{ Prompt: ClusterNameUserKey, }, StringPtrValidation: &cr.StringPtrValidation{ Default: pointer.String("cortex"), MaxLength: 63, MinLength: 3, Validator: validateClusterName, }, }, { StructField: "Region", PromptOpts: &prompt.Options{ Prompt: RegionUserKey, }, StringPtrValidation: &cr.StringPtrValidation{ Validator: RegionValidator, Default: pointer.String("us-east-1"), }, }, }, }
var AccessValidation = &cr.StructValidation{ AllowExtraFields: true, StructFieldValidations: []*cr.StructFieldValidation{ { StructField: "ClusterName", StringPtrValidation: &cr.StringPtrValidation{ MaxLength: 63, MinLength: 3, Validator: validateClusterName, }, }, { StructField: "Region", StringPtrValidation: &cr.StringPtrValidation{ Validator: RegionValidator, }, }, { StructField: "ImageManager", StringValidation: &cr.StringValidation{ Default: "cortexlabs/manager:" + consts.CortexVersion, Validator: validateImageVersion, }, }, }, }
var UserValidation = &cr.StructValidation{ Required: true, StructFieldValidations: []*cr.StructFieldValidation{ { StructField: "InstanceType", StringPtrValidation: &cr.StringPtrValidation{ Validator: validateInstanceType, }, }, { StructField: "MinInstances", Int64PtrValidation: &cr.Int64PtrValidation{ GreaterThanOrEqualTo: pointer.Int64(0), }, }, { StructField: "MaxInstances", Int64PtrValidation: &cr.Int64PtrValidation{ GreaterThan: pointer.Int64(0), }, }, { StructField: "InstanceVolumeSize", Int64Validation: &cr.Int64Validation{ Default: 50, GreaterThanOrEqualTo: pointer.Int64(20), LessThanOrEqualTo: pointer.Int64(16384), }, }, { StructField: "InstanceVolumeType", StringValidation: &cr.StringValidation{ AllowedValues: VolumeTypesStrings(), Default: GP2VolumeType.String(), }, Parser: func(str string) (interface{}, error) { return VolumeTypeFromString(str), nil }, }, { StructField: "Tags", StringMapValidation: &cr.StringMapValidation{ AllowExplicitNull: true, AllowEmpty: true, ConvertNullToEmpty: true, KeyStringValidator: &cr.StringValidation{ MinLength: 1, MaxLength: 127, DisallowLeadingWhitespace: true, DisallowTrailingWhitespace: true, InvalidPrefixes: _invalidTagPrefixes, AWSTag: true, }, ValueStringValidator: &cr.StringValidation{ MinLength: 1, MaxLength: 255, DisallowLeadingWhitespace: true, DisallowTrailingWhitespace: true, InvalidPrefixes: _invalidTagPrefixes, AWSTag: true, }, }, }, { StructField: "SSLCertificateARN", StringPtrValidation: &cr.StringPtrValidation{ AllowExplicitNull: true, }, }, { StructField: "InstanceVolumeIOPS", Int64PtrValidation: &cr.Int64PtrValidation{ GreaterThanOrEqualTo: pointer.Int64(100), LessThanOrEqualTo: pointer.Int64(64000), AllowExplicitNull: true, }, }, { StructField: "Spot", BoolPtrValidation: &cr.BoolPtrValidation{ Default: pointer.Bool(false), }, }, { StructField: "SpotConfig", StructValidation: &cr.StructValidation{ DefaultNil: true, AllowExplicitNull: true, StructFieldValidations: []*cr.StructFieldValidation{ { StructField: "InstanceDistribution", StringListValidation: &cr.StringListValidation{ DisallowDups: true, Validator: validateInstanceDistribution, AllowExplicitNull: true, }, }, { StructField: "OnDemandBaseCapacity", Int64PtrValidation: &cr.Int64PtrValidation{ GreaterThanOrEqualTo: pointer.Int64(0), AllowExplicitNull: true, }, }, { StructField: "OnDemandPercentageAboveBaseCapacity", Int64PtrValidation: &cr.Int64PtrValidation{ GreaterThanOrEqualTo: pointer.Int64(0), LessThanOrEqualTo: pointer.Int64(100), AllowExplicitNull: true, }, }, { StructField: "MaxPrice", Float64PtrValidation: &cr.Float64PtrValidation{ GreaterThan: pointer.Float64(0), AllowExplicitNull: true, }, }, { StructField: "InstancePools", Int64PtrValidation: &cr.Int64PtrValidation{ GreaterThanOrEqualTo: pointer.Int64(1), LessThanOrEqualTo: pointer.Int64(int64(_maxInstancePools)), AllowExplicitNull: true, }, }, { StructField: "OnDemandBackup", BoolPtrValidation: &cr.BoolPtrValidation{ Default: pointer.Bool(true), }, }, }, }, }, { StructField: "ClusterName", StringValidation: &cr.StringValidation{ Default: "cortex", MaxLength: 63, MinLength: 3, Validator: validateClusterName, }, }, { StructField: "Region", StringPtrValidation: &cr.StringPtrValidation{ Validator: RegionValidator, }, }, { StructField: "AvailabilityZones", StringListValidation: &cr.StringListValidation{ AllowEmpty: true, AllowExplicitNull: true, DisallowDups: true, InvalidLengths: []int{1}, }, }, { StructField: "Bucket", StringValidation: &cr.StringValidation{ AllowEmpty: true, TreatNullAsEmpty: true, Validator: validateBucketNameOrEmpty, }, }, { StructField: "LogGroup", StringValidation: &cr.StringValidation{ MaxLength: 63, }, DefaultField: "ClusterName", }, { StructField: "SubnetVisibility", StringValidation: &cr.StringValidation{ AllowedValues: SubnetVisibilityStrings(), Default: PublicSubnetVisibility.String(), }, Parser: func(str string) (interface{}, error) { return SubnetVisibilityFromString(str), nil }, }, { StructField: "NATGateway", StringValidation: &cr.StringValidation{ AllowedValues: NATGatewayStrings(), }, Parser: func(str string) (interface{}, error) { return NATGatewayFromString(str), nil }, DefaultField: "SubnetVisibility", DefaultFieldFunc: func(val interface{}) interface{} { if val.(SubnetVisibility) == PublicSubnetVisibility { return NoneNATGateway.String() } return SingleNATGateway.String() }, }, { StructField: "APILoadBalancerScheme", StringValidation: &cr.StringValidation{ AllowedValues: LoadBalancerSchemeStrings(), Default: InternetFacingLoadBalancerScheme.String(), }, Parser: func(str string) (interface{}, error) { return LoadBalancerSchemeFromString(str), nil }, }, { StructField: "OperatorLoadBalancerScheme", StringValidation: &cr.StringValidation{ AllowedValues: LoadBalancerSchemeStrings(), Default: InternetFacingLoadBalancerScheme.String(), }, Parser: func(str string) (interface{}, error) { return LoadBalancerSchemeFromString(str), nil }, }, { StructField: "APIGatewaySetting", StringValidation: &cr.StringValidation{ AllowedValues: APIGatewaySettingStrings(), Default: PublicAPIGatewaySetting.String(), }, Parser: func(str string) (interface{}, error) { return APIGatewaySettingFromString(str), nil }, }, { StructField: "VPCCIDR", StringPtrValidation: &cr.StringPtrValidation{ Validator: validateVPCCIDR, }, }, { StructField: "ImageOperator", StringValidation: &cr.StringValidation{ Default: "cortexlabs/operator:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageManager", StringValidation: &cr.StringValidation{ Default: "cortexlabs/manager:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageDownloader", StringValidation: &cr.StringValidation{ Default: "cortexlabs/downloader:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageRequestMonitor", StringValidation: &cr.StringValidation{ Default: "cortexlabs/request-monitor:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageClusterAutoscaler", StringValidation: &cr.StringValidation{ Default: "cortexlabs/cluster-autoscaler:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageMetricsServer", StringValidation: &cr.StringValidation{ Default: "cortexlabs/metrics-server:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageInferentia", StringValidation: &cr.StringValidation{ Default: "cortexlabs/inferentia:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageNeuronRTD", StringValidation: &cr.StringValidation{ Default: "cortexlabs/neuron-rtd:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageNvidia", StringValidation: &cr.StringValidation{ Default: "cortexlabs/nvidia:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageFluentd", StringValidation: &cr.StringValidation{ Default: "cortexlabs/fluentd:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageStatsd", StringValidation: &cr.StringValidation{ Default: "cortexlabs/statsd:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageIstioProxy", StringValidation: &cr.StringValidation{ Default: "cortexlabs/istio-proxy:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageIstioPilot", StringValidation: &cr.StringValidation{ Default: "cortexlabs/istio-pilot:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageIstioCitadel", StringValidation: &cr.StringValidation{ Default: "cortexlabs/istio-citadel:" + consts.CortexVersion, Validator: validateImageVersion, }, }, { StructField: "ImageIstioGalley", StringValidation: &cr.StringValidation{ Default: "cortexlabs/istio-galley:" + consts.CortexVersion, Validator: validateImageVersion, }, }, }, }
var Validation = &cr.StructValidation{ StructFieldValidations: append(UserValidation.StructFieldValidations, &cr.StructFieldValidation{ StructField: "Telemetry", BoolValidation: &cr.BoolValidation{ Default: true, }, }, ), }
Functions ¶
func APIGatewaySettingStrings ¶ added in v0.19.0
func APIGatewaySettingStrings() []string
func AutoGenerateSpotConfig ¶
func CheckSpotInstanceCompatibility ¶
func CheckSpotInstanceCompatibility(target aws.InstanceMetadata, suggested aws.InstanceMetadata) error
func CheckSpotInstancePriceCompatibility ¶ added in v0.15.0
func CheckSpotInstancePriceCompatibility(target aws.InstanceMetadata, suggested aws.InstanceMetadata, maxPrice *float64, spotInstancePrice float64) error
func ConfigurePrompt ¶ added in v0.17.0
func ErrorCantOverrideDefaultTag ¶ added in v0.18.0
func ErrorCantOverrideDefaultTag() error
func ErrorDidNotMatchStrictS3Regex ¶
func ErrorDidNotMatchStrictS3Regex() error
func ErrorIOPSNotSupported ¶ added in v0.16.0
func ErrorIOPSNotSupported(volumeType VolumeType) error
func ErrorIOPSTooLarge ¶ added in v0.16.0
func ErrorIncompatibleSpotInstanceTypeCPU ¶
func ErrorIncompatibleSpotInstanceTypeCPU(target aws.InstanceMetadata, suggested aws.InstanceMetadata) error
func ErrorIncompatibleSpotInstanceTypeGPU ¶
func ErrorIncompatibleSpotInstanceTypeGPU(target aws.InstanceMetadata, suggested aws.InstanceMetadata) error
func ErrorIncompatibleSpotInstanceTypeInf ¶ added in v0.18.0
func ErrorIncompatibleSpotInstanceTypeInf(suggested aws.InstanceMetadata) error
func ErrorIncompatibleSpotInstanceTypeMemory ¶
func ErrorIncompatibleSpotInstanceTypeMemory(target aws.InstanceMetadata, suggested aws.InstanceMetadata) error
func ErrorInstanceTypeTooSmall ¶
func ErrorInstanceTypeTooSmall() error
func ErrorInvalidRegion ¶ added in v0.15.0
func ErrorNATRequiredWithPrivateSubnetVisibility ¶ added in v0.16.0
func ErrorNATRequiredWithPrivateSubnetVisibility() error
func ErrorNotEnoughDefaultSupportedZones ¶ added in v0.15.0
func ErrorSSLCertificateARNNotFound ¶ added in v0.17.0
func ErrorSpotPriceGreaterThanMaxPrice ¶
func ErrorSpotPriceGreaterThanMaxPrice(suggestedSpotPrice float64, maxPrice float64, suggested aws.InstanceMetadata) error
func ErrorSpotPriceGreaterThanTargetOnDemand ¶
func ErrorSpotPriceGreaterThanTargetOnDemand(spotPrice float64, target aws.InstanceMetadata, suggested aws.InstanceMetadata) error
func ErrorUnsupportedAvailabilityZone ¶ added in v0.15.0
func InstallPrompt ¶
func LoadBalancerSchemeStrings ¶ added in v0.16.0
func LoadBalancerSchemeStrings() []string
func NATGatewayStrings ¶ added in v0.16.0
func NATGatewayStrings() []string
func RegionPrompt ¶
func RegionValidator ¶ added in v0.16.0
func SQSNamePrefix ¶ added in v0.19.0
func SetDefaults ¶
This does not set defaults for fields that are prompted from the user
func SubnetVisibilityStrings ¶ added in v0.16.0
func SubnetVisibilityStrings() []string
func ValidateRegion ¶ added in v0.15.0
func VolumeTypesStrings ¶ added in v0.16.0
func VolumeTypesStrings() []string
Types ¶
type APIGatewaySetting ¶ added in v0.19.0
type APIGatewaySetting int
const ( UnknownAPIGatewaySetting APIGatewaySetting = iota PublicAPIGatewaySetting NoneAPIGatewaySetting )
func APIGatewaySettingFromString ¶ added in v0.19.0
func APIGatewaySettingFromString(s string) APIGatewaySetting
func (APIGatewaySetting) MarshalBinary ¶ added in v0.19.0
func (t APIGatewaySetting) MarshalBinary() ([]byte, error)
MarshalBinary satisfies BinaryMarshaler
func (APIGatewaySetting) MarshalText ¶ added in v0.19.0
func (t APIGatewaySetting) MarshalText() ([]byte, error)
MarshalText satisfies TextMarshaler
func (APIGatewaySetting) String ¶ added in v0.19.0
func (t APIGatewaySetting) String() string
func (*APIGatewaySetting) UnmarshalBinary ¶ added in v0.19.0
func (t *APIGatewaySetting) UnmarshalBinary(data []byte) error
UnmarshalBinary satisfies BinaryUnmarshaler Needed for msgpack
func (*APIGatewaySetting) UnmarshalText ¶ added in v0.19.0
func (t *APIGatewaySetting) UnmarshalText(text []byte) error
UnmarshalText satisfies TextUnmarshaler
type AccessConfig ¶
type AccessConfig struct { ClusterName *string `json:"cluster_name" yaml:"cluster_name"` Region *string `json:"region" yaml:"region"` ImageManager string `json:"image_manager" yaml:"image_manager"` }
The bare minimum to identify a cluster
func DefaultAccessConfig ¶
func DefaultAccessConfig() (*AccessConfig, error)
type Config ¶
type Config struct { InstanceType *string `json:"instance_type" yaml:"instance_type"` MinInstances *int64 `json:"min_instances" yaml:"min_instances"` MaxInstances *int64 `json:"max_instances" yaml:"max_instances"` InstanceVolumeSize int64 `json:"instance_volume_size" yaml:"instance_volume_size"` InstanceVolumeType VolumeType `json:"instance_volume_type" yaml:"instance_volume_type"` InstanceVolumeIOPS *int64 `json:"instance_volume_iops" yaml:"instance_volume_iops"` Tags map[string]string `json:"tags" yaml:"tags"` Spot *bool `json:"spot" yaml:"spot"` SpotConfig *SpotConfig `json:"spot_config" yaml:"spot_config"` ClusterName string `json:"cluster_name" yaml:"cluster_name"` Region *string `json:"region" yaml:"region"` AvailabilityZones []string `json:"availability_zones" yaml:"availability_zones"` SSLCertificateARN *string `json:"ssl_certificate_arn,omitempty" yaml:"ssl_certificate_arn,omitempty"` Bucket string `json:"bucket" yaml:"bucket"` LogGroup string `json:"log_group" yaml:"log_group"` SubnetVisibility SubnetVisibility `json:"subnet_visibility" yaml:"subnet_visibility"` NATGateway NATGateway `json:"nat_gateway" yaml:"nat_gateway"` APILoadBalancerScheme LoadBalancerScheme `json:"api_load_balancer_scheme" yaml:"api_load_balancer_scheme"` OperatorLoadBalancerScheme LoadBalancerScheme `json:"operator_load_balancer_scheme" yaml:"operator_load_balancer_scheme"` APIGatewaySetting APIGatewaySetting `json:"api_gateway" yaml:"api_gateway"` VPCCIDR *string `json:"vpc_cidr,omitempty" yaml:"vpc_cidr,omitempty"` Telemetry bool `json:"telemetry" yaml:"telemetry"` ImageOperator string `json:"image_operator" yaml:"image_operator"` ImageManager string `json:"image_manager" yaml:"image_manager"` ImageDownloader string `json:"image_downloader" yaml:"image_downloader"` ImageRequestMonitor string `json:"image_request_monitor" yaml:"image_request_monitor"` ImageClusterAutoscaler string `json:"image_cluster_autoscaler" yaml:"image_cluster_autoscaler"` ImageMetricsServer string `json:"image_metrics_server" yaml:"image_metrics_server"` ImageInferentia string `json:"image_inferentia" yaml:"image_inferentia"` ImageNeuronRTD string `json:"image_neuron_rtd" yaml:"image_neuron_rtd"` ImageNvidia string `json:"image_nvidia" yaml:"image_nvidia"` ImageFluentd string `json:"image_fluentd" yaml:"image_fluentd"` ImageStatsd string `json:"image_statsd" yaml:"image_statsd"` ImageIstioProxy string `json:"image_istio_proxy" yaml:"image_istio_proxy"` ImageIstioPilot string `json:"image_istio_pilot" yaml:"image_istio_pilot"` ImageIstioCitadel string `json:"image_istio_citadel" yaml:"image_istio_citadel"` ImageIstioGalley string `json:"image_istio_galley" yaml:"image_istio_galley"` }
func GetDefaults ¶
This does not set defaults for fields that are prompted from the user
func (*Config) FillEmptySpotFields ¶ added in v0.16.0
func (*Config) SQSNamePrefix ¶ added in v0.19.0
returns hash of cluster name and adds trailing "-"
func (*Config) ToAccessConfig ¶
func (cc *Config) ToAccessConfig() AccessConfig
func (*Config) UserTable ¶
func (cc *Config) UserTable() table.KeyValuePairs
type InternalConfig ¶
type InternalConfig struct { Config // Populated by operator ID string `json:"id"` APIVersion string `json:"api_version"` OperatorInCluster bool `json:"operator_in_cluster"` InstanceMetadata aws.InstanceMetadata `json:"instance_metadata"` APIGateway *apigatewayv2.Api `json:"api_gateway"` VPCLink *apigatewayv2.VpcLink `json:"vpc_link"` VPCLinkIntegration *apigatewayv2.Integration `json:"vpc_link_integration"` }
func (*InternalConfig) UserStr ¶
func (cc *InternalConfig) UserStr() string
func (*InternalConfig) UserTable ¶
func (cc *InternalConfig) UserTable() table.KeyValuePairs
type LoadBalancerScheme ¶ added in v0.16.0
type LoadBalancerScheme int
const ( UnknownLoadBalancerScheme LoadBalancerScheme = iota InternetFacingLoadBalancerScheme InternalLoadBalancerScheme )
func LoadBalancerSchemeFromString ¶ added in v0.16.0
func LoadBalancerSchemeFromString(s string) LoadBalancerScheme
func (LoadBalancerScheme) MarshalBinary ¶ added in v0.16.0
func (t LoadBalancerScheme) MarshalBinary() ([]byte, error)
MarshalBinary satisfies BinaryMarshaler
func (LoadBalancerScheme) MarshalText ¶ added in v0.16.0
func (t LoadBalancerScheme) MarshalText() ([]byte, error)
MarshalText satisfies TextMarshaler
func (LoadBalancerScheme) String ¶ added in v0.16.0
func (t LoadBalancerScheme) String() string
func (*LoadBalancerScheme) UnmarshalBinary ¶ added in v0.16.0
func (t *LoadBalancerScheme) UnmarshalBinary(data []byte) error
UnmarshalBinary satisfies BinaryUnmarshaler Needed for msgpack
func (*LoadBalancerScheme) UnmarshalText ¶ added in v0.16.0
func (t *LoadBalancerScheme) UnmarshalText(text []byte) error
UnmarshalText satisfies TextUnmarshaler
type NATGateway ¶ added in v0.16.0
type NATGateway int
const ( UnknownNATGateway NATGateway = iota NoneNATGateway SingleNATGateway HighlyAvailableNATGateway )
func NATGatewayFromString ¶ added in v0.16.0
func NATGatewayFromString(s string) NATGateway
func (NATGateway) MarshalBinary ¶ added in v0.16.0
func (t NATGateway) MarshalBinary() ([]byte, error)
MarshalBinary satisfies BinaryMarshaler
func (NATGateway) MarshalText ¶ added in v0.16.0
func (t NATGateway) MarshalText() ([]byte, error)
MarshalText satisfies TextMarshaler
func (NATGateway) String ¶ added in v0.16.0
func (t NATGateway) String() string
func (*NATGateway) UnmarshalBinary ¶ added in v0.16.0
func (t *NATGateway) UnmarshalBinary(data []byte) error
UnmarshalBinary satisfies BinaryUnmarshaler Needed for msgpack
func (*NATGateway) UnmarshalText ¶ added in v0.16.0
func (t *NATGateway) UnmarshalText(text []byte) error
UnmarshalText satisfies TextUnmarshaler
type SpotConfig ¶
type SpotConfig struct { InstanceDistribution []string `json:"instance_distribution" yaml:"instance_distribution"` OnDemandBaseCapacity *int64 `json:"on_demand_base_capacity" yaml:"on_demand_base_capacity"` OnDemandPercentageAboveBaseCapacity *int64 `json:"on_demand_percentage_above_base_capacity" yaml:"on_demand_percentage_above_base_capacity"` MaxPrice *float64 `json:"max_price" yaml:"max_price"` InstancePools *int64 `json:"instance_pools" yaml:"instance_pools"` OnDemandBackup *bool `json:"on_demand_backup" yaml:"on_demand_backup"` }
type SubnetVisibility ¶ added in v0.16.0
type SubnetVisibility int
const ( UnknownSubnetVisibility SubnetVisibility = iota PublicSubnetVisibility PrivateSubnetVisibility )
func SubnetVisibilityFromString ¶ added in v0.16.0
func SubnetVisibilityFromString(s string) SubnetVisibility
func (SubnetVisibility) MarshalBinary ¶ added in v0.16.0
func (t SubnetVisibility) MarshalBinary() ([]byte, error)
MarshalBinary satisfies BinaryMarshaler
func (SubnetVisibility) MarshalText ¶ added in v0.16.0
func (t SubnetVisibility) MarshalText() ([]byte, error)
MarshalText satisfies TextMarshaler
func (SubnetVisibility) String ¶ added in v0.16.0
func (t SubnetVisibility) String() string
func (*SubnetVisibility) UnmarshalBinary ¶ added in v0.16.0
func (t *SubnetVisibility) UnmarshalBinary(data []byte) error
UnmarshalBinary satisfies BinaryUnmarshaler Needed for msgpack
func (*SubnetVisibility) UnmarshalText ¶ added in v0.16.0
func (t *SubnetVisibility) UnmarshalText(text []byte) error
UnmarshalText satisfies TextUnmarshaler
type VolumeType ¶ added in v0.16.0
type VolumeType int
const ( UnknownVolumeType VolumeType = iota GP2VolumeType IO1VolumeType SC1VolumeType ST1VolumeType )
func VolumeTypeFromString ¶ added in v0.16.0
func VolumeTypeFromString(s string) VolumeType
VolumeTypeFromString turns string into StorageType
func (VolumeType) MarshalBinary ¶ added in v0.16.0
func (t VolumeType) MarshalBinary() ([]byte, error)
MarshalBinary satisfies BinaryMarshaler
func (VolumeType) MarshalText ¶ added in v0.16.0
func (t VolumeType) MarshalText() ([]byte, error)
MarshalText satisfies TextMarshaler
func (VolumeType) String ¶ added in v0.16.0
func (t VolumeType) String() string
func (*VolumeType) UnmarshalBinary ¶ added in v0.16.0
func (t *VolumeType) UnmarshalBinary(data []byte) error
UnmarshalBinary satisfies BinaryUnmarshaler Needed for msgpack
func (*VolumeType) UnmarshalText ¶ added in v0.16.0
func (t *VolumeType) UnmarshalText(text []byte) error
UnmarshalText satisfies TextUnmarshaler