Skip to main content
Version: 1.1.2

Project

PropertyValue
KindProject
API Group/Versionarubacloud.com/v1alpha1
CRD Nameprojects.arubacloud.com
ScopeNamespaced
Short Namesprj, aruprj

Description

A Project is the root resource in the Aruba Cloud Resource Operator hierarchy. It represents an Aruba Cloud account/tenant scope and acts as the parent for all other resource types. Every VPC, BlockStorage, KeyPair, ElasticIP, and CloudServer must reference a Project. Deleting a Project triggers cascade deletion of all resources that belong to it.

Spec Fields

FieldTypeRequiredDefaultValidationDescription
tenantstringNoImmutable after creationAruba Cloud tenant identifier (e.g., ARU-123456). Cannot be changed after the Project is created.
descriptionstringNoMax 1000 charactersHuman-readable description of the project
tags[]stringNoLabels propagated to the Aruba Cloud resource
note

Project is the only resource where spec.tenant is immutable. All other resources allow tenant to be changed (useful when correcting a misconfiguration on a Failed resource).

Status Fields

FieldTypeDescription
phasestringCurrent lifecycle phase: Pending, Creating, Active, Updating, Deleting, Deleted, or Failed
resourceIDstringAruba Cloud project ID, set after successful creation
messagestringHuman-readable description of the current state
observedGenerationint64Last .metadata.generation processed by the operator
phaseStartTimetimestampWhen the current phase began
conditions[]ConditionStandard Kubernetes conditions with reason codes

References

Owned by: nothing (Project is the root resource)

Parent of:

Lifecycle

  • Creation ordering: No dependencies. Create the Project first.
  • Deletion behaviour: The operator blocks deletion (via finalizer) while any child resource (VPC, BlockStorage, KeyPair, ElasticIP, CloudServer) still exists. Delete those children first, or simply delete the Project and the operator will cascade-delete them automatically.
  • Update behaviour: description and tags can be updated freely. tenant is immutable — it cannot be changed after the Project reaches Active phase.
  • Immutable fields: spec.tenant (enforced by a CEL validation rule on the CRD)

Example

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

kubectl Quick Reference

# List all projects
kubectl get prj -n default

# Describe a project and view its current phase
kubectl describe prj my-project -n default

# Watch phase changes
kubectl get prj my-project -n default -w