《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.15环境中验证
部署Gogs+PostgreSQL
- 执行命令,创建项目和Gogs和PostgreSQL应用资源。其中所有参数都在下面的gogs-persistent-template.yaml文件中。
$ oc new-project USER-ID-gogs
$ oc new-app -f https://raw.githubusercontent.com/liuxiaoyu-git/cicd-software-templates/master/gogs-persistent-template-new.yaml -n USER-ID-gogs
--> Deploying template "user1-gogs/gogs" for "https://raw.githubusercontent.com/liuxiaoyu-git/cicd-software-templates/master/gogs-persistent-template.yaml" to project user1-gogs
gogs
---------
The Gogs git server (https://gogs.io/)
* With parameters:
* APPLICATION_NAME=gogs
* GOGS_VOLUME_CAPACITY=1Gi
* DB_VOLUME_CAPACITY=1Gi
* Database Username=gogs
* Database Password=gogs
* Database Name=gogs
* Database Admin Password=S2DGYkMF # generated
* Maximum Database Connections=100
* Shared Buffer Amount=12MB
* Database version (PostgreSQL)=10
* Gogs Version=latest
* Installation lock=true
* Skip TLS verification on webhooks=true
--> Creating resources ...
serviceaccount "gogs" created
service "gogs-postgresql" created
deploymentconfig.apps.openshift.io "gogs-postgresql" created
service "gogs" created
route.route.openshift.io "gogs" created
deploymentconfig.apps.openshift.io "gogs" created
imagestream.image.openshift.io "gogs" created
persistentvolumeclaim "gogs-data" created
persistentvolumeclaim "gogs-postgres-data" created
configmap "gogs-config" created
--> Success
Access your application via route 'gogs-gogs-postgresql.apps.cluster-beijing-78c7.beijing-78c7.example.opentlc.com'
Run 'oc status' to view your app.
- 查看部署的拓扑情况,当gogs和postgresql的Pod都Running后,用浏览器打开gogs的路由访问地址。
- 在Gogs的初始界面中点击“注册”,然后gogs/gogs的信息注册一个用户,最后登录即可。
配置Webhook
导入Git Repo到Gogs
- 点击界面右上方的“+”,然后在下拉菜单中进入“迁移外部仓储”。
- 在“迁移外部仓库”对话框中提供如下Repo配置,然后点击“迁移仓库”按钮。
克隆地址:https://github.com/sclorg/nginx-ex.git
仓库名称:nginx
- 导入完成后可以看到名为nginx的Git Repo,此时nginx的Repo的访问地址是http:///gogs/nginx
根据Git Repo部署应用
- 进入OpenShift控制台“开发者”视图。
- 在点击“项目”的下拉框中点击“创建项目”,然后创建项目:USER-ID-nginx。
- 在OpenShift控制台的“+添加”中进入“所有服务”。
- 查找“nginx”,确认找到的“Nginx HTTP server and a reverse proxy (nginx)”是“构建器镜像”类型。点击进入,然后在右侧窗口中点击“Create 应用程序”。
- 在“创建 Source-to-Image 应用程序”页面中提供以下配置,其它是默认配置即可,完成后点击“创建”按钮。
Git Reop URL:http:///gogs/nginx
Git 类型:GitHub
- 在完成部署后点击“拓扑”中的nginx图标,然后在右侧窗口先点击名为“nginx”的路由链接,查看nginx应用页面。然后再点击“构建”的“BC”图标右侧的“nginx”链接,查看BuildConfig配置。
- 在nginx的“Build Config 详情”页面中查看“Webhook”,然后点击GitHub对应的“使用Secret复制URL”链接,复制GitHub的Webhook的地址。
- 进入Gogs应用的nginx Repo,然后进入“仓库设置”标签,再点击“添加Web钩子”按钮,最后选择“Gogs”即可。
- 在“添加Web钩子”界面中将(7)获得的Webhood地址复制到“推送地址”中,然后点击“添加Web钩子”按钮完成设置。
- 修改Gogs中niginx Repo的index.html文件内容,提交后在OpenShift控制台查看nginx已经有一个“#2”的新构建了。完成后再次访问应用,确认应用页面已经更新。
- 此时可再次从Gogs中nginx Repo的“仓库设置”查看Webhook的配置。在下方的“最近推送记录”中查看触发的推送请求和响应内容。
注意事项
在部署Gogs的时候需要确认https://raw.githubusercontent.com/liuxiaoyu-git/cicd-software-templates/master/gogs-persistent-template.yaml文件中以下部分,其中SKIP_TLS_VERIFY参数需要设为true,否则在Gogs调用的Webhook的时候会出现以下错误。
- name: SKIP_TLS_VERIFY
displayName: Skip TLS verification on webhooks
description: Skip TLS verification on webhooks. Enable with caution!
value: "true"