使用gitlab作为helm存储库

827 阅读4分钟

主要参考:blog.csdn.net/weixin_5627…
安装的版本得高于14,14以上集成了helm仓库;本文安装的是16社区版本。
参考:docs.gitlab.cn/jh/user/pac… 参考:faun.dev/c/stories/d…

1. 安装gitlab

[root@server6 ~]# cd /etc/yum.repos.d/
[root@server6 yum.repos.d]# vim gitlab-ce.repo 
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1  
#经过漫长的安装过程
[root@server6 ~]# yum clean all && yum makecache
[root@server6 ~]# yum install gitlab-ce 

2. 配置gitlab

安装完成后

#
 [root@server6 ~]#  gitlab-ctl status
 [root@server6 ~]#  gitlab-ctl -h
 [root@server6 ~]#  vim /etc/gitlab/gitlab.rb 
#端口不能与其他服务监听的端口冲突,否则会有502错误
external_url 'https://repository.knowdee.com:443'
#开启https
nginx['ssl_certificate'] = "/etc/gitlab/ssl/repository.knowdee.com.cert"               
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/repository.knowdee.com.key"     
letsencrypt['enable'] = false

安装参考:blog.csdn.net/weixin_5627…
开启HTTPS参考:www.cnblogs.com/fengwenqian…
配置完成后,开启服务

3. 设置root访问密码

[root@server6 bin]# ./gitlab-rails console -e production

--------------------------------------------------------------------------------
 Ruby:         ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [x86_64-linux]
 GitLab:       16.0.2 (8606c8ca1da) FOSS
 GitLab Shell: 14.20.0
 PostgreSQL:   13.11
Loading production environment (Rails 6.1.7.2)
irb(main):002:0> u=User.where(id:1).first
irb(main):010:0> u.User.all
irb(main):015:0> u.password='1Ca2Yo3Hr'
=> "1Ca2Yo3Hr"
irb(main):016:0> u.password_confirmation='1Ca2Yo3Hr'
=> "1Ca2Yo3Hr"
irb(main):017:0> u.save!
=> true
irb(main):018:0> exit

gitlab-passwd.png

4. 查看log

[root@server6 gitlab]# pwd
/var/log/gitlab
[root@server6 gitlab]# ll
总用量 12
drwx------ 2 gitlab-prometheus root         95 6月   8 19:51 alertmanager
drwx------ 2 git               root        200 6月  11 19:47 gitaly
drwx------ 2 git               root        200 6月  11 19:50 gitlab-exporter
drwx------ 2 git               root        130 6月   9 19:47 gitlab-kas
drwx------ 2 git               root       4096 6月  12 10:34 gitlab-rails
drwx------ 2 git               root          6 6月   7 19:47 gitlab-shell
drwx------ 2 git               root        200 6月  11 19:50 gitlab-workhorse
drwx------ 2 root              root        200 6月  11 19:47 logrotate
drwxr-x--- 2 root              gitlab-www 4096 6月  12 00:34 nginx
drwx------ 2 gitlab-prometheus root         95 6月   8 19:50 node-exporter
drwx------ 2 gitlab-psql       root         95 6月   8 19:51 postgres-exporter
drwx------ 2 gitlab-psql       root        130 6月   9 19:47 postgresql
drwx------ 2 gitlab-prometheus root        200 6月  11 19:51 prometheus
drwx------ 2 git               root       4096 6月  12 10:34 puma
drwxr-xr-x 2 root              root        314 6月  12 10:54 reconfigure
drwx------ 2 gitlab-redis      root        200 6月  11 19:47 redis
drwx------ 2 gitlab-redis      root         95 6月   8 19:51 redis-exporter
drwx------ 2 git               root        200 6月  11 19:50 sidekiq

配置:

[root@server6 gitlab]# pwd
/var/opt/gitlab
[root@server6 gitlab]# ls
alertmanager  bootstrapped  git-data   gitlab-exporter  gitlab-rails  gitlab-workhorse  nginx          postgres-exporter  prometheus              redis
backups       gitaly        gitlab-ci  gitlab-kas       gitlab-shell  logrotate         node-exporter  postgresql         public_attributes.json  trusted-certs-directory-hash

4. 配置邮箱

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "imaphz.qiye.163.com"
gitlab_rails['smtp_port'] = 994
gitlab_rails['smtp_user_name'] = "caoyong@knowdee.com"
gitlab_rails['smtp_password'] = "KxdepbxV2aOQAutc"
gitlab_rails['smtp_domain'] = "qiye.163.com"
gitlab_rails['smtp_authentication'] = "login"
#gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = false

gitlab_rails['gitlab_email_from'] = 'caoyong@knowdee.com'      

user['git_user_email'] = "caoyong@knowdee.com"   

更新配置并重启

gitlab-ctl reconfigure
gitlab-ctl restart

测试邮箱:

[root@server6 ssl]# gitlab-rails console
--------------------------------------------------------------------------------
 Ruby:         ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [x86_64-linux]
 GitLab:       16.0.2 (8606c8ca1da) FOSS
 GitLab Shell: 14.20.0
 PostgreSQL:   13.11
