将 Harbor 集成到流水线
- 您需要启用 KubeSphere DevOps 系统。
- 您需要创建一个企业空间、一个 DevOps 项目和一个用户 ()。需要邀请该用户至 DevOps 项目并赋予
operator
角色。如果尚未创建,请参见。
安装 Harbor
强烈建议您通过 安装 Harbor。或者,您可以使用 Helm3 手动安装 Harbor。
安装 Harbor 后,请访问
<NodeIP>:30002
并使用默认帐户和密码 (admin/Harbor12345
) 登录控制台。在左侧导航栏中点击项目并在项目页面点击新建项目。在弹出的对话框中,设置项目名称 (
ks-devops-harbor
) 并点击确定。点击刚刚创建的项目,在机器人帐户选项卡下点击添加机器人帐户。
在弹出的对话框中,为机器人帐户设置名称 (
robot-test
) 并点击添加。请确保在权限中勾选推送制品的权限选框。在弹出的对话框中,点击导出到文件中,保存该令牌。
启用 Insecure Registry
您需要配置 Docker,使其忽略您 Harbor 仓库的安全性。
运行以下命令重启 Docker,使更改生效。
备注
建议您在隔离的测试环境或者严格控制的离线环境中使用该方案。有关更多信息,请参考 。完成上述操作后,即可在项目中部署工作负载时使用您 Harbor 仓库中的镜像。您需要为自己的 Harbor 仓库创建一个镜像密钥,然后在容器镜像选项卡下的容器设置中,选择您的 Harbor 仓库并输入镜像的绝对路径以搜索您的镜像。
以 身份登录 KubeSphere 控制台,转到您的 DevOps 项目,在 DevOps 项目设置下的凭证页面为 Harbor 创建凭证。
在创建凭证页面,设置凭证 ID (
robot-test
),类型选择用户名和密码。用户名字段必须和您刚刚下载的 JSON 文件中name
的值相同,并在密码/令牌中输入该文件中token
的值。点击确定以保存。
创建流水线
转到流水线页面,点击创建。在基本信息选项卡,输入名称 (
demo-pipeline
),然后点击下一步。
点击该流水线进入其详情页面,然后点击编辑 Jenkinsfile。
将以下内容复制粘贴至 Jenkinsfile。请注意,您必须将
REGISTRY
、HARBOR_NAMESPACE
、APP_NAME
和HARBOR_CREDENTIAL
替换为您自己的值。``` pipeline {
agent {node {
label 'maven'
}
}
environment {
}
stages {
stage('docker login') {
container ('maven') {
sh '''echo $HARBOR_CREDENTIAL_PSW | docker login $REGISTRY -u 'robot$robot-test' --password-stdin'''
}
}
}
stage('build & push') {
steps {
container ('maven') {
sh 'git clone https://github.com/kstaken/dockerfile-examples.git'
sh 'cd dockerfile-examples/rethinkdb && docker build -t $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:devops-test .'
sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:devops-test'
}
}
}