Jenkins 系统设置
Jenkins 强大而灵活,已经成为 CI/CD 工作流事实上的标准。 但是,许多插件要求用户先设置系统级配置,然后才能使用。 KubeSphere DevOps 系统提供基于 Jenkins 的容器化 CI/CD 功能。为了为用户提供可调度的 Jenkins 环境,KubeSphere 使用 Configuration-as-Code 进行 Jenkins 系统设置,这要求用户登录 Jenkins 仪表板并在修改后重新加载配置。在当前版本中,Jenkins 系统设置在 KubeSphere 控制台上不可用,即将发布的版本将支持该设置。 本教程演示了如何在 Jenkins 仪表板上设置 Jenkins 并重新加载配置。
先决条件
您已启用 KubeSphere DevOps 系统。
修改 ConfigMap
建议您通过Configuration-as-Code(CasC)在 KubeSphere 中配置 Jenkins。 内置的 Jenkins CasC 文件存储为 ConfigMap。
以 kubeSphere 管理员(
admin
)身份登录, 单击左上角的平台管理,然后选择集群管理。如果您已经在导入成员集群时启用了多集群特性,那么您可以选择一个特定集群以查看其应用程序资源。 如果尚未启用该特性,请直接参考下一步。
从导航栏中,在配置中心下选择配置。 在配置页面上,从下拉列表中选择
kubesphere-devops-system
,然后单击jenkins-casc-config
。在详细信息页面上,从更多操作下拉列表中单击编辑配置文件(YAML 文件)。
如下所示,
jenkins-casc-config
的配置模板是一个 YAML 文件。 您可以在 ConfigMap 的代理(Kubernetes Jenkins agent)中修改容器镜像、标签等内容,或者在 podTemplate 中添加容器。 完成后,单击更新。
登录 Jenkins 重新加载配置
修改 jenkins-casc-config
后,需要在 Jenkins 仪表板上的 Configuration as Code 页面上重新加载更新的系统配置。 这是因为直接通过 Jenkins 仪表板配置的系统设置可能在 Jenkins 重新调度之后被 CasC(Configuration as Code
) 配置覆盖。
执行以下命令获取 Jenkins 的地址。
export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services ks-jenkins)
export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
您可以看到如下所示的预期输出,它告诉您 Jenkins 的 IP 地址和端口号。
http://10.77.1.201:30180
使用地址
http://Node IP:Port Number
访问 Jenkins。安装 KubeSphere 时,默认情况下也会安装 Jenkins 仪表板。 Jenkins 配置了 KubeSphere LDAP,这意味着您可以直接使用 KubeSphere 帐户(例如admin/P@88w0rd
)登录 Jenkins。备注
您可能需要设置必要的端口转发规则并打开端口
30180
才能访问安全组中的 Jenkins,具体取决于您的实例部署的位置。登录仪表板后,从导航栏中单击 Manage Jenkins。
向下翻页并单击 Configuration as Code.
要重新加载在 ConfigMap 中修改的配置,请单击 Apply new configuration。.
有关如何通过 CasC 设置 Jenkins 的更多信息,请参阅 Jenkins 文档。
备注
在当前版本中,并非所有插件都支持 CasC 设置。 CasC 将仅覆盖通过 CasC 设置的插件配置。