我正在撰寫一個實用程式腳本來檢索和決議一些 kubernetes 配置映射,通常我將使用 oidc 令牌進行身份驗證。
如果我未通過身份驗證,如何讓我的kubectl命令失敗退出而不是提示輸入用戶名和密碼?
這是我當前的實作:
#!/bin/bash
# Prompts me with "Please enter Username:", and I'd like to exit instead.
kubectl get cm -n my-namespace
提前致謝。
uj5u.com熱心網友回復:
您可以</dev/null在命令中使用來關閉命令的 std 輸入。檢查下面的示例,kubectl如果一切正常(未提示),將正常列印結果,否則將列印錯誤文本。
使用已知良好的kubeconfig檔案:
kubectl get pod --kubeconfig good_kube_config </dev/null
No resources found in default namespace.
使用kubeconfig配置錯誤的用戶名:
kubectl get pod --kubeconfig bad_kube_config </dev/null
Please enter Username: error: EOF
您可以在腳本中使用類似下面的內容,請注意,無論它們與用戶/通過提示的關系如何,這都會在所有失敗上列印錯誤。
if ! kubectl get cm -n my-namespace </dev/null 2>/dev/null;then
echo "Error: Somthing is wrong!"
exit 1;
fi
如果您想非常具體地了解用戶/密碼錯誤,那么建議您使用 kubectl get 命令通過 greping“用戶名”字串來運行測驗,然后繼續。
注意:為了模擬相同的提示,我在我的 kubeconfig 檔案中重命名了用戶名。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/445051.html
標籤:Kubernetes
