Passa al contenuto principale
Versione: 1.1.1

Project

ProprietàValore
KindProject
API Group/Versionarubacloud.com/v1alpha1
Nome CRDprojects.arubacloud.com
ScopeNamespaced
Nomi breviprj, aruprj

Descrizione

Un Project è la risorsa radice nella gerarchia di Aruba Cloud Resource Operator. Rappresenta lo scope di un account/tenant Aruba Cloud e funge da genitore per tutti gli altri tipi di risorse. Ogni VPC, BlockStorage, KeyPair, ElasticIP e CloudServer deve fare riferimento a un Project. L'eliminazione di un Project attiva l'eliminazione a cascata di tutte le risorse che gli appartengono.

Campi Spec

CampoTipoObbligatorioPredefinitoValidazioneDescrizione
tenantstringNoImmutabile dopo la creazioneIdentificatore del tenant Aruba Cloud (es. ARU-123456). Non può essere modificato dopo la creazione del Project.
descriptionstringNoMax 1000 caratteriDescrizione leggibile del progetto
tags[]stringNoEtichette propagate alla risorsa Aruba Cloud
note

Project è l'unica risorsa in cui spec.tenant è immutabile. Tutte le altre risorse consentono di modificare tenant (utile per correggere una configurazione errata su una risorsa in stato Failed).

Campi Status

CampoTipoDescrizione
phasestringFase corrente del ciclo di vita: Pending, Creating, Active, Updating, Deleting, Deleted o Failed
resourceIDstringID del progetto Aruba Cloud, impostato dopo la creazione
messagestringDescrizione leggibile dello stato corrente
observedGenerationint64Ultimo .metadata.generation elaborato dall'operatore
phaseStartTimetimestampQuando è iniziata la fase corrente
conditions[]ConditionCondizioni Kubernetes standard con codici reason

Riferimenti

Di proprietà di: nessuno (Project è la risorsa radice)

Genitore di:

  • VPC — tramite spec.projectReference
  • BlockStorage — tramite spec.projectReference
  • KeyPair — tramite spec.projectReference
  • ElasticIP — tramite spec.projectReference
  • CloudServer — tramite spec.projectReference

Ciclo di vita

  • Ordine di creazione: Nessuna dipendenza. Creare il Project per primo.
  • Comportamento all'eliminazione: L'operatore blocca l'eliminazione (tramite finalizer) finché esiste qualsiasi risorsa figlia (VPC, BlockStorage, KeyPair, ElasticIP, CloudServer). Elimina prima quei figli, oppure elimina il Project e l'operatore li eliminerà a cascata automaticamente.
  • Comportamento all'aggiornamento: description e tags possono essere aggiornati liberamente. tenant è immutabile — non può essere modificato dopo che il Project ha raggiunto la fase Active.
  • Campi immutabili: spec.tenant (applicato da una regola di validazione CEL sulla CRD)

Esempio

apiVersion: arubacloud.com/v1alpha1
kind: Project
metadata:
name: my-project
namespace: default
spec:
tenant: ARU-123456
description: "Progetto infrastruttura di produzione"
tags:
- production
- platform

Riferimento rapido kubectl

# Elenca tutti i project
kubectl get prj -n default

# Descrivi un project e visualizza la fase corrente
kubectl describe prj my-project -n default

# Osserva i cambiamenti di fase
kubectl get prj my-project -n default -w