ngrok forward本地argocd并设置为github repo webhook

为什么需要ngrok

我们刚学了argocd的安装和部署应用,但是argocd什么时候部署部署我们的应用,就取决于repo的sync机制。我们采用以下cmd设置为autosync。

argocd app list # to get our app
argocd app set argocd/tekton-learning-nginx  --sync-policy automated # argocd/tekton-learning-nginx  is my app_name

这样配置的话,argocd默认每三分钟就去检测,如果有更新就自动sync。

而通常我们希望,可以定制什么时候sync,也就是可以通过github的webhook,去决定什么时候触发sync。

本地argocd没有外网的ip,无法设置为webhook,ngrok就为了解决此问题。

安装和使用ngrok

注册用户,并登陆,就可以看到installation and setup。就可以轻松安装了。我的操作系统是macos。所以我用到的指令是:

sudo unzip ~/Downloads/ngrok-v3-stable-darwin.zip -d /usr/local/bin
ngrok config add-authtoken **** # *** is my token key. You just need to copy yours
ngrok http https://localhost:8000

这里需要说明的是,https://localhost:8000是我的argocd local url。我可以通过web browser访问。这里你需要换成你的argocd local url。

设置github repo webhook

找到your_external_argocd_url

查看ngrok http your_argocd_local_url 的输出,我的输出如下:
 

Session Status                online                                                                                             
Account                       my_account (Plan: Free)                                                                       
Version                       3.15.1                                                                                             
Region                        Asia Pacific (ap)                                                                                  
Latency                       74ms                                                                                               
Web Interface                 http://127.0.0.1:4040                                                                              
Forwarding                    https://6d91-111-201-230-65.ngrok-free.app -> https://localhost:8000                               
                                                                                                                                 
Connections                   ttl     opn     rt1     rt5     p50     p90                                                        
                              18      0       0.00    0.00    0.79    91.04                                                      
                                                                                                                                 
HTTP Requests                                                                                                                    
-------------                                                                                                                    
                                                                                        

这里,Forwarding后面的https://...app就是ngrok为我们local argocd提供的外网入口,我们称它为your_external_argocd_url。

我们把他粘贴到我们的浏览器中,确保我们可以看到argocd的dashboard。

添加webhook

打开你的github repo的配置页,将webbook设置为your_external_argocd_url/api/webhook, content_type设置为application/json,点击保存即可。

当你保存后,这个hook前端回显示一个内部是感叹号的红色三角,其表示还未曾触发过该hook。

修改代码并查看hook

修改代码并提交,这时候回到github webhook界面,看hook是否能正常工作。正常工作的话,会出现绿色对号。

回到argocd dashboard,也可以看到sync已经完成并且部署最新的代码。

查看ngrok输出

                                                                                                                                 
Session Status                online                                                                                             
Account                       wlin@redhat.com (Plan: Free)                                                                       
Version                       3.15.1                                                                                             
Region                        Asia Pacific (ap)                                                                                  
Latency                       73ms                                                                                               
Web Interface                 http://127.0.0.1:4040                                                                              
Forwarding                    https://6d91-111-201-230-65.ngrok-free.app -> https://localhost:8000                               
                                                                                                                                 
Connections                   ttl     opn     rt1     rt5     p50     p90                                                        
                              18      0       0.00    0.00    0.79    91.04                                                      
                                                                                                                                 
HTTP Requests                                                                                                                    
-------------                                                                                                                    
                                                                                                                                 
18:52:31.916 CST POST /api/webhook                                 200 OK                                                        
18:40:54.285 CST POST /api/webhook                                 200 OK                                                        
18:04:59.508 CST POST /api/webhook                                 200 OK        

我们同样可以看到api/webhook 200的成功的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值