【问题标题】:How to download code from gitlab to kubernetes如何从 gitlab 下载代码到 kubernetes
【发布时间】:2019-12-08 19:43:43
【问题描述】:

我正在尝试将代码从 gitlab 下载到 kubernetes。我已经创建了一个 ubuntu docker 镜像。

这里是 yaml 文件。我从 gitlab 创建了一个令牌来下载代表。问题是我不知道在哪里复制 gitlab 令牌以允许 kubernetes 下载代码??

apiVersion: v1
kind: Pod
metadata:
  name: syncrepo-gitlab
spec:
  containers:
  - image: fake.eu.io/testseq-362663/ubuntu:latest
    name: gitlab
    volumeMounts:
    - name: git-source
      mountPath: /tmp/git
    env:
    - name: GIT_SYNC_REPO
      value: https://myrep/scripts.git
    - name: GIT_SYNC_DEST
      value: git-sync
    - name: GIT_SYNC_SSH
      value: "true"
  volumes:
  - name: git-source
    emptyDir: {}

【问题讨论】:

    标签: kubernetes gitlab


    【解决方案1】:

    选项1:直接作为环境变量传递:

    env:
        - name: GIT_DEPLOY_TOKEN_USERNAME
          value: <deploy_token_username>
        - name: GIT_DEPLOY_TOKEN_PASSWORD
          value: <deploy_token_password>
    

    不建议这样做,因为任何可以看到您的 Pod 清单的人都会看到您的 Gitlab 令牌。

    选项 2 为令牌创建 secret 并将其挂载到 pod。

    kubectl create secret generic gitlab-deploy-token -–from-literal=username=<deploy_token_username> -–from-literal=password=<deploy_token_password>
    

    这将在您的 k8s 命名空间中创建一个编码秘密。

    要挂载秘密:

      - name: GITLAB_DEPLOY_TOKEN_USERNAME
        valueFrom:
          secretKeyRef:
            name: gitlab-deploy-token
            key: username
      - name: GITLAB_DEPLOY_TOKEN_PASSWORD
        valueFrom:
          secretKeyRef:
            name: gitlab-deploy-token
            key: password
    

    现在,在您的 pod 中,您可以:

    git clone http://$GITLAB_DEPLOY_TOKEN_USERNAME:$GITLAB_DEPLOY_TOKEN_PASSWORD@gitlab.example.com/tanuki/awesome_project.git
    

    注意:特殊字符,例如 $、* 和 !需要逃避。如果 您使用的密码有特殊字符,您需要转义它们 使用 \ 字符。例如,如果您的实际密码是 S!B*d$zDsb,你应该这样执行命令:kubectl create 秘密通用 dev-db-secret --from-literal=username=devuser --from-literal=password=S!B\*d\$zDsb 你不需要转义 文件密码中的特殊字符(--from-file)。

    【讨论】:

    • 非常感谢,但我不确定我明白了。 gitlab 为您提供部署令牌的名称(例如 gitlab+deploy-token-395111)和密码(例如:63xksj29450_) kubeclt 机密声明中的&lt;your token&gt; 是什么?我尝试添加密码,但出现错误。
    • 更多应该是令牌的给定名称,例如gitlab+deploy-token-395111 我已经尝试过但得到一个错误:kubectl create secret generic gitlab+deploy-token-395111 --from-literal=token=63xksj29450_ 我得到一个错误Error: unknown shorthand flag: 'â' in -–from-literal=token=63xksj29450_
    • 因为这是一个部署令牌,您应该同时传递用户名和密码。您收到此错误是因为您应该转义密码的特殊字符。我用更多信息编辑了答案。
    • 我仍然遇到同样的错误。我没有特色菜 $,*, ! &gt;kubectl create secret generic gitlab-token -–from-literal=username=gitlab+deploy-token-395111 -–from-literal=password=63xksj29450_ 错误:未知的速记标志:'â' in -–from-literal=username=gitlab+deploy-token-395111 不知道出了什么问题,因为我的用户名或密码中没有 â???跨度>
    • 看起来问题出在“--from-literal”中的破折号中,将“--”替换为“--”即可。
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2018-06-19
    • 2016-05-09
    • 2017-05-09
    相关资源
    最近更新 更多