Esta es documentación inédita para SUSE® Virtual Clusters v1.2.0 (Dev).

Referencia de la API

Problemas relacionados

k3k.io/v1beta1

Complemento

El complemento especifica un Secreto que contiene YAML para desplegar al iniciar el clúster.

Aparece en:

Campo Descripción Default Validación

secretNamespace cadena

SecretNamespace es el espacio de nombres del Secreto.

secretRef cadena

SecretRef es el nombre del Secreto.

Clúster

El clúster define un clúster virtual de Kubernetes gestionado por k3k. Especifica el estado deseado de un clúster virtual, incluyendo la versión, la configuración de nodos y la red. k3k utiliza esto para aprovisionar y gestionar estos clústeres virtuales.

Aparece en:

Campo Descripción Default Validación

apiVersion cadena

k3k.io/v1beta1

kind cadena

Cluster

metadata ObjectMeta

Consulta la documentación de la API de Kubernetes para los campos de metadata.

Spec define el estado deseado del Clúster.

{ }

Lista de Clústeres

ClusterList es una lista de recursos de Clúster.

Campo Descripción Default Validación

apiVersion cadena

k3k.io/v1beta1

kind cadena

ClusterList

metadata ListMeta

Consulta la documentación de la API de Kubernetes para los campos de metadata.

items Cluster array

ClusterMode

Tipo subyacente: cadena

ClusterMode es el modo de aprovisionamiento posible de un clúster.

Validación: - Enum: [shared virtual]

Aparece en:

ClusterPhase

Tipo subyacente: cadena

ClusterPhase es un resumen de alto nivel del estado actual del ciclo de vida del clúster.

Aparece en:

ClusterSpec

ClusterSpec define el estado deseado de un clúster virtual de Kubernetes.

Aparece en:

Campo Descripción Default Validación

version cadena

La versión es la versión de K3s que se utilizará para los nodos virtuales.
Debería seguir la convención de versionado de K3s (por ejemplo, v1.28.2-k3s1).
Si no se especifica, se utilizará la versión de Kubernetes del nodo host.

El modo especifica el modo de aprovisionamiento del clúster: "compartido" o "virtual".
Predeterminado a "compartido". Este campo es inmutable.

shared

Enum: [shared virtual]

servers entero

Servers especifica el número de pods de K3s que se ejecutarán en modo servidor (plano de control).
Debe ser al menos 1. El valor predeterminado es 1.

1

agents entero

Los agentes especifican el número de pods de K3s que se ejecutarán en modo agente (trabajador).
Debe ser 0 o mayor. El valor predeterminado es 0.
Este campo se ignora en modo "compartido".

0

clusterCIDR cadena

ClusterCIDR es el rango CIDR para las IPs de los pods.
El valor predeterminado es 10.42.0.0/16 en modo compartido y 10.52.0.0/16 en modo virtual.
Este campo es inmutable.

serviceCIDR cadena

ServiceCIDR es el rango CIDR para las IPs de los servicios.
El valor predeterminado es 10.43.0.0/16 en modo compartido y 10.53.0.0/16 en modo virtual.
Este campo es inmutable.

clusterDNS cadena

ClusterDNS es la dirección IP para el servicio CoreDNS.
Debe estar dentro del rango ServiceCIDR. El valor predeterminado es 10.43.0.10.
Este campo es inmutable.

persistence PersistenceConfig

Persistence especifica opciones para persistir los datos de etcd.
El valor predeterminado es persistencia dinámica, que utiliza un PersistentVolumeClaim para proporcionar persistencia de datos.
Se requiere una StorageClass predeterminada para la persistencia dinámica.

expose ExposeConfig

Expose especifica opciones para exponer el servidor API.
Por defecto, solo se expone como un ClusterIP.

nodeSelector object (keys:string, values:string)

NodeSelector especifica etiquetas de nodo para restringir dónde se programan los pods del servidor/agente.
En modo "compartido", esto también se aplica a las cargas de trabajo.

priorityClass cadena

PriorityClass especifica el priorityClassName para los pods del servidor/agente.
En modo "compartido", esto también se aplica a las cargas de trabajo.

tokenSecretRef SecretReference

TokenSecretRef es una referencia de secreto que contiene el token utilizado por los nodos trabajadores para unirse al clúster.
El secreto debe tener un campo "token" en sus datos.

tlsSANs matriz de cadenas

TLSSANs especifica nombres alternativos de sujeto para el certificado del servidor K3s.

serverArgs matriz de cadenas

ServerArgs especifica pares clave-valor ordenados para los pods del servidor K3s.
Ejemplo: ["--tls-san=example.com"]

