[英]Strange Error while creating ImagePullSecret with kubectl in gitlab ci job
我正在嘗試將私有 gitlab 注冊表中的映像部署到由 gitlab 連接和管理的自托管 kubernets 集群。 據我了解,我需要在我的部署配置中創建和引用一個 ImagePullSecret 才能使其工作。 Gitlab 正在為每個項目創建一個命名空間,所以我試圖在我的 CI 作業開始時創建一個秘密。 奇怪的是,盡管存在所有必需的參數,但我總是收到錯誤,即缺少參數。 我究竟做錯了什么?
這是我的 gitlab-ci.yml 中的 CI-Job
deploy-app:
stage: deploy
image:
name: bitnami/kubectl:latest
entrypoint: [""]
script:
- kubectl create secret docker-registry gitlab-registry --docker-username=$CI_DEPLOY_USER --docker-password=$CI_DEPLOY_PASSWORD --docker-server=$CI_REGISTRY --dry-run=client -o yaml | kubectl apply -f -
- kubectl apply -f k8s/configmap.yaml
- kubectl apply -f k8s/deployment.yaml
- kubectl apply -f k8s/service.yaml
- kubectl apply -f k8s/ingress.yaml
environment:
name: production
url: <my-url>
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
CI-Job 總是遇到以下錯誤:
error: either --from-file or the combination of --docker-username, --docker-password and --docker-server is required
我試圖直接在服務器上運行命令而沒有錯誤,所以這與這個特定環境有關。 有人對另一種方法有想法嗎? 我現在有點失落。
正在創建的 kubectl secret 可能不在 corret 命名空間中。 由於您提到不同項目有命名空間,因此請確保在正確的命名空間中創建機密。 對於其他命令,您也可以提及命名空間。 如果未提及命名空間,則這些 kubectl 命令將在“默認”命名空間中執行。
deploy-app:
stage: deploy
image:
name: bitnami/kubectl:latest
entrypoint: [""]
script:
- kubectl create secret --namespace $namespace docker-registry gitlab-registry --docker-username=$CI_DEPLOY_USER --docker-password=$CI_DEPLOY_PASSWORD --docker-server=$CI_REGISTRY --dry-run=client -o yaml | kubectl apply -f -
- kubectl apply -f k8s/configmap.yaml --namespace $namespace
- kubectl apply -f k8s/deployment.yaml --namespace $namespace
- kubectl apply -f k8s/service.yaml --namespace $namespace
- kubectl apply -f k8s/ingress.yaml --namespace $namespace
environment:
name: production
url: <my-url>
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.