------------------------------------------------------------[ booted in 25.55s ]
Loading production environment (Rails 6.1.7.2)
irb(main):001:0> Notify.test_email('cyxinda@163.com','gitlab email','Holoow world').deliver_now
Delivered mail 64868d4d7ac2b_ad6a317412918@server6.mail (1266.1ms)
=> #<Mail::Message:291820, Multipart: false, Headers: <Date: Mon, 12 Jun 2023 11:13:17 +0800>, <From: GitLab <caoyong@knowdee.com>>, <Reply-To: GitLab <noreply@192.168.5.6>>, <To: cyxinda@163.com>, <Message-ID: <64868d4d7ac2b_ad6a317412918@server6.mail>>, <Subject: gitlab email>, <Mime-Version: 1.0>, <Content-Type: text/html; charset=UTF-8>, <Content-Transfer-Encoding: 7bit>, <Auto-Submitted: auto-generated>, <X-Auto-Response-Suppress: All>>
irb(main):002:0> 

管看邮箱,已经有邮件接收到了

1111.png

helm仓库

在gitlab页面上面,创建一个普通的project,ID为3 1111.png 需要创建helm命令用的password,实际上是gitlab的Token 1111.png 复制保存下token,以备后面使用glpat-zyfAyBbaou1cH 添加helm-push插件:

helm plugin install https://github.com/chartmuseum/helm-push.git

上传helm包

root@ubuntu:/home/cyxinda/workspace/test# helm package demo
Successfully packaged chart and saved it to: /home/cyxinda/workspace/test/demo-0.1.0.tgz
root@ubuntu:/home/cyxinda/workspace/test# ls
demo  demo-0.1.0.tgz  
root@ubuntu:/home/cyxinda/workspace/test# helm repo add     --username root     --password glpat-zyfAyBbaou1cH    demo  https://repository.knowdee.com/api/v4/projects/3/packages/helm/stable
"demo" has been added to your repositories
root@ubuntu:/home/cyxinda/workspace/test# helm repo list
NAME                    URL                                                                  
ingress-nginx           https://kubernetes.github.io/ingress-nginx                           
prometheus-community    https://prometheus-community.github.io/helm-charts                   
deepflow                https://deepflowio.github.io/deepflow                                
milvus                  https://milvus-io.github.io/milvus-helm/                             
kubesphere              https://charts.kubesphere.io/main                                    
polardbx                https://polardbx-charts.oss-cn-beijing.aliyuncs.com                  
test                    https://harbor.192.168.5.6.nip.io/chartrepo/library                  
example-repo            https://repository.knowdee.com/api/v4/projects/2/packages/helm/stable
example                 https://repository.knowdee.com/api/v4/projects/2/packages/helm/stable
demo                    https://repository.knowdee.com/api/v4/projects/3/packages/helm/stable
root@ubuntu:/home/cyxinda/workspace/test# helm search repo demo
No results found
root@ubuntu:/home/cyxinda/workspace/test#  helm cm-push demo-0.1.0.tgz demo
Pushing demo-0.1.0.tgz to demo...
Done.
root@ubuntu:/home/cyxinda/workspace/test# helm repo update demo
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "demo" chart repository
Update Complete. ⎈Happy Helming!⎈
root@ubuntu:/home/cyxinda/workspace/test# helm search repo demo
NAME            CHART VERSION   APP VERSION     DESCRIPTION                
demo/demo       0.1.0           1.16.0          A Helm chart for Kubernetes
root@ubuntu:/home/cyxinda/workspace/test# 

如果自定义的证书,则需要在命令行上面添加好相关参数:

 root@ubuntu:/home/cyxinda/workspace/test# helm repo add     --username root     --password glpat-zyfAyBbaou1cH     --ca-file /etc/docker/certs.d/repository.knowdee.com/ca.crt     --cert-file  /etc/docker/certs.d/repository.knowdee.com/repository.knowdee.com.cert --key-file  /etc/docker/certs.d/repository.knowdee.com/repository.knowdee.com.key     example  https://repository.knowdee.com/api/v4/projects/2/packages/helm/stable 
"example" has been added to your repositories
helm plugin install https://github.com/karuppiah7890/helm-schema-gen.git
helm schema-gen values.yaml 
helm schema-gen values.yaml > values.schema.json

helm语法:godleon.github.io/blog/DevOps…

2.8版本以前的harbor

./install.sh --with-chartmuseum
helm cm-push test https://harbor.192.168.5.6.nip.io/chartrepo/caoyong --ca-file /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/ca.crt --cert-file  /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/harbor.192.168.5.6.nip.io.cert --key-file  /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/harbor.192.168.5.6.nip.io.key  -u admin -p admin_lenobot
helm push test- oci://repository.knowdee.com/library --ca-file /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/ca.crt --cert-file  /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/harbor.192.168.5.6.nip.io.cert --key-file  /etc/containerd/certs.d/harbor.192.168.5.6.nip.io/harbor.192.168.5.6.nip.io.key 

参考:blog.51cto.com/heyong/5148…

www.jianshu.com/p/62ef34f76…