MinIO: 2. Gyvavimo ciklo scenarijus
Ši dokumentacija yra GitHub Actions ir GitLab CI vadovo dalis. Visą vadovą rasite čia: Paleiskite tikrą MinIO paslaugą iš savo GitHub Actions arba GitLab CI pipeline, vykdykite testus ir automatiškai viską uždarykite.
👋 Sveiki atvykę į Stackhero dokumentaciją!
Stackhero siūlo paruoštą naudoti MinIO Object Storage platformą, sukurtą patikimumui ir greičiui. Pagrindiniai privalumai:
- Neriboti duomenų perdavimai be paslėptų mokesčių.
- Paprasta, nuspėjama ir skaidri kainodara.
- Individualus domeno vardas, apsaugotas HTTPS (pavyzdžiui, https://object-storage.jusu-imone.com).
- Vieno paspaudimo, sklandūs atnaujinimai be rankinio įsikišimo.
- Aukšta sparta ir saugumas privačioje, dedikuotoje infrastruktūroje.
- Pasiekiama tiek 🇪🇺 Europoje, tiek 🇺🇸 JAV regionuose.
Supaprastinkite savo darbo eigą ir sutrumpinkite diegimo laiką: Stackhero MinIO Object Storage hostingą galite įdiegti vos per 5 minutes.
Žemiau pateiktas pilnas scenarijus, kuris valdo visą paslaugos gyvavimo ciklą. Matysite, kad reikia tik kelių komandų – galite kopijuoti paruoštą YAML savo platformai iš žemiau esančių skyrių.
#!/bin/bash
set -euo pipefail
# STACKHERO_TOKEN pateikiamas per CI slaptą kintamąjį, CLI jį automatiškai aptinka.
stackName="ci-minio-$$" # Unikalus stack pavadinimas kiekvienam paleidimui
serviceStore="minio" # MinIO paslaugos store
instance="100G" # Pakeiskite jei reikia (žr. 3 žingsnį)
region="europe" # Regiono pavadinimas (žr. stackhero regions-list)
# 1. Įdiekite CLI runner'yje
curl -fsSL https://www.stackhero.io/install.sh | sh
# 2. Įdiekite klientą, reikalingą smoke testui (jq + curl yra baziniai)
apt-get update && apt-get install -y --no-install-recommends jq curl awscli
# 3. Sukurkite dedikuotą stack šiam paleidimui
stackId=$(stackhero --format=script stack-create --name="$stackName")
echo "Stack sukurtas: $stackId"
# 4. Pridėkite MinIO ir gaukite jo service id
serviceId=$(stackhero --format=script service-add \
--stack="$stackId" \
--service-store="$serviceStore" \
--instance="$instance" \
--region="$region")
echo "Paslauga pridėta: $serviceId"
# 5. Palaukite, kol paslauga bus paleista (gali užtrukti kelias minutes)
stackhero service-wait-for --service="$serviceId"
# 6. Perskaitykite konfigūraciją (joje yra sugeneruoti prisijungimo duomenys)
config=$(stackhero service-configuration-get --service="$serviceId" --format=json)
# 7. Ištraukite reikiamus prisijungimo duomenis
host=$(echo "$config" | jq -r '.configuration.domain')
accessKey=$(echo "$config" | jq -r '.configuration.credentials.rootUser')
secretKey=$(echo "$config" | jq -r '.configuration.credentials.rootPassword')
# 8. Smoke testas: List the buckets with the AWS CLI (S3-compatible).
AWS_ACCESS_KEY_ID="$accessKey" AWS_SECRET_ACCESS_KEY="$secretKey" \
aws --endpoint-url "https://$host" s3 ls
echo "✅ MinIO pasiekiamas iš CI."
Teardown žingsnis, kuris ištrina paslaugą, laukia jos pašalinimo ir tada ištrina stack, aprašytas žemiau platformai skirtuose skyriuose. Tokiu būdu visada užtikrinamas išvalymas, net jei smoke testas nepavyksta.
Stack galima ištrinti tik tada, kai jis tuščias. Visada pirmiausia ištrinkite paslaugą ir palaukite jos pašalinimo, tada ištrinkite stack. Komanda
service-wait-foružtikrina, kad paslauga būtų arba paleista, arba jau ištrinta prieš tęsiant, todėl ji tinkama ir laukimui ištrinant.