diff --git a/configsrc/vcluster/0.33.0/default_values.yaml b/configsrc/vcluster/0.33.0/default_values.yaml index 4e53e2821..dff280978 100644 --- a/configsrc/vcluster/0.33.0/default_values.yaml +++ b/configsrc/vcluster/0.33.0/default_values.yaml @@ -538,6 +538,21 @@ controlPlane: spec: tls: [] + # TLSRoute defines options for vCluster TLS route deployed by Helm. + tlsRoute: + # Enabled defines if the control plane should be exposed via a gateway api tls route. Make sure to enable tls passthrough in the gateway via tls.mode to "Passthrough" + enabled: false + # APIVersion is the version of the gateway api tls route. + apiVersion: gateway.networking.k8s.io/v1 + # Host is the host where vCluster will be reachable + host: "my-host.com" + # ParentRefs are the parent references for the TLS route + parentRefs: [] + # Spec allows you to configure extra tls route options. + spec: {} + labels: {} + annotations: {} + # Standalone holds configuration for standalone mode. Standalone mode is set automatically when no container is detected and # also implies privateNodes.enabled. standalone: @@ -1242,6 +1257,9 @@ experimental: manifestsTemplate: "" # Helm are Helm charts that should get deployed into the virtual cluster helm: [] + + # NodeMonitors allows you to create a service monitor for each node. + nodeMonitors: [] # Configuration related to telemetry gathered about vCluster usage. telemetry: diff --git a/configsrc/vcluster/0.33.0/vcluster.schema.json b/configsrc/vcluster/0.33.0/vcluster.schema.json index 27b9f691f..f120e1c03 100755 --- a/configsrc/vcluster/0.33.0/vcluster.schema.json +++ b/configsrc/vcluster/0.33.0/vcluster.schema.json @@ -380,6 +380,10 @@ "$ref": "#/$defs/ControlPlaneIngress", "description": "Ingress defines options for vCluster ingress deployed by Helm." }, + "tlsRoute": { + "$ref": "#/$defs/ControlPlaneTLSRoute", + "description": "TLSRoute defines options for vCluster TLS route deployed by Helm." + }, "service": { "$ref": "#/$defs/ControlPlaneService", "description": "Service defines options for vCluster service deployed by Helm." @@ -849,6 +853,53 @@ }, "type": "array", "description": "HostAliases allows you to add custom entries to the /etc/hosts file of each Pod created." + }, + "runtimeClassName": { + "type": "string", + "description": "RuntimeClassName is the runtime class to set for the statefulSet pods." + } + }, + "additionalProperties": false, + "type": "object" + }, + "ControlPlaneTLSRoute": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enabled defines if the control plane should be exposed via a gateway api tls route. Make sure to enable tls passthrough in the gateway via tls.mode to \"Passthrough\"" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion is the version of the gateway api tls route." + }, + "host": { + "type": "string", + "description": "Host is the host where vCluster will be reachable" + }, + "parentRefs": { + "items": { + "type": "object" + }, + "type": "array", + "description": "ParentRefs are the parent references for the TLS route" + }, + "spec": { + "type": "object", + "description": "Spec allows you to configure extra tls route options." + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "description": "Annotations are extra annotations for this resource." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "description": "Labels are extra labels for this resource." } }, "additionalProperties": false, @@ -1748,6 +1799,13 @@ "docker": { "$ref": "#/$defs/ExperimentalDocker", "description": "Docker allows you to configure Docker related settings when deploying a vCluster using Docker." + }, + "nodeMonitors": { + "items": { + "$ref": "#/$defs/ExperimentalNodeMonitor" + }, + "type": "array", + "description": "NodeMonitors allows you to create a service monitor for each node." } }, "additionalProperties": false, @@ -1983,6 +2041,90 @@ "additionalProperties": false, "type": "object" }, + "ExperimentalNodeMonitor": { + "properties": { + "name": { + "type": "string", + "description": "Name is the name of the monitor. It will be suffixed with the node name." + }, + "nodeSelector": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "description": "NodeSelector defines the node selector for the service monitor." + }, + "endpoints": { + "items": { + "$ref": "#/$defs/ExperimentalNodeServiceMonitorEndpoint" + }, + "type": "array", + "description": "Endpoints is a list of endpoints to add to the service monitor. By default, vCluster will relabel the node and instance label to the node name." + }, + "spec": { + "type": "object", + "description": "Spec allows you to configure extra service monitor options that will be merged into the spec." + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "description": "Annotations are extra annotations for this resource." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "description": "Labels are extra labels for this resource." + } + }, + "additionalProperties": false, + "type": "object" + }, + "ExperimentalNodeServiceMonitorEndpoint": { + "properties": { + "path": { + "type": "string", + "description": "Path is the kubelet path of the endpoint. vCluster will prepend /api/v1/nodes/NODE_NAME to the path." + }, + "params": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object", + "description": "Params allows you to configure extra parameters to add to the endpoint." + }, + "extraRelabelings": { + "items": { + "type": "object" + }, + "type": "array", + "description": "ExtraRelabelings allows you to configure extra relabelings to add to the endpoint. By default, vCluster will relabel the node and instance label to the node name." + }, + "metricsRelabelings": { + "items": { + "type": "object" + }, + "type": "array", + "description": "MetricsRelabelings allows you to configure extra metrics relabelings to add to the endpoint." + }, + "interval": { + "type": "string", + "description": "Interval is the interval at which to scrape the endpoint." + }, + "scrapeTimeout": { + "type": "string", + "description": "ScrapeTimeout is the timeout for the scrape of the endpoint." + } + }, + "additionalProperties": false, + "type": "object" + }, "ExperimentalSyncSettings": { "properties": { "setOwner": { diff --git a/vcluster_versioned_docs/version-0.33.0/_partials/config/controlPlane.mdx b/vcluster_versioned_docs/version-0.33.0/_partials/config/controlPlane.mdx index a46adaeec..6666bb1b3 100755 --- a/vcluster_versioned_docs/version-0.33.0/_partials/config/controlPlane.mdx +++ b/vcluster_versioned_docs/version-0.33.0/_partials/config/controlPlane.mdx @@ -3094,6 +3094,126 @@ Labels are extra labels for this resource. +
+ + +### `tlsRoute` required object {#controlPlane-tlsRoute} + +TLSRoute defines options for vCluster TLS route deployed by Helm. + + + + + + +
+ + +#### `enabled` required boolean false {#controlPlane-tlsRoute-enabled} + +Enabled defines if the control plane should be exposed via a gateway api tls route. Make sure to enable tls passthrough in the gateway via tls.mode to "Passthrough" + + + + + +
+ + + +
+ + +#### `apiVersion` required string gateway.networking.k8s.io/v1 {#controlPlane-tlsRoute-apiVersion} + +APIVersion is the version of the gateway api tls route. + + + + + +
+ + + +
+ + +#### `host` required string my-host.com {#controlPlane-tlsRoute-host} + +Host is the host where vCluster will be reachable + + + + + +
+ + + +
+ + +#### `parentRefs` required object[] [] {#controlPlane-tlsRoute-parentRefs} + +ParentRefs are the parent references for the TLS route + + + + + +
+ + + +
+ + +#### `spec` required object {} {#controlPlane-tlsRoute-spec} + +Spec allows you to configure extra tls route options. + + + + + +
+ + + +
+ + +#### `annotations` required object {} {#controlPlane-tlsRoute-annotations} + +Annotations are extra annotations for this resource. + + + + + +
+ + + +
+ + +#### `labels` required object {} {#controlPlane-tlsRoute-labels} + +Labels are extra labels for this resource. + + + + + +
+ + +
+ + +
@@ -4429,6 +4549,21 @@ HostAliases allows you to add custom entries to the /etc/hosts file of each Pod
+ + + + +
+ + +#### `runtimeClassName` required string {#controlPlane-statefulSet-runtimeClassName} + +RuntimeClassName is the runtime class to set for the statefulSet pods. + + + + +
diff --git a/vcluster_versioned_docs/version-0.33.0/_partials/config/controlPlane/statefulSet.mdx b/vcluster_versioned_docs/version-0.33.0/_partials/config/controlPlane/statefulSet.mdx index 6cebc72a8..08b5bcf0d 100755 --- a/vcluster_versioned_docs/version-0.33.0/_partials/config/controlPlane/statefulSet.mdx +++ b/vcluster_versioned_docs/version-0.33.0/_partials/config/controlPlane/statefulSet.mdx @@ -1229,6 +1229,21 @@ HostAliases allows you to add custom entries to the /etc/hosts file of each Pod + + + + +
+ + +### `runtimeClassName` required string {#statefulSet-runtimeClassName} + +RuntimeClassName is the runtime class to set for the statefulSet pods. + + + + +
diff --git a/vcluster_versioned_docs/version-0.33.0/_partials/config/experimental.mdx b/vcluster_versioned_docs/version-0.33.0/_partials/config/experimental.mdx index e09b710f1..0962b47ad 100755 --- a/vcluster_versioned_docs/version-0.33.0/_partials/config/experimental.mdx +++ b/vcluster_versioned_docs/version-0.33.0/_partials/config/experimental.mdx @@ -1035,6 +1035,201 @@ via port forwarding. This will be only done if necessary for example on macos wh + + + + + + + +
+ + +### `nodeMonitors` required object[] {#experimental-nodeMonitors} + +NodeMonitors allows you to create a service monitor for each node. + + + + + + +
+ + +#### `name` required string {#experimental-nodeMonitors-name} + +Name is the name of the monitor. It will be suffixed with the node name. + + + + + +
+ + + +
+ + +#### `nodeSelector` required object {#experimental-nodeMonitors-nodeSelector} + +NodeSelector defines the node selector for the service monitor. + + + + + +
+ + + +
+ + +#### `endpoints` required object[] {#experimental-nodeMonitors-endpoints} + +Endpoints is a list of endpoints to add to the service monitor. By default, vCluster will relabel the node and instance label to the node name. + + + + + + +
+ + +##### `path` required string {#experimental-nodeMonitors-endpoints-path} + +Path is the kubelet path of the endpoint. vCluster will prepend /api/v1/nodes/NODE_NAME to the path. + + + + + +
+ + + +
+ + +##### `params` required object {#experimental-nodeMonitors-endpoints-params} + +Params allows you to configure extra parameters to add to the endpoint. + + + + + +
+ + + +
+ + +##### `extraRelabelings` required object[] {#experimental-nodeMonitors-endpoints-extraRelabelings} + +ExtraRelabelings allows you to configure extra relabelings to add to the endpoint. By default, vCluster will relabel the node and instance label to the node name. + + + + + +
+ + + +
+ + +##### `metricsRelabelings` required object[] {#experimental-nodeMonitors-endpoints-metricsRelabelings} + +MetricsRelabelings allows you to configure extra metrics relabelings to add to the endpoint. + + + + + +
+ + + +
+ + +##### `interval` required string {#experimental-nodeMonitors-endpoints-interval} + +Interval is the interval at which to scrape the endpoint. + + + + + +
+ + + +
+ + +##### `scrapeTimeout` required string {#experimental-nodeMonitors-endpoints-scrapeTimeout} + +ScrapeTimeout is the timeout for the scrape of the endpoint. + + + + + +
+ + +
+ + + +
+ + +#### `spec` required object {#experimental-nodeMonitors-spec} + +Spec allows you to configure extra service monitor options that will be merged into the spec. + + + + + +
+ + + +
+ + +#### `annotations` required object {#experimental-nodeMonitors-annotations} + +Annotations are extra annotations for this resource. + + + + + +
+ + + +
+ + +#### `labels` required object {#experimental-nodeMonitors-labels} + +Labels are extra labels for this resource. + + + + +