• NeonSDK
  • NeonKUBE
Search Results for

    Show / Hide Table of Contents
    • Neon.Kube
      • ClusterContainerImage
      • ClusterDefinitionException
      • ClusterDeploymentStatus
      • ClusterDetails
      • ClusterHealth
      • ClusterHost
      • ClusterInfo
      • ClusterLock
      • ClusterManifest
      • ClusterNodeState
      • ClusterNodeTelemetry
      • ClusterSetupFailureMetadata
      • ClusterState
      • ClusterTelemetry
      • GrpcLogExporter
      • GrpcTraceExporter
      • HostingReadinessException
      • KubeClientConfig
      • KubeClientPlatform
      • KubeClusterAdvice
      • KubeConfigMapName
      • KubeConst
      • KubeDiagnostics
      • KubeDownloads
      • KubeEnv
      • KubeHelper
      • KubeImageType
      • KubeMinioBucket
      • KubeNamespace
      • KubeNodeFolder
      • KubeNodePort
      • KubePort
      • KubeSecretName
      • KubeService
      • KubeServiceAdvice
      • KubeSetupProperty
      • KubeSetupState
      • KubeVersions
      • NeonAnnotation
      • NeonKubeException
      • NeonLabel
      • NeonNodeTaskType
      • NodeImageInfo
      • PriorityClass
      • PriorityClass.PriorityDef
      • PrometheusClient
      • PrometheusMatrixResult
      • PrometheusMatrixValue
      • PrometheusResponseData<T>
      • PrometheusResponseStatus
      • PrometheusResponse<T>
      • PrometheusResult
      • PrometheusResultType
      • PrometheusTimeSeriesValue
      • PrometheusTimeSeriesValueConverter
      • PrometheusVectorResult
      • PrometheusVectorValue
      • TypedConfigMap<TConfigMapData>
      • TypedSecret<TSecretData>
      • VersionException
    • Neon.Kube.BuildInfo
      • ThisAssembly
      • ThisAssembly.Git
      • ThisAssembly.Git.BaseVersion
      • ThisAssembly.Git.SemVer
    • Neon.Kube.Clients
      • AzureComputePlan
      • AzureImageDetails
      • AzureImageReference
      • HeadendClient
      • HeadendClient.__Cluster
      • HeadendClient.__ClusterSetup
      • HeadendClient.__NeonDesktop
    • Neon.Kube.ClusterDef
      • AcmeOptions
      • AddressRule
      • AddressRuleAction
      • ApiServerOptions
      • AwsHelper
      • AwsHostingOptions
      • AwsNetworkOptions
      • AwsNodeOptions
      • AwsVolumeType
      • AzureCloudEnvironment
      • AzureCloudEnvironments
      • AzureHelper
      • AzureHostingOptions
      • AzureNetworkOptions
      • AzureNodeOptions
      • AzureStorageType
      • BareMetalHostingOptions
      • CloudOptions
      • ClusterDefinition
      • ClusterPurpose
      • ContainerOptions
      • DeploymentOptions
      • FeatureOptions
      • FeatureOptions.HarborOptions
      • GoogleHostingOptions
      • HealthCheckOptions
      • HostingEnvironment
      • HostingOptions
      • HyperVHostingOptions
      • HypervisorHost
      • HypervisorHostingOptions
      • HypervisorNodeOptions
      • IngressProtocol
      • IngressRule
      • JobOptions
      • JobSchedule
      • KubernetesOptions
      • LogOptions
      • MetricsOptions
      • MetricsStorageOptions
      • MinioOptions
      • MonitorOptions
      • NetworkCni
      • NetworkOptions
      • NodeDefinition
      • NodeLabels
      • NodeOptions
      • NodeRole
      • OpenEbsEngine
      • OpenEbsOptions
      • Registry
      • ResourceTag
      • SecurityOptions
      • StorageOptions
      • TraceOptions
      • XenServerHostingOptions
    • Neon.Kube.ClusterMetadata
      • ClusterLockState
      • ClusterLockStatus
    • Neon.Kube.Config
      • ClusterLoginExport
      • KubeClusterInfo
      • KubeConfig
      • KubeConfigAuthProvider
      • KubeConfigCluster
      • KubeConfigClusterConfig
      • KubeConfigContext
      • KubeConfigContextConfig
      • KubeConfigEnvironmentVariable
      • KubeConfigExecConfig
      • KubeConfigExecInteractiveMode
      • KubeConfigPreferences
      • KubeConfigUser
      • KubeConfigUserConfig
      • KubeContextName
      • KubeFileDetails
      • KubeSshKey
      • NeonKubeExtensions
    • Neon.Kube.Deployment
      • ClusterDeployment
      • NodeDeployment
    • Neon.Kube.DesktopService
      • DesktopService
      • GrpcDesktopService
    • Neon.Kube.Glauth
      • GlauthGroup
      • GlauthUser
      • GlauthUserCapability
    • Neon.Kube.GrpcProto
      • GrpcError
      • GrpcErrorExtensions
      • GrpcServiceException
      • NeonGrpcServices
    • Neon.Kube.GrpcProto.Desktop
      • DesktopConverters
      • GrpGetVmDrivesReply
      • GrpcAddVmDriveRequest
      • GrpcAddVmRequest
      • GrpcBaseReply
      • GrpcCompactDriveRequest
      • GrpcEjectVmDvdRequest
      • GrpcFindIPAddressReply
      • GrpcFindIPAddressRequest
      • GrpcFindNatByNameRequest
      • GrpcFindNatBySubnetRequest
      • GrpcFindNatReply
      • GrpcGetSwitchReply
      • GrpcGetSwitchRequest
      • GrpcGetVmDrivesRequest
      • GrpcGetVmNetworkAdaptersReply
      • GrpcGetVmNetworkAdaptersRequest
      • GrpcGetVmReply
      • GrpcGetVmRequest
      • GrpcGetWindowsOptionalFeaturesReply
      • GrpcGetWindowsOptionalFeaturesRequest
      • GrpcInsertVmDvdRequest
      • GrpcIsNestedVirtualizationReply
      • GrpcIsNestedVirtualizationRequest
      • GrpcListLocalHostsSectionsReply
      • GrpcListLocalHostsSectionsRequest
      • GrpcListNatsReply
      • GrpcListNatsRequest
      • GrpcListSwitchesReply
      • GrpcListSwitchesRequest
      • GrpcListVmsReply
      • GrpcListVmsRequest
      • GrpcLocalHostSection
      • GrpcNewExternalSwitchRequest
      • GrpcNewInternalSwitchRequest
      • GrpcRelayLogBatchReply
      • GrpcRelayLogBatchRequest
      • GrpcRelayTraceBatchReply
      • GrpcRelayTraceBatchRequest
      • GrpcRemoveSwitchRequest
      • GrpcRemoveVmRequest
      • GrpcSaveVmRequest
      • GrpcStartVmRequest
      • GrpcStopVmRequest
      • GrpcVirtualDrive
      • GrpcVirtualIPAddress
      • GrpcVirtualMachine
      • GrpcVirtualMachineNetworkAdapter
      • GrpcVirtualNat
      • GrpcVirtualSwitch
      • GrpcVmExistsReply
      • GrpcVmExistsRequest
      • IGrpcDesktopService
    • Neon.Kube.Hosting
      • HostedNodeInfo
      • HostingCapabilities
      • HostingConstrainedResourceType
      • HostingLoader
      • HostingManager
      • HostingManagerFactory
      • HostingProviderAttribute
      • HostingReadiness
      • HostingReadinessProblem
      • HostingResourceAvailability
      • HostingResourceConstraint
      • IHostingLoader
      • IHostingManager
      • IHostingManagerFactory
      • StopMode
    • Neon.Kube.Hosting.Aws
      • AwsHostingManager
    • Neon.Kube.Hosting.Azure
      • AzureHostingManager
    • Neon.Kube.Hosting.BareMetal
      • BareMetalHostingManager
    • Neon.Kube.Hosting.Google
      • GoogleHostingManager
    • Neon.Kube.Hosting.HyperV
      • HyperVHostingManager
    • Neon.Kube.Hosting.XenServer
      • XenServerHostingManager
      • XenServerHostingManager.DiskTemplateInfo
    • Neon.Kube.K8s
      • KubernetesExtensions
      • KubernetesObjectMetadata
      • KubernetesRetryHandler
      • LeaderElectionConfig
      • LeaderElector
      • V1CustomObjectList<T>
      • WatchEvent<T>
      • Watcher<T>
    • Neon.Kube.Models
      • AzureComputePlan
      • AzureImageDetails
      • AzureImageReference
    • Neon.Kube.Models.Headend
      • IClusterApi
      • IClusterSetupApi
      • INeonDesktopApi
      • Stub
    • Neon.Kube.Oauth2Proxy
      • Oauth2ProxyConfig
      • Oauth2ProxyHeader
      • Oauth2ProxyHeaderValue
      • Oauth2ProxyLoginUrlParameterRule
      • Oauth2ProxyLoginUrlParameters
      • Oauth2ProxyOidcOptions
      • Oauth2ProxyProvider
      • Oauth2ProxyProviderType
      • Oauth2ProxySecretSource
      • Oauth2ProxyServer
      • Oauth2ProxyTls
      • Oauth2ProxyUpstream
      • Oauth2ProxyUpstreamConfig
    • Neon.Kube.PortForward
      • IPortForwardManager
      • PortForwardManager
    • Neon.Kube.Proxy
      • ClusterProxy
      • ClusterProxy.Operation
      • ClusterResetOptions
      • NodeProxyCreator
    • Neon.Kube.Resources
      • CustomResourceException
      • ResourceHelper
    • Neon.Kube.Resources.Calico
      • V1FelixConfiguration
    • Neon.Kube.Resources.CertManager
      • AcmeChallengeSolver
      • AcmeChallengeSolverDns01
      • AcmeExternalAccountBinding
      • AcmeIssuer
      • AcmeIssuerDns01ProviderRoute53
      • AcmeIssuerDns01ProviderWebhook
      • AcmeSecretKeySelector
      • CertificateDnsNameSelector
      • ChallengeAction
      • ChallengePayload
      • ChallengeRequest
      • ChallengeResponse
      • ClusterIssuer
      • IssuerRef
      • JKS
      • KeyAlgorithm
      • KeyEncoding
      • Keystores
      • PKCS12
      • PasswordSecretRef
      • PrivateKey
      • RotationPolicy
      • Subject
      • V1Certificate
      • V1CertificateRequest
      • V1CertificateSpec
      • V1CertificateStatus
      • V1IssuerSpec
      • X509Usages
    • Neon.Kube.Resources.Cluster
      • TestStatus
      • V1CrioConfiguration
      • V1CrioConfiguration.CrioConfigurationSpec
      • V1NeonClusterJobs
      • V1NeonClusterJobs.JobSchedule
      • V1NeonClusterJobs.JobStatus
      • V1NeonClusterJobs.NeonClusterJobsSpec
      • V1NeonClusterJobs.NeonClusterJobsStatus
      • V1NeonContainerRegistry
      • V1NeonContainerRegistry.RegistrySpec
      • V1NeonDashboard
      • V1NeonDashboard.NeonDashboardSpec
      • V1NeonNodeTask
      • V1NeonNodeTask.Phase
      • V1NeonNodeTask.TaskSpec
      • V1NeonNodeTask.TaskStatus
      • V1NeonSsoCallbackUrl
      • V1NeonSsoClient
      • V1NeonSsoConnector
      • V1NeonTestObject
      • V1SsoCallbackUrlSpec
      • V1SsoCallbackUrlStatus
      • V1SsoClientSpec
      • V1SsoClientStatus
      • V1TestSpec
    • Neon.Kube.Resources.Dex
      • DexConfig
      • DexConnector
      • DexConnectorConverter
      • DexConnectorType
      • DexConnector<T>
      • DexExpiryConfig
      • DexFrontendConfig
      • DexGrpcConfig
      • DexLdapConfig
      • DexLdapSearch
      • DexLogConfig
      • DexOauth2Config
      • DexOidcClaimMapping
      • DexOidcConfig
      • DexRefreshTokenConfig
      • DexStaticUser
      • DexStorage
      • DexStorageType
      • DexTelemetryConfig
      • DexUserMatcher
      • DexWebConfig
      • IDexConnectorConfig
      • IDexConnector<T>
      • IV1DexConnector
      • Oauth2ResponseType
    • Neon.Kube.Resources.ExternalDns
      • DnsEndpoint
      • DnsRecordType
      • ExternalDnsEndpoint
      • V1DnsEndpointSpec
    • Neon.Kube.Resources.Grafana
      • V1Grafana
      • V1GrafanaDashboard
      • V1GrafanaDashboardSpec
      • V1GrafanaDatasource
    • Neon.Kube.Resources.Harbor
      • V1HarborCluster
      • V1HarborConfiguration
      • V1HarborNotaryServer
      • V1HarborNotarySigner
    • Neon.Kube.Resources.Istio
      • Abort
      • AuthorizationPolicyAction
      • AuthorizationPolicyOperation
      • AuthorizationPolicyRule
      • AuthorizationPolicyRule.From
      • AuthorizationPolicyRule.To
      • AuthorizationPolicySource
      • ClientTLSSettings
      • CorsPolicy
      • Delay
      • Delegate
      • Destination
      • ExtensionProvider
      • HTTPFaultInjection
      • HTTPMatchRequest
      • HTTPMethod
      • HTTPRedirect
      • HTTPRetry
      • HTTPRewrite
      • HTTPRoute
      • HTTPRouteDestination
      • HeaderOperations
      • Headers
      • L4MatchAttributes
      • Location
      • Percent
      • Port
      • PortProtocol
      • PortSelector
      • Resolution
      • RouteDestination
      • Server
      • ServerTLSSettings
      • ServiceEntry
      • StringMatch
      • TCPRoute
      • TLSMatchAttributes
      • TLSMode
      • TLSProtocol
      • TLSRoute
      • Tracing
      • TracingProvider
      • TrafficPolicy
      • UInt32Value
      • V1AuthorizationPolicy
      • V1AuthorizationPolicySpec
      • V1DestinationRule
      • V1DestinationRuleSpec
      • V1Gateway
      • V1GatewaySpec
      • V1ServiceEntrySpec
      • V1Telemetry
      • V1TelemetrySpec
      • V1VirtualService
      • V1VirtualServiceSpec
      • WorkloadEntry
      • WorkloadSelector
    • Neon.Kube.Resources.JsonConverters
      • DexConnectorJsonConverter
      • JsonCollectionItemConverter<TDatatype, TConverterType>
      • JsonV1ResourceConverter
    • Neon.Kube.Resources.Kiali
      • V1Kiali
    • Neon.Kube.Resources.Minio
      • BucketQuota
      • RetentionMode
      • RetentionSpec
      • V1MinioBucket
      • V1MinioBucket.V1MinioBucketSpec
      • V1MinioBucket.V1MinioBucketStatus
      • V1MinioTenant
      • VersioningMode
    • Neon.Kube.Resources.OpenEBS
      • BlockDeviceCapacity
      • BlockDeviceDetails
      • BlockDeviceDevLink
      • BlockDeviceType
      • DataRaidGroupTypes
      • DevLinkType
      • DriveType
      • FileSystemInfo
      • V1CStorBlockDevice
      • V1CStorBlockDeviceList
      • V1CStorBlockDeviceRef
      • V1CStorBlockDeviceSpec
      • V1CStorDataRaidGroup
      • V1CStorPoolCluster
      • V1CStorPoolClusterList
      • V1CStorPoolClusterSpec
      • V1CStorPoolConfig
      • V1CStorPoolSpec
    • Neon.Kube.Resources.Prometheus
      • Endpoint
      • NamespaceSelector
      • V1ServiceMonitor
      • V1ServiceMonitorSpec
    • Neon.Kube.SSH
      • INodeSshProxy
      • NodeSshProxyExtensions
      • NodeSshProxy<TMetadata>
    • Neon.Kube.Setup
      • DesktopServiceProxy
      • ISetupController
      • ISetupControllerStep
      • KubeSetup
      • NodeLog
      • PrepareClusterOptions
      • SetupClusterOptions
      • SetupClusterStatus
      • SetupConsoleWriter
      • SetupController<NodeMetadata>
      • SetupDisposition
      • SetupNodeStatus
      • SetupProgressDelegate
      • SetupProgressMessage
      • SetupStatusChangedDelegate
      • SetupStepDetails
      • SetupStepState
      • SetupStepStatus
    • Neon.Kube.Xunit
      • AwsClusterDefinitions
      • AzureClusterDefinitions
      • ClusterFactAttribute
      • ClusterFixture
      • ClusterFixtureOptions
      • ClusterTheoryAttribute
      • HyperVClusterDefinitions
      • KubeTestHelper
      • KubeTestManager
      • XenServerClustersDefinitions

    Class AwsHostingOptions

    Specifies the Amazon Web Services hosting settings.

    Inheritance
    object
    AwsHostingOptions
    Namespace: Neon.Kube.ClusterDef
    Assembly: Neon.Kube.dll
    Syntax
    public class AwsHostingOptions

    Constructors

    AwsHostingOptions()

    Constructor.

    Declaration
    public AwsHostingOptions()

    Properties

    AccessKeyId

    The AWS access key ID that identifies the IAM key created for the IAM user assigned to NEONKUBE for management activities, including creating the cluster. This combined with SecretAccessKey will be used to confirm the identity.

    Declaration
    [JsonProperty(PropertyName = "AccessKeyId", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "accessKeyId", ApplyNamingConventions = false)]
    public string AccessKeyId { get; set; }
    Property Value
    Type Description
    string

    AvailabilityZone

    Specifies the AWS zone where the cluster will be provisioned. This is required.

    Declaration
    [JsonProperty(PropertyName = "AvailabilityZone", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "availabilityZone", ApplyNamingConventions = false)]
    public string AvailabilityZone { get; set; }
    Property Value
    Type Description
    string

    ControlPlanePlacementPartitions

    Specifies the number of control-plane placement group partitions the cluster control-plane node instances will be deployed to. This defaults to -1 which means that the number of partitions will equal the number of control-plane nodes. AWS supports a maximum of 7 placement partitions.

    Declaration
    [JsonProperty(PropertyName = "ControlPlanePlacementPartitions", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "controlPlanePlacementPartitions", ApplyNamingConventions = false)]
    public int ControlPlanePlacementPartitions { get; set; }
    Property Value
    Type Description
    int
    Remarks

    AWS provides three different types of placement groups to user help manage where virtual machine instances are provisioned within an AWS availability zone to customize fault tolerance due to AWS hardware failures.

    AWS Placement groups

    NEONKUBE provisions instances using two partition placement groups, one for the cluster control-plane nodes and the other for the workers. The idea is that control-plane nodes should be deployed on separate hardware for fault tolerance because if the majority of control-plane nodes go offline, the entire cluster will be dramatically impacted. In general, the number of ControlPlanePlacementPartitions partitions should equal the number of control-plane nodes.

    Worker nodes are distributed across WorkerPlacementPartitions partitions in a separate placement group. The number of worker partitions defaults to 1, potentially limiting the resilience to AWS hardware failures while making it more likely that AWS will be able to actually satisfy the conditions to provision the cluster node instances.

    Unfortunately, AWS may not have enough distinct hardware available to satisfy your requirements. In this case, we recommend that you try another availability zone first and if that doesn't work try reducing the number of partitions which can be as low as 1 partition.

    DefaultEbsOptimized

    Specifies whether the cluster instances should be EBS-optimized by default. This defaults to false and can be overidden for specific cluster nodes via EbsOptimized.

    Amazon EBS–optimized instances

    Declaration
    [JsonProperty(PropertyName = "DefaultEbsOptimized", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "defaultEbsOptimized", ApplyNamingConventions = false)]
    public bool DefaultEbsOptimized { get; set; }
    Property Value
    Type Description
    bool
    Remarks

    Non EBS optimized instances perform disk operation I/O to EBS volumes using the same network used for other network operations. This means that you may see some disk performance declines when your instance is busy serving web traffic or running database queries, etc.

    EBS optimization can be enabled for some instance types. This provisions extra dedicated network bandwidth exclusively for EBS I/O. Exactly how this works, depends on the specific VM type.

    More modern AWS VM types enable EBS optimization by default and you won't incur any additional charges for these instances and disabling EBS optimization here or via EbsOptimized won't have any effect.

    Some AWS instance types can be optimized but this is disabled by default. When you enable this by setting DefaultEbsOptimized=true or EbsOptimized=true, you'll probably an additional AWS hourly fee for these instances.

    Some AWS instance types don't support EBS optimization. You'll need to be sure that this is disabled for those nodes.

    DefaultInstanceType

    Identifies the default AWS instance type to be provisioned for cluster nodes that don't specify an instance type. This defaults to c5.2xlarge which includes 8 virtual cores and 16 GiB RAM but can be overridden for specific cluster nodes via InstanceType.

    note

    NEONKUBE clusters cannot be deployed to ARM-based AWS instance types. You must specify an instance type using a Intel or AMD 64-bit processor.

    note

    NEONKUBE requires control-plane and worker instances to have at least 4 CPUs and 8GiB RAM. Choose an AWS instance type that satisfies these requirements.

    Declaration
    [JsonProperty(PropertyName = "DefaultInstanceType", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "defaultInstanceType", ApplyNamingConventions = false)]
    public string DefaultInstanceType { get; set; }
    Property Value
    Type Description
    string

    DefaultOpenEbsVolumeSize

    Specifies the default AWS volume size to be used when creating OpenEBS cStor disks. This defaults to 128 GiB but can be overridden for specific cluster nodes via OpenEbsVolumeSize.

    Declaration
    [JsonProperty(PropertyName = "DefaultOpenEbsVolumeSize", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "defaultOpenEbsVolumeSize", ApplyNamingConventions = false)]
    public string DefaultOpenEbsVolumeSize { get; set; }
    Property Value
    Type Description
    string
    Remarks
    note

    Node disks smaller than 32 GiB are not supported by NEONKUBE. We'll automatically round up the disk size when necessary.

    DefaultOpenEbsVolumeType

    Specifies the default AWS volume type to use for OpenEBS cStor disks. This defaults to Gp2 which is SSD based and offers a reasonable compromise between performance and cost. This can be overridden for specific cluster nodes via OpenEbsVolumeType.

    Declaration
    [JsonProperty(PropertyName = "DefaultOpenEbsVolumeType", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "defaultOpenEbsVolumeType", ApplyNamingConventions = false)]
    public AwsVolumeType DefaultOpenEbsVolumeType { get; set; }
    Property Value
    Type Description
    AwsVolumeType

    DefaultVolumeSize

    Specifies the default AWS volume size for the cluster node primary disks. This defaults to 128 GiB but can be overridden for specific cluster nodes via VolumeSize.

    Declaration
    [JsonProperty(PropertyName = "DefaultVolumeSize", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "defaultVolumeSize", ApplyNamingConventions = false)]
    public string DefaultVolumeSize { get; set; }
    Property Value
    Type Description
    string
    Remarks
    note

    Node disks smaller than 32 GiB are not supported by NEONKUBE. We'll automatically round up the disk size when necessary.

    DefaultVolumeType

    Specifies the default AWS volume type for cluster node primary disks. This defaults to Gp2 which is SSD based and offers a reasonable compromise between performance and cost. This can be overriden for specific cluster nodes via VolumeType.

    Declaration
    [JsonProperty(PropertyName = "DefaultVolumeType", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "defaultVolumeType", ApplyNamingConventions = false)]
    public AwsVolumeType DefaultVolumeType { get; set; }
    Property Value
    Type Description
    AwsVolumeType

    Network

    Specifies the AWS related cluster network options.

    Declaration
    [JsonProperty(PropertyName = "Network", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "network", ApplyNamingConventions = false)]
    public AwsNetworkOptions Network { get; set; }
    Property Value
    Type Description
    AwsNetworkOptions

    Region

    Returns the AWS region where the cluster will be provisioned. This is derived from AvailabilityZone by removing the last character, which is the zone suffix.

    Declaration
    [JsonIgnore]
    [YamlIgnore]
    public string Region { get; }
    Property Value
    Type Description
    string

    ResourceGroup

    AWS resource group where all cluster components are to be provisioned. This defaults to "neon-" plus the cluster name but can be customized as required.

    Declaration
    [JsonProperty(PropertyName = "ResourceGroup", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "resourceGroup", ApplyNamingConventions = false)]
    public string ResourceGroup { get; set; }
    Property Value
    Type Description
    string

    SecretAccessKey

    The AWS secret used to confirm the AccessKeyId identity.

    Declaration
    [JsonProperty(PropertyName = "SecretAccessKey", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "secretAccessKey", ApplyNamingConventions = false)]
    public string SecretAccessKey { get; set; }
    Property Value
    Type Description
    string

    WorkerPlacementPartitions

    Specifies the number of worker placement group partitions the cluster worker node instances will be deployed to. This defaults to 1 trading off resilience to hardware failures against increasing the chance that AWS will actually be able to provision the cluster nodes. AWS supports a maximum of 7 placement partitions.

    Declaration
    [JsonProperty(PropertyName = "WorkerPlacementPartitions", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
    [YamlMember(Alias = "workerPlacementPartitions", ApplyNamingConventions = false)]
    public int WorkerPlacementPartitions { get; set; }
    Property Value
    Type Description
    int
    Remarks

    AWS provides three different types of placement groups to user help manage where virtual machine instances are provisioned within an AWS availability zone to customize fault tolerance due to AWS hardware failures.

    AWS Placement groups

    NEONKUBE provisions instances using two partition placement groups, one for the cluster control-plane nodes and the other for the workers. The idea is that control-plane nodes should be deployed on separate hardware for fault tolerance because if the majority of control-plane nodes go offline, the entire cluster will be dramatically impacted. In general, the number of ControlPlanePlacementPartitions partitions should equal the number of control-plane nodes.

    Worker nodes are distributed across WorkerPlacementPartitions partitions in a separate placement group. The number of worker partitions defaults to 1, potentially limiting the resilience to AWS hardware failures while making it more likely that AWS will be able to actually satisfy the conditions to provision the cluster node instances.

    Unfortunately, AWS may not have enough distinct hardware available to satisfy your requirements. In this case, we recommend that you try another availability zone first and if that doesn't work try reducing the number of partitions which can be as low as 1 partition.

    Methods

    ClearSecrets()

    Clears all hosting related secrets.

    Declaration
    public void ClearSecrets()

    Validate(ClusterDefinition)

    Validates the options and also ensures that all null properties are initialized to their default values.

    Declaration
    public void Validate(ClusterDefinition clusterDefinition)
    Parameters
    Type Name Description
    ClusterDefinition clusterDefinition

    The cluster definition.

    Exceptions
    Type Condition
    ClusterDefinitionException

    Thrown if the definition is not valid.

    In this article
    Back to top © Copyright 2005-2023 by NEONFORGE LLC