Contribuire
I contributi a terraform-arubacloud-examples sono benvenuti. Questo documento spiega come aggiungere un nuovo esempio, correggerne uno esistente o migliorare la documentazione.
Prima di iniziare
- Apri una issue per discutere l'esempio che vuoi aggiungere (a meno che non sia già nella roadmap).
- Verifica che l'applicazione non sia già in lavorazione da parte di qualcun altro.
Aggiungere un nuovo esempio
1. Crea la directory
mkdir myapp
2. Crea i file richiesti
Ogni esempio deve contenere esattamente questi file:
myapp/
├── README.md
├── main.tf
├── variables.tf
├── outputs.tf
├── versions.tf
├── cloud-init.yaml.tpl
├── terraform.tfvars.example
├── .gitignore
└── LICENSE
Copia wordpress/ come template e adattalo.
3. Usa il modulo di rete condiviso
module "network" {
source = "../modules/network"
# ...
}
Non duplicare il codice VPC / subnet / security group / Elastic IP inline.
4. Scrivi un README completo
Segui il README di WordPress come template. Ogni README deve includere:
- Diagramma Mermaid dell'architettura
- Infrastruttura creata (elenco puntato)
- Raccomandazione sulla dimensione della VM
- Costo mensile stimato
- Tutte le variabili (obbligatorie e opzionali)
- Istruzioni per il deployment e la distruzione
- Raccomandazioni sulla sicurezza
- Sezione di risoluzione dei problemi
5. Aggiungi una pagina di documentazione
Crea docs/examples/myapp.md:
---
title: My App
---
{%
include-markdown "../../myapp/README.md"
%}
Aggiungila alla categoria appropriata in docs/website/sidebars.js.
6. Aggiungi alla matrice CI
Aggiungi l'esempio alla lista matrix.example in .github/workflows/terraform.yml.
Stile del codice
- Esegui
terraform fmt -recursiveprima di fare il commit. - Mantieni i nomi delle risorse brevi (prefisso ≤ 15 caratteri) per evitare errori di lunghezza nome ArubaCloud.
- Marca tutti i segreti come
sensitive = true. - Aggiungi blocchi
validation {}per le variabili che hanno vincoli significativi. - Non hardcodare location, zone o nomi di flavor — usa sempre variabili con valori predefiniti documentati.
Checklist pull request
-
terraform fmt -check -recursivepassa -
terraform validatepassa per il nuovo esempio - Il README segue la struttura del template
-
docs/examples/myapp.mdcreato e aggiunto adocs/website/sidebars.js - Esempio aggiunto alla matrice CI
-
terraform.tfvars.examplecontiene tutte le variabili richieste con valori segnaposto
Eseguire la documentazione localmente
cd docs/website
npm install
npm run start
# Apri http://localhost:3000