Namespace Neon.Kube
Classes
ClusterContainerImage
Holds information about a container image deployed as part of cluster setup.
ClusterDefinitionException
Signals cluster definition errors.
ClusterDetails
Holds relevant cluster details.
ClusterHealth
Describes the current health of a cluster.
ClusterHost
Important external cluster host names.
ClusterInfo
Holds details about a cluster.
ClusterLock
Describes the current lock status of a cluster.
ClusterManifest
Holds information about a deployed cluster including things like the container images that need to be present in the local Harbor deployment. This information is associated with a specific version of NEONKUBE and is generated automatically during NEONCLOUD node image builds and is uploaded to S3 as a JSON document.
This ends up being embedded into the neon-cluster-operator as a resource via a build task that uses the neon-build get-cluster-manifest command to download the file from S3 so it can be included in the project.
ClusterNodeTelemetry
Node Telemetry
ClusterSetupFailureMetadata
Holds metadata about a cluster whose prepare or setup operations failed. This is included in the ZIP file uploaded to the headend as a file named metadata.yaml.
ClusterTelemetry
Models cluster telemetry transmitted periodically to the headend.
GrpcLogExporter
Implements a trace exporter that forwards log batches to the neon-desktop-service which then handles the transmission to the headend.
GrpcTraceExporter
Implements a trace exporter that forwards trace batches to the neon-desktop-service which then handles the transmission to the headend.
HostingReadinessException
Thrown when a hosting manager's CheckDeploymentReadinessAsync(ClusterDefinition) method detects a problem. Examine the Readiness property for information about the problems.
KubeClientConfig
Used by the NEONKUBE client desktop and command line tools to manage the client side configuration.
KubeClusterAdvice
Holds cluster configuration advice initialized early during cluster setup. This is used to centralize the decisions about things like resource limitations and node taints/affinity based on the overall resources available to the cluster.
KubeConfigMapName
Defines internal NEONKUBE global cluster configmap names.
KubeConst
Important cluster constants.
KubeDiagnostics
NEONKUBE cluster diagnostics.
KubeDownloads
Kubernetes related component download URIs.
KubeEnv
Defines the NEONKUBE related environment variables as well as properties that access them.
KubeHelper
cluster related utilties.
KubeMinioBucket
Defines the Minio bucket names used by NEONKUBE applications.
KubeNamespace
Defines the namespace names created for NEONKUBE clusters.
KubeNodeFolder
Enumerates the paths of important directories on cluster node servers.
KubeNodePort
Defines reserved node and cluster network ports.
KubePort
Defines reserved NEONKUBE ports.
KubeSecretName
Defines internal NEONKUBE global cluster secret names.
KubeService
Defines the Neon service names.
KubeServiceAdvice
Used by KubeClusterAdvice to record configuration advice for a specific Kurbernetes service being deployed.
KubeSetupProperty
Identifies the cluster setup state available in an ISetupController.
KubeSetupState
Holds cluster provisioning related state.
KubeVersions
Specifies deployment related component versions for the current NEONKUBE release. Kubernetes release information can be found here: https://kubernetes.io/releases/
NeonAnnotation
Defines the non-node annotations used to tag objects by NEONKUBE.
NeonKubeException
Describes a cluster related related error.
NeonLabel
Defines the non-node cluster definition labels used to tag objects by NEONKUBE.
note
Labels specified by the cluster definition and assigned to nodes are defined here: NodeLabels.
NeonNodeTaskType
Defines node task types.
NodeImageInfo
Holds information about a setup container image.
PriorityClass
Enumerates the system and NEONKUBE pod PriorityClass values. These are used by Kubernetes when deciding which pod to evict from a node when necessary as well as for ordering how pods will be terminated when nodes are shutdown gracefully. Each priority property defines the priority name and value.
note
Higher priorities have higher values and non-Kubernetes defined priority values must be less than 1 billion.
NEONKUBE priority property names are prefixed by "Neon" and built-in Kubernetes priority property
names are prefixed by "System" and will have IsSystem set
to true
.
Values returns the list of all known priorities.
Here are the known priority values, in decending order by priority.
SystemNodeCritical (2000001000) | Built-in Kubernetes priority used for the most important pods running on a node. |
SystemClusterCritical (2000000000) | Built-in Kubernetes priority used for the important pods running on a cluster. |
NeonMax (999999999) | Idenifies the maximum priority reserved for NEONKUBE applications. You should avoid using priorities in the range of NeonMin and NeonMax (inclusive) for your applications. |
NeonOperator (900008000) | Used for critical NEONKUBE operators. |
NeonNetwork (900007000) | Used for NEONKUBE database deployments. |
NeonStorage (900006000) | Used for critical OpenEBS related storage services that back critical NEONKUBE and user deployments. |
NeonData (900005000) | Used for NEONKUBE database deployments. |
NeonApi (900004000) | Used for NEONKUBE API deployments. |
NeonApp (900003000) | Used for NEONKUBE application deployments. |
NeonMonitor (900002000) | Used for NEONKUBE monitoring components. |
NeonMin (900000000) | Idenifies the maximum priority reserved for NEONKUBE applications. You should avoid using priorities in the range of NeonMin and NeonMax (inclusive) for your applications. |
UserVeryHigh (5000) | Available for very-high priority user pods. |
UserHigh (4000) | Available for high priority user pods. |
UserMedium (3000) | Available for medium priority user pods. Note that this is also configured as the global default priority class. Pods deployed without a specific priority class will be assigned this one. |
UserLow (2000) | Available for user user pods. |
UserVeryLow (1000) | Available for very-low priority user pods. |
The values defined above won't change and they are spaced well apart so users can insert additional priorities as required.
The user priorities defined here are just a starting point and you're free to add add additional priorities as required or remove or edit the ones you degine. We recommend that most user defined priorities be lower than NeonApp to avoid conflicts with critical Kubernetes and NEONKUBE pods.
note
UserMedium is configured as the global priority class by default. This means that any pods you deploy without explicitly specifying a priority class will be assigned 1000002000 rather than 0. This can come in handy when you have an existing cluster and realize you need to run new pods at a lower priority than already running pods, and you prefer not to mess the running pod priorities.
note
You should avoid using priorities in the range of NeonMin and NeonMax (inclusive) for your applications.
The ToManifest() method returns the Kubernetes manifest text that to be allpied to the cluster to initialize the priority classes.
PrometheusClient
Client for interacting with the Prometheus API.
PrometheusMatrixResult
Models a Prometheus matrix result.
PrometheusMatrixValue
Models a Prometheus matrix value.
PrometheusResponseData<T>
Models the Prometheus result data.
PrometheusResponse<T>
Models the Prometheus HTTP API response.
PrometheusResult
Models a Prometheus result.
PrometheusTimeSeriesValueConverter
A JSON converter for converting PrometheusTimeSeriesValue.
PrometheusVectorResult
Models a Prometheus vector result.
PrometheusVectorValue
Models a Prometheus vector value.
TypedConfigMap<TConfigMapData>
Extends a Kubernetes V1ConfigMap to support strongly typed configurations. This is implemented by serializing the config data as JSON and adding that to the low-level configmap under the DataPropertyName key.
note
This is typically used for persisting state to the cluster rather than for setting configuration for pods but can be used for that as well.
TypedSecret<TSecretData>
Extends a Kubernetes V1Secret to support strongly typed secrets. This is implemented by serializing the secret data as JSON and adding that to the low-level secret under the DataPropertyName key.
VersionException
Indicates a client or other version incompatiblity.
Structs
PriorityClass.PriorityDef
Used to define a pod priority.
PrometheusTimeSeriesValue
Models a prometheus time series value.
Enums
ClusterDeploymentStatus
Enumerates the cluster deployment status.
ClusterNodeState
Enumerates the possible states of a cluster node from the hosting manager's perspective.
ClusterState
Enumerates the possible overall states for a cluster.
KubeClientPlatform
Enumerates the operating systems supported by NEONKUBE client applications used on developer or operator workstations to manage remote NEONKUBE clusters.
KubeImageType
Enumerates the NEONKUBE image types.
PrometheusResponseStatus
Specifies response status from Prometheus HTTP API.
PrometheusResultType
Specifies the result type.