如何将代码从gitlab下载到kubernetes

时间:2019-07-31 10:03:39

标签: kubernetes gitlab

我正在尝试将代码从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: {}

1 个答案:

答案 0 :(得分:3)

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

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

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

选项2 为令牌创建secret并将其安装到吊舱。

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

现在,在您的窗格中,您可以:

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)中的特殊字符。