Passa al contenuto principale
Versione: 1.1.0

CloudServer

ProprietàValore
KindCloudServer
API Group/Versionarubacloud.com/v1alpha1
Nome CRDcloudservers.arubacloud.com
ScopeNamespaced
Nomi brevics, arucs

Descrizione

Un CloudServer è un'istanza di macchina virtuale su Aruba Cloud. È la risorsa con più riferimenti: un CloudServer collega un Project, un VPC, una o più Subnet, uno o più SecurityGroup, un KeyPair per l'accesso SSH, un volume BlockStorage avviabile per il sistema operativo, volumi dati opzionali e un ElasticIP opzionale per un indirizzo pubblico statico. Tutte le risorse referenziate devono essere Active prima che il CloudServer possa essere provisionato.

Campi Spec

CampoTipoObbligatorioPredefinitoValidazioneDescrizione
tenantstringNoIdentificatore del tenant Aruba Cloud. Deve corrispondere al tenant di tutte le risorse referenziate.
regionstringITBG-BergamoRegione Aruba Cloud. Deve corrispondere alla region di tutte le risorse referenziate.
zonestringITBG-1Zona di disponibilità. Deve corrispondere alla zona del volume di avvio.
flavorNamestringIdentificatore del flavor/dimensione dell'istanza Aruba Cloud (es. CSO4A8 per 4 vCPU / 8 GB RAM)
vpcReferenceResourceReferenceRiferimento al VPC per la connettività di rete
subnetReferences[]ResourceReferenceMin elementi: 1Una o più Subnet a cui collegare il server
securityGroupReferences[]ResourceReferenceMin elementi: 1Uno o più SecurityGroup che governano il traffico del server
keyPairReferenceResourceReferenceRiferimento al KeyPair per l'accesso SSH
bootVolumeReferenceResourceReferenceRiferimento a un volume BlockStorage avviabile (deve avere bootable: true)
dataVolumeReferences[]ResourceReferenceNoVolumi dati BlockStorage aggiuntivi opzionali da collegare
elasticIPReferenceResourceReferenceNoElasticIP opzionale da assegnare come indirizzo pubblico statico
projectReferenceResourceReferenceRiferimento al Project proprietario
tags[]stringNoEtichette propagate alla risorsa Aruba Cloud

Campi Status

CampoTipoDescrizione
phasestringFase corrente del ciclo di vita
resourceIDstringID CloudServer Aruba Cloud, impostato dopo la creazione
messagestringMessaggio di stato leggibile
observedGenerationint64Ultimo .metadata.generation elaborato
phaseStartTimetimestampQuando è iniziata la fase corrente
conditions[]ConditionCondizioni Kubernetes standard
projectIDstringID del progetto Aruba Cloud risolto
vpcIDstringID del VPC Aruba Cloud risolto
bootVolumeIDstringID del volume di avvio Aruba Cloud risolto
elasticIPIDstringID ElasticIP Aruba Cloud risolto (se assegnato)
keyPairIDstringID KeyPair Aruba Cloud risolto
subnetIDs[]stringID subnet Aruba Cloud risolti
securityGroupIDs[]stringID security group Aruba Cloud risolti
dataVolumeIDs[]stringID volumi dati Aruba Cloud risolti
volumeIDs[]stringTutti gli ID volume collegati al server (avvio + dati)

Riferimenti

Di proprietà di: Project

Usa (non di proprietà di):

  • VPC — ambiente di rete
  • Subnet — collegamento di rete (uno o più)
  • SecurityGroup — policy firewall (uno o più)
  • KeyPair — accesso SSH
  • BlockStorage — disco di avvio (obbligatorio) e dischi dati (opzionali)
  • ElasticIP — IP pubblico statico (opzionale)

Ciclo di vita

  • Ordine di creazione: Il CloudServer è l'ultima risorsa da creare. Tutti i seguenti devono essere Active prima: Project, VPC, tutte le Subnet referenziate, tutti i SecurityGroup referenziati, il KeyPair e il BlockStorage di avvio. Anche l'ElasticIP deve essere Active se referenziato.
  • Validazione incrociata: L'operatore verifica che tutte le risorse referenziate condividano lo stesso tenant e region. Verifica anche che i projectReference e vpcReference di tutte le Subnet referenziate corrispondano ai propri riferimenti del CloudServer. I mismatch causano Failed+IntentionValidationFailed.
  • Coerenza della zona: La zone del CloudServer deve corrispondere alla zone del BlockStorage di avvio.
  • Comportamento all'eliminazione: I CloudServer non hanno figli. Quando elimini un CloudServer, l'operatore chiama l'API Aruba Cloud per spegnerlo ed eliminarlo, poi rimuove il finalizer. Le risorse referenziate (volumi, coppie di chiavi, ecc.) non vengono eliminate automaticamente.
  • Comportamento all'aggiornamento: tags può essere aggiornato. La modifica delle risorse referenziate (aggiunta/rimozione di subnet, cambio del flavor) innesca un ciclo di aggiornamento. Alcuni aggiornamenti potrebbero non essere supportati dall'API Aruba Cloud — in tal caso, la risorsa entra brevemente in Updating+Failed e lo spec viene ripristinato per corrispondere allo stato cloud.

Esempi

CloudServer completo con ElasticIP e volume dati

apiVersion: arubacloud.com/v1alpha1
kind: CloudServer
metadata:
name: web-server
namespace: default
spec:
tenant: ARU-123456
region: ITBG-Bergamo
zone: ITBG-1
flavorName: "CSO4A8"
projectReference:
name: my-project
namespace: default
vpcReference:
name: web-vpc
namespace: default
subnetReferences:
- name: web-subnet
namespace: default
securityGroupReferences:
- name: web-sg
namespace: default
keyPairReference:
name: my-ssh-key
namespace: default
bootVolumeReference:
name: web-server-boot
namespace: default
dataVolumeReferences:
- name: web-server-data
namespace: default
elasticIPReference:
name: web-server-ip
namespace: default
tags:
- production
- web

CloudServer minimale (senza ElasticIP, senza volumi dati)

apiVersion: arubacloud.com/v1alpha1
kind: CloudServer
metadata:
name: worker-node
namespace: default
spec:
tenant: ARU-123456
region: ITBG-Bergamo
zone: ITBG-1
flavorName: "CSO2A4"
projectReference:
name: my-project
namespace: default
vpcReference:
name: web-vpc
namespace: default
subnetReferences:
- name: web-subnet
namespace: default
securityGroupReferences:
- name: web-sg
namespace: default
keyPairReference:
name: my-ssh-key
namespace: default
bootVolumeReference:
name: worker-boot
namespace: default

Riferimento rapido kubectl

# Elenca tutti i cloud server
kubectl get cs -n default

# Descrivi un server e visualizza tutti gli ID risolti nello status
kubectl describe arucs web-server -n default

# Osserva l'avanzamento del provisioning
kubectl get cs web-server -n default -w