1、基本概念
此次安装的有Jenkins、Gitlab、Redmine,我公司目前使用的是独立于k8s集群之外单独部署的Jenkins等服务,此文章会介绍三种服务基于k8s的部署方式,之后集成之前部署的openLDAP实现统一认证。之后将进行简单持续集成持续部署的演示,最后再结合我公司的项目进行实战操作,应付出现的各种使用场景。
2、使用Helm安装redmine
[root@k8s-master01 ci]# git clone https://github.com/dotbalo/helm.git
[root@k8s-master01 ci]# cd redmine/redmine/
更改values.yaml相关配置,也可以通过--set设置
redmineUsername:可选,默认为user
redminePassword:可选
redmineEmail:用于项目通知
smtpHost: smtp.xxx.com
smtpPort:
smtpUser: dukuan@xxx.com
smtpPassword: xxx
smtpTls: true
serviceType: ClusterIP
# 修改mariadb的storageClass: "gluster-heketi",使用gfs动态存储
注意:redmine的持久化使用的nfs
创建redmine的pv
[root@k8s-master01 redmine]# kubectl create -f redmine.pv
安装redmine
helm install --name redmine . --debug --namespace public-service
安装成功后如下:
NOTES:
. Get the Redmine URL: NOTE: It may take a few minutes for the LoadBalancer IP to be available.
Watch the status with: 'kubectl get svc --namespace public-service -w redmine-redmine' export SERVICE_IP=$(kubectl get svc --namespace public-service redmine-redmine --template "{{index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}")
echo http://$SERVICE_IP/ . Login with the following credentials echo Username: admin
echo Password: $(kubectl get secret --namespace public-service redmine-redmine -o jsonpath="{dmine-password}" | base64 --decode)
查看pods
[root@k8s-master01 redmine]# kubectl get po -n public-service
NAME READY STATUS RESTARTS AGE
redmine-mariadb- / Running 20m
redmine-redmine-6995ddf776-s5zww / Running 20m
创建ingress,也可以直接在values.yaml指定
[root@k8s-master01 redmine]# kubectl create -f traefik-redmine.yaml
访问redmine
查看密码
[root@k8s-master01 redmine]# kubectl get secret --namespace public-service redmine-redmine -o jsonpath={.data.redmine-password} | base64 --decode
7AOZGCVJOQ
2.1 redmine配置
语言配置
密码修改
LDAP配置
填写如下
连接测试
2.2 用户配置
上述虽然勾选了即时生成用户,但是并未生成,所以需要创建与之对应的用户。注意:我采用的email认证,为了防止重名,如果使用用户名的话登录名属性填写uid。
创建一个项目:DevItem
创建dev组
创建对应用户
注意上述使用的mail认证方式,所以登录名为邮箱,如果采用uid则写cn的名字
加入组和项目
登录测试
3、邮件测试
点击发送测试邮件
4、插件安装
下载地址:http://www.redmineup.com/pages/plugins/agile
将安装包解压并复制到redmine的插件目录,默认为/home/redmine/data/plugins
获取到redmine的pv地址的path
[root@k8s-master01 ~]# kubectl get pv | grep redmine
pvc-f81dace8-fc4f-11e8-bf2f-000c298bf023 3Gi RWO Delete Bound public-service/data-redmine-mariadb- gluster-heketi 19h
redmine-data 4Gi RWO Recycle Bound public-service/redmine-redmine redmine-data 19h
[root@k8s-master01 ~]# kubectl describe pv redmine-data
Name: redmine-data
Labels: <none>
Annotations: pv.kubernetes.io/bound-by-controller: yes
Finalizers: [kubernetes.io/pv-protection]
StorageClass: redmine-data
Status: Bound
Claim: public-service/redmine-redmine
Reclaim Policy: Recycle
Access Modes: RWO
Capacity: 4Gi
Node Affinity: <none>
Message:
Source:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: 192.168.2.2
Path: /k8s/redmine
ReadOnly: false
Events: <none>
挂载该path至宿主机
[root@k8s-master01 ~]# mount -t nfs 192.168.2.2:/k8s/redmine /mnt/
上次压缩包并解压
[root@k8s-master01 plugins]# unzip redmine_agile-1_4_7-light.zip
[root@k8s-master01 plugins]# rm -f redmine_agile-1_4_7-light.zip
[root@k8s-master01 plugins]# pwd
/mnt/plugins
重启redmine即可,其他插件安装方式相同
赞助作者: