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的成功的信息。

相关推荐
一叶知秋@qqy13 天前
Kubernetes-ArgoCD篇-03-部署
容器·kubernetes·argocd
solinger3 个月前
macos安装ArgoCD
argocd
The Straggling Crow3 个月前
GitOps Tekton+ArgoCD
java·argocd·tekton
努力做一名技术6 个月前
下一代 CI/CD:利用 Tekton 和 ArgoCD 实现云原生自动化
ci/cd·argocd·tekton
Apex Predator8 个月前
argocd部署
argocd
海鸥819 个月前
minio: expand decommission pools in argocd
argocd
野心与梦10 个月前
26.云原生ArgoCD高级之ApplicationSet
云原生·argocd
野心与梦10 个月前
24.云原生ArgoCD高级之数据加密seale sealed
云原生·argocd
野心与梦10 个月前
25.云原生之ArgoCD-app of apps模式
云原生·argocd