24.云原生ArgoCD高级之钩子

云原生专栏大纲

文章目录

  • Argo CD钩子
    • 如何定义钩子
    • 钩子删除策略

Argo CD钩子

Argo CD 是一个用于部署和管理 Kubernetes 应用程序的工具,它提供了一种声明式的方式来定义和自动化应用程序的部署过程。Argo CD 钩子(Hooks)是一种机制,允许在部署过程中执行自定义的操作。
image.png
Argo CD 钩子可以在以下几个阶段执行:

  1. PreSync 钩子:在同步操作之前执行。可以用于在同步应用程序之前执行一些准备工作,例如创建必要的资源或检查先决条件。(可以在部署应用前,执行数据库迁移或初始化)
  2. Sync 钩子:在同步操作期间执行。可以用于在同步应用程序期间执行一些操作,例如修改配置、应用变换或执行其他自定义逻辑。
  3. PostSync 钩子:在同步操作之后执行。可以用于在同步应用程序之后执行一些清理工作或触发其他操作。(集成监控和健康检查等)
  4. SyncFaild钩子:在同步失败后执行,可以数据清理、逻辑终结、应用回滚等操作

如何定义钩子

参考https://github.com/ppsite/argocd-in-action
image.png

argocd.argoproj.io/hook: PreSync定义钩子执行阶段,多个阶段用","逗号分隔

apiVersion: batch/v1
kind: Job
metadata:name: app-wxworkannotations:# 指定钩子阶段argocd.argoproj.io/hook: PostSync# 钩子删除策略argocd.argoproj.io/hook-delete-policy: HookSucceeded
spec:template:spec:containers:- name: wxwork-notificationimage: curlimages/curl# 下述钩子通知企业微信发布完成command:- "curl"- "--request"- "POST"- "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b291a492-62be-406a-9b65-13cd2061045b"- "--header"- "'Content-Type: application/json'"- "--data-raw"- "{\"msgtype\": \"text\",\"text\": {\"content\": \"hello world\"}}"restartPolicy: NeverbackoffLimit: 1

钩子删除策略

在 Argo CD 中,可以使用钩子(hook)来在应用程序部署的不同阶段执行自定义操作。钩子可以用于在部署之前或之后运行脚本、命令或其他操作。当应用程序被删除时,也可以使用钩子来执行清理操作。删除钩子的策略可以通过 Argo CD 应用程序的配置进行设置。
Argo CD 提供了以下几种钩子删除策略选项:

  1. BeforeHookCreation: 在创建钩子之前删除旧的钩子。这是默认的删除策略,它会在创建新钩子之前删除先前的钩子。
  2. HookSucceeded: 仅当钩子成功执行后才删除旧的钩子。这种策略适用于需要确保钩子成功执行后再删除旧钩子的情况。
  3. HookFailed: 仅当钩子执行失败后才删除旧的钩子。这种策略适用于需要在钩子执行失败时保留旧钩子的情况。
  4. HookSucceededOrFailed: 无论钩子成功还是失败,都删除旧的钩子。这种策略适用于无论钩子执行结果如何,都希望删除旧钩子的情况。

钩子删除策略可以在 Argo CD 应用程序的配置文件(例如 YAML 文件)中设置。例如,以下是一个应用程序配置文件的示例,其中设置了钩子删除策略为 HookSucceeded:

apiVersion: batch/v1
kind: Job
metadata:name: app-wxworkannotations:# 指定钩子阶段argocd.argoproj.io/hook: PostSync# 钩子删除策略argocd.argoproj.io/hook-delete-policy: HookSucceeded

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/451179.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

远程手机搭建Termux环境,并通过ssh连接Termux

背景 Termux只能通过鼠标点击,无法使用电脑键盘,输入速度很慢,你想通过ssh 连接Termux,获得友好体验搞了个云手机,想像普通手机那样充当服务器想把自己的手机公开到局域网中供同事调试想把自己的模拟器公开到局域网中…

【MySQL】——数据定义

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

【考研408】操作系统笔记

文章目录 [toc] 计算机系统概述操作系统的基本概念操作系统的概念和特征操作系统的目标和功能(**处理器管理、存储器管理、设备管理、文件管理、向用户提供接口、扩充机器**) 操作系统的发展与分类操作系统的运行环境操作系统的运行机制 操作系统的体系结…

从MySQL到TiDB:兼容性全解析

MySQL 在高并发和大数据量场景下,单个实例的扩展性有限。而 TiDB 作为一款分布式NewSQL数据库,设计之初就支持水平扩展(Scale-Out),通过增加节点来线性提升处理能力和存储容量,能够很好地应对大规模数据和高…

C系列-柔性数组

🌈个人主页: 会编程的果子君 ​💫个人格言:“成为自己未来的主人~” 目录 ​编辑 柔性数组 柔性数组的特点 柔性数组的使用 柔性数组的优势 柔性数组 也许你从来没有听说过柔性数组这个概念,但是它确实是存在的,C99中&#…

大带宽服务器托管的特点和考虑因素

很多公司和企业对于使用大带宽服务器的需求和存储不一样,为了满足不同的用户需求,大带宽服务器托管是个不错的选择,小编为您整理发布大带宽服务器托管的特点和要考虑的因素。 大带宽服务器托管是一种服务器托管服务,其主要特点是…

DS:经典算法OJ题(2)

创作不易,友友们给个三连吧!! 一、旋转数组(力扣) 经典算法OJ题:旋转数组 思路1:每次挪动1位,右旋k次 时间复杂度:o(N^2) 右旋最好情况:k是n的倍数…

2017年苏州大学837复试机试C/C++

2017年苏州大学复试机试 要求 要求用C/C编程;对程序中必要的地方进行注释。上机规则 请在电脑桌面上新建一个文件夹文件夹名为考试姓名(中文);考试完毕后,将所编写的文件放在上述文件中。 第一题(20分&…

Linux 多线程 | 线程的概念

线程的概念 线程是一个执行分支,执行粒度比进程更细,调度成本更低; 线程是进程内部的一个执行流; 线程是CPU调度的基本单位,进程是承担分配系统资源的基本实体。 之前我们学习过虚拟地址空间的知识,知道…

倾斜摄影轻量化,这样才规范!

自然资源部发布了《倾斜数字摄影测量技术规程》等17项行业标准报批稿公示,其中高频出现的倾斜摄影技术,重回大众视野。 倾斜摄影技术是国际测绘领域近些年发展起来的一项高新技术,它颠覆了以往正射影像只能从垂直角度拍摄的局限,通…

69.请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?

69.请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程? 核心架构的具体流程步骤如下: 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行…

Windows内存管理 - 虚拟内存地址概念(Virtual Memory Address)

虽然可以寻址4GB的内存,而在PC里往往没有如此多的真实物理内存。操作系统和硬件(这里指的是CPU中的内存管理单元MMU)为使用者提供了虚拟内存的概念。Windows的所有程序(包括Ring0层和Ring3层的程序)可以操作的都是虚拟…