agentArgs matriz de cadenas

AgentArgs especifica pares clave-valor ordenados para los pods del agente K3s.
Ejemplo: ["--node-name=my-agent-node"]

serverEnvs EnvVar array

ServerEnvs especifica una lista de variables de entorno para establecer en el pod del servidor.

agentEnvs EnvVar array

AgentEnvs especifica una lista de variables de entorno para establecer en el pod del agente.

addons Addon array

Addons especifica secretos que contienen YAML en bruto para desplegar al iniciar el clúster.

serverLimit ResourceList

ServerLimit especifica límites de recursos para los nodos del servidor.

workerLimit ResourceList

WorkerLimit especifica límites de recursos para los nodos del agente.

mirrorHostNodes boolean

MirrorHostNodes controla si los objetos de nodo del clúster anfitrión
se reflejan en el clúster virtual.

customCAs CustomCAs

CustomCAs especifica los pares de cert/key para certificados CA personalizados.

sync SyncConfig

Sync especifica los tipos de recursos que se sincronizarán del clúster virtual al clúster anfitrión.

{ }

secretMounts SecretMount array

SecretMounts especifica una lista de secretos que se montarán en los pods del servidor y del agente.
Cada entrada define un secreto y su ruta de montaje dentro de los pods.

ConfigMapSyncConfig

ConfigMapSyncConfig especifica las opciones de sincronización para los servicios.

Aparece en:

Campo Descripción Default Validación

enabled boolean

Enabled es un interruptor de encendido/apagado para sincronizar recursos.

true

selector object (keys:string, values:string)

Selector especifica un conjunto de etiquetas de los recursos que se sincronizarán, si está vacío
entonces todos los recursos del tipo dado se sincronizarán.

CredentialSource

CredentialSource define de dónde obtener una credencial. Puede representar ya sea un par de claves TLS o una única clave privada.

Aparece en:

Campo Descripción Default Validación

secretName cadena

El secreto debe contener claves específicas según el tipo de credencial:
- Para pares de certificados TLS (por ejemplo, ServerCA): tls.crt y tls.key.
- Para la clave de firma del ServiceAccountToken: tls.key.

CredentialSources

CredentialSources lista todas las credenciales requeridas, incluyendo tanto pares de claves TLS como claves de firma individuales.

Aparece en:

Campo Descripción Default Validación

serverCA CredentialSource

ServerCA especifica el par de certificados y claves de server-ca.

clientCA CredentialSource

ClientCA especifica el par de certificados/claves client-ca.

requestHeaderCA CredentialSource

RequestHeaderCA especifica el par de certificados/claves request-header-ca.

etcdServerCA CredentialSource

ETCDServerCA especifica el par de certificados/claves etcd-server-ca.

etcdPeerCA CredentialSource

ETCDPeerCA especifica el par de certificados/claves etcd-peer-ca.

serviceAccountToken CredentialSource

ServiceAccountToken especifica la clave del service-account-token.

CustomCAs

CustomCAs especifica los pares de certificados/claves para certificados CA personalizados.

Aparece en:

Campo Descripción Default Validación

enabled boolean

Enabled activa o desactiva esta función.

true

Sources define las fuentes para todos los certificados CA personalizados requeridos.

ExposeConfig

ExposeConfig especifica las opciones para exponer el servidor API.

Aparece en:

Campo Descripción Default Validación

ingress IngressConfig

Ingress especifica las opciones para exponer el servidor API a través de un Ingress.

loadBalancer LoadBalancerConfig

LoadBalancer especifica las opciones para exponer el servidor API a través de un servicio LoadBalancer.

nodePort NodePortConfig

NodePort especifica las opciones para exponer el servidor API a través de NodePort.

IngressConfig

IngressConfig especifica las opciones para exponer el servidor API a través de un Ingress.

Aparece en:

Campo Descripción Default Validación

annotations objeto (claves:cadena, valores:cadena)

Annotations especifica las anotaciones que se añadirán al Ingress.

ingressClassName cadena

IngressClassName especifica la IngressClass que se debe utilizar para el Ingress.

IngressSyncConfig

IngressSyncConfig especifica las opciones de sincronización para los servicios.

Aparece en:

Campo Descripción Default Validación

enabled boolean

Enabled es un interruptor de encendido/apagado para sincronizar recursos.

false

selector objeto (claves:cadena, valores:cadena)

Selector especifica un conjunto de etiquetas de los recursos que se sincronizarán, si está vacío
entonces todos los recursos del tipo dado se sincronizarán.

LoadBalancerConfig

LoadBalancerConfig especifica las opciones para exponer el servidor API a través de un servicio LoadBalancer.

