我正在尝试从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: {}发布于 2019-07-31 18:35:28
选项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 secret generic dev-db-secret -- from -literal=username=devuser --from-literal= password =S!B\*d\$zDsb您不需要转义来自文件的密码中的特殊字符(--from-file)。
https://stackoverflow.com/questions/57288199
复制相似问题