概述
本文说openshift origin3.9的二次开发流程,其他版本没有亲测,操作上可能会有一些区别。以登陆页面的修改为例说明,登陆页面并不是单独的html页面,而是被嵌入在go代码中。在进行操作前要确保本地已经有openshift开发环境了,具体请查看系列其他文章。
正文
编辑相关代码
打开go代码:origin/pkg/oauthserver/server/login/templates.go
把其中的defaultLoginTemplateString内容修改为你需要的
生成openshift/origin-base , openshift/origin-source和openshift/origin-release三个镜像
cd origin
hack/env hack/build-base-images.sh
如果这一步之前做过就可以忽略,可以通过docker images查看,如果已经存在openshift/origin-source openshift/origin-base openshift/origin-release 这三个镜像这一步就可以忽略了
生成二进制文件,rpm包和各种镜像
cd origin
hack/env make release
如果你只想生成二进制文件,可以执行以下命令节约些时间
hack/env OS_ONLY_BUILD_PLATFORMS='linux/amd64' make build-cross
删除 tagged images
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
启动openshift集群,验证页面修改
oc cluster up --version="71543b2"
“71543b2”是本地镜像的tag,需要根据实际情况修改
把二进制文件origin/_output/local/bin/linux/amd64/openshift拷贝到三台master机器上/tmp目录下
在三台master机器上分别进行以下操作
停止api和controller服务
systemctl stop origin-master-api.service
systemctl stop origin-master-controllers.service
备份二进制文件openshift
cp /usr/bin/openshift /usr/bin/openshift.bak
替换二进制文件openshift
mv /tmp/openshift /usr/bin/openshift
启动api和controller服务
systemctl start origin-master-api.service
systemctl start origin-master-controllers.service