Aparece en:

Campo Descripción Default Validación

serverPort entero

ServerPort es el puerto en el que se expone el servidor K3s cuando el tipo es LoadBalancer.
Si no se especifica, se asignará el puerto https 443 por defecto.
Si es 0 o negativo, el puerto no será expuesto.

etcdPort entero

ETCDPort es el puerto en el que se expone el servicio ETCD cuando el tipo es LoadBalancer.
Si no se especifica, se asignará el puerto etcd 2379 por defecto.
Si es 0 o negativo, el puerto no será expuesto.

NodePortConfig

NodePortConfig especifica las opciones para exponer el servidor API a través de NodePort.

Aparece en:

Campo Descripción Default Validación

serverPort entero

ServerPort es el puerto en cada nodo en el que se expone el servidor K3s cuando el tipo es NodePort.
Si no se especifica, se asignará un puerto aleatorio entre 30000-32767.
Si está fuera de rango, el puerto no será expuesto.

etcdPort entero

ETCDPort es el puerto en cada nodo en el que se expone el servicio ETCD cuando el tipo es NodePort.
Si no se especifica, se asignará un puerto aleatorio entre 30000-32767.
Si está fuera de rango, el puerto no será expuesto.

PersistenceConfig

PersistenceConfig especifica las opciones para persistir los datos de etcd.

Aparece en:

Campo Descripción Default Validación

Type especifica el modo de persistencia.

dinámico

storageClassName cadena

StorageClassName es el nombre de la StorageClass que se utilizará para el PVC.
Este campo solo es relevante en modo "dinámico".

storageRequestSize Quantity

StorageRequestSize es el tamaño solicitado para el PVC.
Este campo solo es relevante en modo "dinámico".

2 G

PersistenceMode

Tipo subyacente: cadena

PersistenceMode es el modo de almacenamiento de un clúster.

Aparece en:

PersistentVolumeClaimSyncConfig

PersistentVolumeClaimSyncConfig especifica las opciones de sincronización para los servicios.

Aparece en:

Campo Descripción Default Validación

enabled boolean

Enabled es un interruptor de encendido/apagado para sincronizar recursos.

true

selector objeto (claves:cadena, valores:cadena)

Selector especifica un conjunto de etiquetas de los recursos que se sincronizarán, si está vacío
entonces todos los recursos del tipo dado se sincronizarán.

PodSecurityAdmissionLevel

Tipo subyacente: cadena

PodSecurityAdmissionLevel es el nivel de directiva aplicado a los pods en el espacio de nombres.

Validación: - Enum: [privilegiado base restringido]

Aparece en:

PriorityClassSyncConfig

PriorityClassSyncConfig especifica las opciones de sincronización para los servicios.

Aparece en:

Campo Descripción Default Validación

enabled boolean

Enabled es un interruptor de encendido/apagado para sincronizar recursos.

false

selector objeto (claves:cadena, valores:cadena)

Selector especifica un conjunto de etiquetas de los recursos que se sincronizarán, si está vacío
entonces todos los recursos del tipo dado se sincronizarán.

SecretMount

SecretMount define un secreto que se montará en los pods del servidor o del agente, permitiendo configuraciones personalizadas, certificados u otros datos sensibles.

Aparece en:

Campo Descripción Default Validación

secretName cadena

secretName es el nombre del secreto en el espacio de nombres del pod que se utilizará.
Más información: https://kubernetes.io/docs/concepts/storage/volumes#secret

items KeyToPath array

items Si no se especifica, cada par clave-valor en el campo Data del
Secret se proyectará en el volumen como un archivo cuyo nombre es el
clave y el contenido es el valor. Si se especifica, las claves enumeradas serán
proyectado en las rutas especificadas, y las claves no listadas no estarán
presente. Si se especifica una clave que no está presente en el Secret,
la configuración del volumen dará error a menos que esté marcada como opcional. Las rutas deben ser
relativas y no pueden contener la ruta '..' ni comenzar con '..'.

defaultMode entero

defaultMode es Opcional: bits de modo utilizados para establecer permisos en los archivos creados por defecto.
Debe ser un valor octal entre 0000 y 0777 o un valor decimal entre 0 y 511.
YAML acepta tanto valores octales como decimales, JSON requiere valores decimales
para los bits de modo. Predeterminado a 0644.
Los directorios dentro de la ruta no se ven afectados por esta configuración.
Esto podría estar en conflicto con otras opciones que afectan el archivo
modo, como fsGroup, y el resultado puede ser otros bits de modo establecidos.

optional boolean

