keenauth config promote ile yapılandırmayı taşıma
keenauth config promote, bir ortamın yapılandırmasını başka bir ortama kopyalar; örneğin staging ortamından production ortamına. Belgeyi bir dosyaya yazmadan, config export, config plan ve config apply ile elle çalıştıracağınız adımların aynısını çalıştırır:
--fromortamının yapılandırma belgesini dışa aktarır.- Bu belge için
--toortamında bir plan oluşturur. - Farkı yazdırır:
+oluşturma,~güncelleme,-silme; değişmeyen kaynaklar yalnızca sayılır. - Onaylamanızdan sonra planı uygular.
İki ortam farklı bölgelerde olabilir. Bölgeler birbirini asla çağırmaz: belge yalnızca bellekte, makinenizden geçer.
Başlamadan önce
Komut, her iki ortama erişmesi gerektiğinden kontrol paneli oturum açmanızı kullanır. keenauth login ile giriş yapın (keenauth login ile giriş yapma bölümüne bakın); her iki ortamda, kaynağın yapılandırmasını okumaya ve hedefin yapılandırmasını yazmaya izin veren bir kontrol paneli rolüne sahip olmanız gerekir. Bir API anahtarı tek bir ortama aittir; bu nedenle KEENAUTH_API_KEY ayarlıyken komut çalışmayı reddeder ve 2 çıkış koduyla sonlanır.
Kullanım
keenauth config promote --from env_01j9z3k4m5n6p7q8r9s0t1stg0 --to env_01j9z3k4m5n6p7q8r9s0t1prd0
| Bayrak | Açıklama |
|---|---|
--from |
Kaynak ortamın kimliği (env_…); yapılandırması dışa aktarılır (zorunlu). |
--to |
Hedef ortamın kimliği (env_…); plan burada oluşturulur ve uygulanır (zorunlu). |
--kinds |
Taşınacak türler, virgülle ayrılmış veya tekrarlanmış, config export için olduğu gibi. Varsayılan: tüm türler. |
--prune |
Taşınan türlerin yalnızca hedefte bulunan kaynaklarını da siler. Bu bayrak olmadan bunlar korunur. |
--secrets-from-env |
Planın ihtiyaç duyduğu istemci gizli anahtarlarını yerel ortam değişkenlerinden okur (aşağıya bakın). |
--confirm-deletion |
Korumalı bir silmeyi <kind>/<key> olarak onaylar; config apply için olduğu gibi. |
--sp-host |
Hedef ortamın hizmet sağlayıcı ana makinesi, örneğin login.example.com. Yalnızca plan hedefte bir kurumsal bağlantının OIDC materyalini oluşturuyorsa gerekir (aşağıya bakın); aksi halde bırakın. |
--yes, -y |
Sormadan uygular. Standart girdi bir terminal değilse gereklidir. |
--output, -o |
table, json veya yaml. Bayrak yoksa CLI bir terminalde tablo, aksi halde JSON yazdırır. |
Bir terminalde (table), fark standart çıktıya, soru standart hataya yazdırılır; uygulamadan sonra plan kimliği, durumu ve değişiklik sayısını içeren tek bir satır yazdırılır. json veya yaml ile fark standart hataya gider ve standart çıktı yalnızca uygulanan planı içerir; böylece bir betik onu okuyabilir. Hedef zaten kaynakla eşleşiyorsa komut nothing to promote yazdırır ve hiçbir şey uygulamaz.
Standart girdi bir terminal değilse ve --yes eksikse, komut herhangi bir istek göndermeden önce 2 çıkış koduyla sonlanır.
Gizli anahtarlar asla taşınmaz
Dışa aktarılan belge asla gizli bir değer tutmaz: bir bağlantının istemci gizli anahtarı secret_ref yer tutucusu olarak görünür (örneğin KEENAUTH_CONNECTION_GOOGLE_CLIENT_SECRET). Hedefte gizli anahtar gerektiren bir değişiklik [needs a client secret] ile gösterilir.
Böyle bir plan, gizli anahtarı siz kendiniz vermedikçe uygulanmaz: hatanın adını verdiği ortam değişkenini ayarlayın ve komutu --secrets-from-env ile yeniden çalıştırın. Değer yerel ortamınızdan okunur ve yalnızca uygulama isteğinin gövdesinde gönderilir. Asla yazdırılmaz, asla bir dosyaya yazılmaz ve asla kaynak ortamdan okunmaz.
export KEENAUTH_CONNECTION_GOOGLE_CLIENT_SECRET=... # the production client secret
keenauth config promote --from env_01j9z3k4m5n6p7q8r9s0t1stg0 --to env_01j9z3k4m5n6p7q8r9s0t1prd0 --secrets-from-env
Kurumsal OIDC ve sosyal bağlantılar
Bir kurumsal bağlantının OIDC ayarları (spec.oidc: veren, istemci kimliği, istemci kimlik doğrulama yöntemi ve sağlayıcı profili) bağlantıyla birlikte taşınır. Hedefte bu ayarlar henüz yoksa, uygulama bunları oluşturur ve geri çağırma URL'sini hedefin ana makinesinden sabitler; bu nedenle kullanıcılarınızın hedef ortamda giriş yaptığı ana makineyle birlikte --sp-host değerini verin. Ana makine belgenin parçası değildir, çünkü ortamlar arasında farklılık gösterir.
Bir sosyal bağlantının istemci gizli anahtarı henüz bir plandan uygulanamaz: plan bir tane gerektirdiğinde, --secrets-from-env ile bile uygulama 501 not_implemented hatasıyla reddedilir ve hiçbir şey değiştirilmez. Diğer türleri --kinds ile taşıyın veya destek verilene kadar sosyal bağlantıyı kaynaktan çıkarın.
Hatalar
Plan bir saat geçerlidir. Plan ile uygulama arasında hedefteki bir kaynak değişirse, uygulama 409 config_conflict ile reddedilir ve hiçbir şey değiştirilmez; komutu yeniden çalıştırın. Diğer uygulama hataları config apply için olanlarla aynıdır.
Çıkış kodları
| Kod | Anlam |
|---|---|
0 |
Plan uygulandı ya da taşınacak bir şey yoktu. |
1 |
Sunucu hatası ya da onayı reddettiniz (aborted). |
2 |
Kullanım hatası: geçersiz veya aynı ortam kimliği, etkileşimli olmayan bir terminalde --yes eksik, KEENAUTH_API_KEY ayarlı ya da plan için gereken bir gizli anahtar eksik. Hiçbir şey uygulanmadı. |
3 |
Oturum açmadınız ya da sunucu 401 veya 403 yanıtı verdi. |
4 |
Plan bu özelliği içermiyor (403 ile plan_feature_unavailable). |