<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>CICD on erpan&#39;s note</title>
    <link>https://940504.top/tags/cicd/</link>
    <description>Recent content in CICD on erpan&#39;s note</description>
    <image>
      <title>erpan&#39;s note</title>
      <url>https://940504.top/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://940504.top/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.154.5</generator>
    <language>en</language>
    <copyright>浙ICP备2021018236号-1</copyright>
    <lastBuildDate>Mon, 10 Jan 2022 22:05:12 +0800</lastBuildDate>
    <atom:link href="https://940504.top/tags/cicd/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ArgoCD试用</title>
      <link>https://940504.top/posts/argocd%E8%AF%95%E7%94%A8/</link>
      <pubDate>Mon, 10 Jan 2022 22:05:12 +0800</pubDate>
      <guid>https://940504.top/posts/argocd%E8%AF%95%E7%94%A8/</guid>
      <description>&lt;h1 id=&#34;argocd&#34;&gt;ArgoCD&lt;/h1&gt;
&lt;p&gt;遵循&lt;strong&gt;GitOPS&lt;/strong&gt;模式，应用定义、配置和环境等都应该是声明式和版本化的。应用部署和生命周期管理是自动化、可审计和易于理解的&lt;/p&gt;
&lt;h2 id=&#34;特性&#34;&gt;特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;拥有GitOPS的一切特性，如回滚到任意git commit点&lt;/li&gt;
&lt;li&gt;自动发布应用到指定环境，支持多集群管理&lt;/li&gt;
&lt;li&gt;支持多种配置管理工具、模板 (Kustomize，Helm， Jsonnet， plain-YAML，自定义配置管理插件)&lt;/li&gt;
&lt;li&gt;支持单点登录 (OIDC, OAuth2, LDAP, SAML 2.0, GitHub, GitLab, Microsoft, LinkedIn)&lt;/li&gt;
&lt;li&gt;支持多租户及RBAC授权&lt;/li&gt;
&lt;li&gt;服务健康状态分析&lt;/li&gt;
&lt;li&gt;资源版本偏移检查和Web UI实时可视化&lt;/li&gt;
&lt;li&gt;可自动或手动同步资源到目标状态&lt;/li&gt;
&lt;li&gt;提供命令行工具，自动化集成简单方便&lt;/li&gt;
&lt;li&gt;Webhook 集成 (GitHub, BitBucket, GitLab)&lt;/li&gt;
&lt;li&gt;支持访问令牌&lt;/li&gt;
&lt;li&gt;支持各阶段钩子定义&lt;strong&gt;PreSync, Sync, PostSync hooks to support complex application rollouts (e.g.blue/green &amp;amp; canary upgrades)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;应用事件和API调用审计追踪&lt;/li&gt;
&lt;li&gt;有暴露Prometheus 指标&lt;/li&gt;
&lt;li&gt;Parameter overrides for overriding helm parameters in Git&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;几个核心概念&#34;&gt;几个核心概念&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Application：指定manifest路径下的一组kubernetes资源，是一个CRD&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AppProject：Application的逻辑分组，可以配置一些约束选项，如限制git源、目标集群、namespace和资源类型等，也可以订阅project roles&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;App of Apps：官网文档中的 &lt;a href=&#34;https://argo-cd.readthedocs.io/en/stable/operator-manual/cluster-bootstrapping/&#34;&gt;cluster bootstrapping&lt;/a&gt;，一个Application包含多个子Application，在批量创建Application时比较有用，也可以用来自我管理（官方文档有示例）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;下图是定义了一个Application对象，其指定的仓库目录下包含多种资源，其中的子Application对象所指定的仓库目录又可以包含多种资源，我们可以开启递归的选项，在往仓库添加资源对象的时候自动apply到对应集群当中去&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-ArgoAppOfApp&#34; loading=&#34;lazy&#34; src=&#34;https://940504-1306126584.cos.ap-shanghai.myqcloud.com//940504/posts/image-ArgoAppOfApp.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;注意点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一个ArgoCD实例中，Application名字是唯一的，且只能放在与argo部署的同一名称空间中&lt;/li&gt;
&lt;li&gt;Application中没有指定&lt;code&gt;resources-finalizer.argocd.argoproj.io&lt;/code&gt;终结器，在删除Application的时候是不会删除它所管理的资源，App of Apps也是一样&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;applicationset&#34;&gt;ApplicationSet&lt;/h3&gt;
&lt;p&gt;跨集群和仓库灵活的管理Applications，补充了以集群管理为中心的场景&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