el campo opcional especifica si el Secret o sus claves deben estar definidos

mountPath cadena

MountPath es la vía dentro de los pods del servidor y del agente donde se
montarán los contenidos del secreto.

subPath cadena

SubPath es una vía opcional dentro del secreto para montar en lugar de la raíz.
Cuando se especifica, solo la clave especificada del secreto se montará como un archivo
en MountPath, manteniendo el directorio padre escribible.

role cadena

El rol es el tipo de pod k3k que se utilizará para montar el secreto.
Esto puede ser 'servidor', 'agente' o 'todos' (para ambos).

Enum: [server agent all]

SecretSyncConfig

SecretSyncConfig especifica las opciones de sincronización para los servicios.

Aparece en:

Campo Descripción Default Validación

enabled boolean

Enabled es un interruptor de encendido/apagado para sincronizar recursos.

true

selector object (keys:string, values:string)

Selector especifica un conjunto de etiquetas de los recursos que se sincronizarán, si está vacío
entonces todos los recursos del tipo dado se sincronizarán.

ServiceSyncConfig

ServiceSyncConfig especifica las opciones de sincronización para los servicios.

Aparece en:

Campo Descripción Default Validación

enabled boolean

Enabled es un interruptor de encendido/apagado para sincronizar recursos.

true

selector object (keys:string, values:string)

Selector especifica un conjunto de etiquetas de los recursos que se sincronizarán, si está vacío
entonces todos los recursos del tipo dado se sincronizarán.

SyncConfig

SyncConfig contendrá los recursos que deben ser sincronizados del clúster virtual al clúster anfitrión.

Aparece en:

Campo Descripción Default Validación

Configuración de sincronización de recursos de servicios.

{ enabled:true }

configMaps ConfigMapSyncConfig

Configuración de sincronización de recursos de ConfigMaps.

{ enabled:true }

Configuración de sincronización de recursos de secretos.

{ enabled:true }

ingresses IngressSyncConfig

Configuración de sincronización de recursos de Ingresses.

{ enabled:false }

persistentVolumeClaims PersistentVolumeClaimSyncConfig

Configuración de sincronización de recursos de PersistentVolumeClaims.

{ enabled:true }

priorityClasses PriorityClassSyncConfig

Configuración de sincronización de recursos de PriorityClasses.

{ enabled:false }

VirtualClusterPolicy

VirtualClusterPolicy permite definir configuraciones y restricciones comunes para clústeres dentro de una política de clúster.

Aparece en:

Campo Descripción Default Validación

apiVersion cadena

k3k.io/v1beta1

kind cadena

VirtualClusterPolicy

metadata ObjectMeta

Consulta la documentación de la API de Kubernetes para los campos de metadata.

Spec define el estado deseado de la VirtualClusterPolicy.

{ }

VirtualClusterPolicyList

VirtualClusterPolicyList es una lista de recursos de VirtualClusterPolicy.

Campo Descripción Default Validación

apiVersion cadena

k3k.io/v1beta1

kind cadena

VirtualClusterPolicyList

metadata ListMeta

Consulta la documentación de la API de Kubernetes para los campos de metadata.

items VirtualClusterPolicy array

VirtualClusterPolicySpec

VirtualClusterPolicySpec define el estado deseado de una VirtualClusterPolicy.

Aparece en:

Campo Descripción Default Validación

La cuota especifica los límites de recursos para los clústeres dentro de una política de clúster.

El límite especifica el LimitRange que se aplicará a todos los pods dentro de la VirtualClusterPolicy
para establecer valores predeterminados y restricciones (mín./máx.)

defaultNodeSelector object (keys:string, values:string)

DefaultNodeSelector especifica el selector de nodo que se aplica a todos los clústeres (servidor + agente) en el espacio de nombres de destino.

defaultPriorityClass cadena

DefaultPriorityClass especifica el priorityClassName aplicado a todos los pods de todos los clústeres en el espacio de nombres de destino.

allowedMode ClusterMode

AllowedMode especifica el modo de aprovisionamiento de clúster permitido. Por defecto es “compartido”

shared

Enum: [compartido virtual]

disableNetworkPolicy boolean

DisableNetworkPolicy indica si se debe desactivar la creación de una directiva de red predeterminada para el aislamiento del clúster.

podSecurityAdmissionLevel PodSecurityAdmissionLevel

PodSecurityAdmissionLevel especifica el nivel de admisión de seguridad de pods aplicado a los pods en el espacio de nombres.

Enum: [privileged baseline restricted]

sync SyncConfig

Sync especifica los tipos de recursos que se sincronizarán del clúster virtual al clúster anfitrión.

{ }