ποΈ Π‘Π΅ΠΊΡΠ΅ΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ β Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ tuna secrets
ΠΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΠΌΠ΅Π»ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ: ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ β Π·Π°Π²Π΅ΡΡΠΈ ΡΠ΅ΠΊΡΠ΅Ρ, ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ β ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π΄Π΅Π»Π°ΡΡ Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅.
Π tuna-cli 0.35 tuna secrets ΡΡΠ°Π» ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ: ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈ, ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, Π° Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ
ΠΈ CI.
Π Π°Π±ΠΎΡΠ° Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈβ
ΠΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ² ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ:
tuna secrets list # ΡΠΏΠΈΡΠΎΠΊ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΡΡΡΡ
tuna secrets get API_TOKEN DB_URL # Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ²
tuna secrets set API_ENABLED=true --type boolean
openssl rand -hex 32 | tuna secrets set API_TOKEN
tuna secrets delete OLD_KEY
tuna secrets upload .env # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°
set ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ, ΠΈΠ· stdin ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ β ΡΠ°ΠΊ Π² ΠΈΡΡΠΎΡΠΈΡ ΡΠ΅Π»Π»Π° Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π»ΠΈΡΠ½Π΅Π³ΠΎ. ΠΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠΈΠΏ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ Π² Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. upload Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈΠ· .env ΠΈΠ»ΠΈ .json, Π½Π΅ ΡΡΠΎΠ³Π°Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΡ.
Π‘ΡΠ°Π²Π½ΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π½Π΅ ΡΠ°ΡΠΊΡΡΠ²Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉβ
Π ΡΠ°Π±Π»ΠΈΡΠ°Ρ
Π²ΠΌΠ΅ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΠ΅ΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ Π΅Π³ΠΎ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ β hmac:cea41705. ΠΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ, Π° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΡΠΏΠ΅ΡΠ°ΡΠΊΠ° Π½Π΅Π»ΡΠ·Ρ.
Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡ Β«Π° Π² stage ΠΈ prod ΡΠΎΡΠ½ΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ ΠΊ Π±Π°Π·Π΅?Β», Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ°ΡΠΊΡΡΠ²Π°Ρ, ΠΈ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² Π»ΠΎΠ³ΠΈ CI:
ΠΠ°ΡΡΠΎΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ list --values ΠΈ get.
ΠΠΎΠ²ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ β ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°β
ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π² ΠΊΠΎΡΠ΅Π½Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΡΠ°ΠΉΠ» tuna.yaml:
setup:
- project: api-php
config: dev
Π’Π΅ΠΏΠ΅ΡΡ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ tuna secrets setup β ΠΈ tuna secrets run -- yarn start Π·Π°ΠΏΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈ. ΠΠ»Ρ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ, ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ.
Π‘Π΅ΠΊΡΠ΅ΡΡ ΡΠ°ΠΉΠ»ΠΎΠΌ, Π½ΠΎ Π±Π΅Π· ΡΠ°ΠΉΠ»Π° Π½Π° Π΄ΠΈΡΠΊΠ΅β
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΠ°ΠΉΠ»Π°. Π Π°Π½ΡΡΠ΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π²ΡΠ³ΡΡΠΆΠ°ΡΡ ΡΠ΅ΠΊΡΠ΅ΡΡ ΡΠ΅ΡΠ΅Π· download ΠΈ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΠ°ΠΉΠ» ΠΏΠΎΡΠΎΠΌ Π½Π°Π΄ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ. Π€Π»Π°Π³ --mount ΡΠ΅ΡΠ°Π΅Ρ ΡΡΠΎ ΠΈΠ½Π°ΡΠ΅: ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» (named pipe) ΠΈ ΠΎΡΠ΄Π°ΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅Π³ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΡ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ β env, json, yaml ΠΈΠ»ΠΈ ΠΏΠΎ Π²Π°ΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΆΠΈΠ²ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ°ΠΉΠ»Π° Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, Π° ΠΏΠΎΡΠ»Π΅ Π²ΡΡ
ΠΎΠ΄Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠ°Π½Π°Π» ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ.
tuna secrets run --mount ./secrets.json --mount-format json -- ./app --config ./secrets.json
Π‘ --mount-max-reads 1 ΠΊΠ°Π½Π°Π» ΠΈΡΡΠ΅Π·Π°Π΅Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΎ Π΅Π³ΠΎ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅.
Π Π°Π±ΠΎΡΠ° Π±Π΅Π· ΡΠ΅ΡΠΈβ
tuna secrets run ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΡ Π² Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ API Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½, β ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²ΡΡΠ°Π½Π΅Ρ ΠΈΠ·-Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠΈΠ», ΡΡΠΎ Π΄ΠΎΡΡΡΠΏ ΠΎΡΠΎΠ·Π²Π°Π½ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ, ΠΊΠΎΠΏΠΈΡ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ: ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠ·ΡΠ²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΎΠΏΠ°ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ --offline ΠΊΠ»ΠΈΠ΅Π½Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ API:
Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ²β
tuna secrets substitute ΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΡΠ°ΠΉΠ»-ΡΠ°Π±Π»ΠΎΠ½ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ². ΠΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ² ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ β nginx.conf, application.yml, .ini β ΠΈ Π΄Π»Ρ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΎΠ² Kubernetes:
tuna secrets substitute config.tmpl --output config.ini
tuna secrets substitute deployment.tmpl | kubectl apply -f -
ΠΠΏΠ΅ΡΠ°ΡΠΊΠ° Π² ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ° β ΠΎΡΠΈΠ±ΠΊΠ° Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΡΠ° Π² ΡΠ°Π±Π»ΠΎΠ½Π΅, Π° Π½Π΅ ΠΌΠΎΠ»ΡΠ°Π»ΠΈΠ²Π°Ρ ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅.
Π£Π΄ΠΎΠ±Π½ΠΎ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ ΠΈ CIβ
ΠΡΠ²ΠΎΠ΄ Π²ΡΠ΅Ρ
ΠΊΠΎΠΌΠ°Π½Π΄ tuna secrets ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°Π½ Ρ ΡΠ°ΡΡΡΡΠΎΠΌ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ:
- Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ΄ΡΡ Π² stdout, ΡΡΠ°ΡΡΡ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ β Π² stderr, ΡΠ°ΠΊ ΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π»ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π² ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠ°ΠΉΠΏ;
-o jsonΠΈ-o yamlΠ΅ΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°ΠΏΠΈΡΠΈ, Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠΆΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ JSON'ΠΎΠΌ;get --plainΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ Π³ΠΎΠ»ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ:docker login -p "$(tuna secrets get REGISTRY_PASSWORD --plain)";tuna secrets runΠ²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ Π²ΡΡ ΠΎΠ΄Π° Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΡΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²ΠΈΡΡ ΠΏΡΡΠΌΠΎ Π² CI-Π΄ΠΆΠΎΠ±Ρ.
ΠΠΎΡΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄Π»Ρ GitLab CI ΠΈ GitHub Actions Π΅ΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠΎΠΉβ
ΠΡΠΎΠ΅ΠΊΡΡ, ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ:
tuna secrets projects create "API PHP" --slug api-php
tuna secrets environments create Staging --slug stage --project api-php
tuna secrets configs clone stage --name stage-feature-x --project api-php
tuna secrets configs tokens create --description ci --access read --max-age 720h --project api-php --config stage
tuna secrets open ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ β ΠΊΠΎΠ³Π΄Π° Π²ΡΡ-ΡΠ°ΠΊΠΈ Π½ΡΠΆΠ΅Π½ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ.
Π§ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈβ
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ², ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ, ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΡΠ·ΡΠ² ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ
ΠΊΠ»ΡΡΠ΅ΠΉ Ρ tuna-cli 0.36 ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅. Π CI ΠΈ ΡΠΊΡΠΈΠΏΡΠ°Ρ
Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π°Π³
--yes, ΠΈΠ½Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. - ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·Π±ΠΈΡΠ°Π»ΠΈ Π²ΡΠ²ΠΎΠ΄
tuna secretsΠ² ΡΠΊΡΠΈΠΏΡΠ°Ρ , ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΈΡ : ΡΡΡΠΎΠΊΠΈ Π»ΠΎΠ³Π° Π²ΠΈΠ΄Π°INFO[...]Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ, Π° Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ Π΅ΡΡΡ-o json.
ΠΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠ»Π°Π³ΠΎΠ² β Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π Π°Π±ΠΎΡΠ° Π² CLI. ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
ΠΡΡΠ°Π²ΡΡΠ΅ ΠΎΡΠ·ΡΠ²β
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Tuna, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ Π²Ρ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Ρ ΡΠ΅ΠΌ Π»ΠΈΠ±ΠΎ, ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΎΡΠ·ΡΠ².
ΠΠΎΠΌΠΎΡΡβ
ΠΡ ΡΠ΅Π½ΠΈΠΌ Π½Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΡΡΠ°Π΅ΠΌ Π²ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ tuna β ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²ΡΠΆΠΈΡΠ΅ΡΡ Ρ Π½Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²: