提交 63dc621b 编写于 作者: Y yJunS

Automated deployment to GitHub Pages on 1596620094

上级 619da355
......@@ -1846,8 +1846,11 @@ RU5ErkJggg==" />
<a href="/event/beijing-2019-08-24/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/kaiyuan.jpg"></img>
<a href="/event/beijing-2019-07-27/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/ci-cd.jpeg"></img>
</a>
......@@ -1860,21 +1863,18 @@ RU5ErkJggg==" />
<a href="/event/beijing-2019-06-22/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/ci-cd.jpeg"></img>
<a href="/event/beijing-2019-08-24/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/kaiyuan.jpg"></img>
</a>
<a href="/event/beijing-2019-07-27/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<a href="/event/beijing-2019-06-22/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/ci-cd.jpeg"></img>
</a>
</div>
</div>
</div>
......
......@@ -25,6 +25,19 @@
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/",
"title": "在 Kubernetes 上使用 Argo 实现 CI/CD",
"type": "wechat",
"date": "2020-08-05 00:00:00 +0000 UTC",
"tags": ["Docker", "Kubernetes", "Argo", "Continuous Integration", "Continuout Delivery"],
"description": "",
"content": " 持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。\nArgo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。\nargoproj/argo\nArgo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。\nBouweCeunen/argo-continuous-integration\nArgo 工作流 Argo 拥有自己的 CRD,称其为工作流。它具有由一个 generateName 组成的元数据。它将作为在工作流步骤中运行节点的名称前缀。它可以定义 volumns,如同你在普通的 Kubernetes 上下文中指定那样。它们可以在定义后当做模板来使用。工作流中的 arguments 可以包含你的仓库名称,版本号等信息。在配置正确后,你可以开始定义工作流步骤中的 templates。你也可以定义一个模板,这个模板包含我在本例中所做的其他模板。定义一个 cicd 模板作为入口。这个模板包含多个步骤,依次包含所有其他的模板。每一个模板都有一个输入参数,用来在工作流步骤中传递数据。这取决于你定义多少步骤。需要记住的是每个步骤都运行在它自己的 Docker 容器中,充分利用你的 Kubernetes 集群资源而不必在 AWS 上拆分 EC2 实例。类似这样的事情在例如 Jenkins 上会是一个问题。\n\u0026lsquo;checkout\u0026rsquo; 模板将会拉取一个仓库然后将其传递给其他需要使用的模板。它也可以传递到 git commit 它之后会被用作一个镜像 tag 。‘build-push-docker’ 将会构建和推送 Docker 容器到 Docker Registry。运行测试的话,如果所有步骤执行成功你将会得到一个 ‘run-tests’ 的模板,它将会被 ‘deploy-kubernetes’ 模板部署到你的 Kubernetes 集群。\napiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: namespace: argo generateName: crypto-gathering-backend-- spec: hostNetwork: true serviceAccountName: argo entrypoint: cicd volumes: - name: docker-config secret: secretName: regcred arguments: parameters: - name: repo value: [git@bitbucket.org](mailto:git@bitbucket.org):bouwe_ceunen/crypto-gathering-backend.git - name: revision value: master - name: image-name-backend value: docker-registry.k8s.bouweceunen.com/crypto-gathering/crypto-gathering-backend templates: - name: cicd steps: - - name: checkout template: checkout - - name: build-push-docker template: build-push-docker arguments: artifacts: - name: git-repo from: \u0026quot;{{steps.checkout.outputs.artifacts.source}}\u0026quot; parameters: - name: image-tag value: \u0026quot;{{steps.checkout.outputs.parameters.tag}}\u0026quot; - - name: run-tests template: run-tests arguments: artifacts: - name: git-repo from: \u0026quot;{{steps.checkout.outputs.artifacts.source}}\u0026quot; parameters: - name: image-tag value: \u0026quot;{{steps.checkout.outputs.parameters.tag}}\u0026quot; - - name: deploy-kubernetes template: deploy-kubernetes arguments: artifacts: - name: git-repo from: \u0026quot;{{steps.checkout.outputs.artifacts.source}}\u0026quot; parameters: - name: image-tag value: \u0026quot;{{steps.checkout.outputs.parameters.tag}}\u0026quot; Artifactory Library Argo 使用 ‘artifactory library’ 存储步骤间执行状态。它会使下一个步骤使用上个步骤构建的东西成为可能。所有的步骤在 Kubernetes 它们自身的 Docker 容器运行,所以状态可以通过一个 artifact library 传递。这里有一些可以使用的库。其中一个是 AWS S3,但是同样也可以使用例如 Google Cloud Storage 这样的库。所有可用的库都在 GitHub 页面列出(译者:该链接已 404,请移步 Argo GitHub 查看)。运行了一部分 CI/CD 流水线之后,我开始想知道它是怎样影响我的 S3 存储的。如果你也想知道,你只需要很少的时间就能想出来。CI/CD 流水线结束后,产物已不再需要了。我写了一个小的定时任务用来每次删除我的 S3 bucket,以及清理工作流这样它们就不会出现在 Argo UI。下面的 ConfigMap 展示了 Argo 工作流控制器的配置。\napiVersion: v1 kind: ConfigMap metadata: name: workflow-controller-configmap namespace: argo data: config: | artifactRepository: s3: bucket: k8s-argo-artifacts-bucket.bouweceunen.com endpoint: s3.amazonaws.com executor: resources: requests: cpu: 100m memory: 100Mi limits: cpu: 400m memory: 800Mi Git 检出 首先,检出 git 仓库。这对构建 Docker 容器以及使用仓库中的 Ansible 脚本执行部署来说是必须的。为了让 Argo 获取一些例如 Bitbucket 账号这样的私有信息,需要有相应的凭据。这可以通过在模板中定义 ‘git’ 来实现。‘sshPrivateKeySecret’ 获取 id_rsa key,用来访问私有仓库。在这个例子中,则是从一个名为 ‘bitbucket-creds’ 的 Kubernetes Secret。id_rsa 存储的秘钥同样也可以存储 Kubernetes Secrets 的其他值。然后作为一个 artifact 输出该仓库然后暴露出后面被用来作为镜像 tag 的 git commit。\n- name: checkout inputs: artifacts: - name: git-repo path: /src git: repo: \u0026quot;{{workflow.parameters.repo}}\u0026quot; revision: \u0026quot;{{workflow.parameters.revision}}\u0026quot; sshPrivateKeySecret: name: bitbucket-creds key: id_rsa metadata: labels: app: argo container: image: alpine/git resources: requests: cpu: 100m memory: 100Mi limits: cpu: 400m memory: 800Mi command: [sh, -c] args: [\u0026quot;cd /src \u0026amp;\u0026amp; git rev-parse --short HEAD \u0026gt; /tmp/git-commit\u0026quot;] outputs: artifacts: - name: source path: /src parameters: - name: tag valueFrom: path: /tmp/git-commit Docker 构建 下一步就是构建你的 Docker 容器以便于他们用于运行你的测试。你可以在 Argo 工作流中定义 ‘sidecars’,它会运行一个 Docker 守护进程这样你可以在自己的 Docker 容器中构建 Docker 容器。这里同样参考了 docker-in-docker 或 dind。为了能够推送容器到你的私有 Docker registry,需要设置凭据。通过在根目录下装载文件完成该工作。当执行 ‘_kubectl create secret docker-registry credentials_’ 在 Kubernetes 中创建一个 Docker Secret 时,会生成一个 .dockerconfigjson。在 ‘_spec_’ 下该卷会挂载到你的根工作流。通过在一个模板中定义它们使得在 Argo 工作流内构建和推送你的 Docker 容器会变得非常简单,如下面写的那样。\n- name: build-push-docker inputs: artifacts: - name: git-repo path: /src parameters: - name: image-tag metadata: labels: app: argo container: image: docker:18.09 resources: requests: cpu: 100m memory: 100Mi limits: cpu: 400m memory: 800Mi workingDir: /src command: [sh, -c] args: [\u0026quot;until docker ps; do sleep 1; done; cd /src \\ \u0026amp;\u0026amp; docker build . -t {{workflow.parameters.image-name-backend}}:{{inputs.parameters.image-tag}} \u0026amp;\u0026amp; docker push {{workflow.parameters.image-name-backend}}:{{inputs.parameters.image-tag}}\u0026quot;] env: - name: DOCKER_HOST value: 127.0.0.1 volumeMounts: - name: docker-config mountPath: /root/.docker/config.json subPath: .dockerconfigjson sidecars: - name: docker-in-docker image: docker:18.09-dind resources: requests: cpu: 100m memory: 100Mi limits: cpu: 400m memory: 800Mi securityContext: privileged: true mirrorVolumeMounts: true 持续集成 CI 部分跟前面的差不多,它不包括用来部署应用程序到运行测试的 Kubernetes 集群的 Ansible。它可以对实际部署执行全面的集成测试。在 Ansible 配置里面,‘kubectl exec’ 配合 ‘yarn test’ 可以用来在匹配的 pod 中执行测试。如果成功,它将自行清理并继续接下来的工作流。我使用 Ansible 而不是工作流本身执行测试的目的在于工作流提供的实际部署细节很少,比如命名空间,集群名字等等。使用 Ansible 你可以自动设置环境的权限,Argo 不需要知道任何关于部署在哪执行以及怎样正确执行测试这样的细节信息。\n- name: run-tests inputs: artifacts: - name: git-repo path: /src parameters: - name: image-tag metadata: labels: app: argo container: image: bouwe/ansible-kubectl-credstash:0.0.1 workingDir: /src command: [sh, -c] args: [\u0026quot;cd /src/ansible \\ \u0026amp;\u0026amp; ansible-playbook run-backend-test-on-k8s.yml -i environments/backend-test/backend-k8s -e docker_image_tag={{inputs.parameters.image-tag}}\u0026quot;] 持续交付 CD 部分会部署应用程序到 Kubernetes。通过执行一个运行 Ansible 的模板来实现。如你所见,这个模板有一些输入,例如 git 仓库,该仓库是从 cicd 模板传下来的。还有镜像 tag 这样 Ansible 就会知道需要把哪个 Docker 容器部署到 Kubernetes。我自己构建了一个定制的容器里面包括 Ansible、Kubectl 以及 credstash,模板的参数使用 credstash 在 yamls 做了定义。\n- name: deploy-kubernetes inputs: artifacts: - name: git-repo path: /src parameters: - name: image-tag metadata: labels: app: argo container: image: bouwe/ansible-kubectl-credstash:0.0.1 resources: requests: cpu: 100m memory: 100Mi limits: cpu: 400m memory: 800Mi workingDir: /src command: [sh, -c] args: [\u0026quot;cd /src/ansible \\ \u0026amp;\u0026amp; ansible-playbook deploy-backend-to-k8s.yml -i environments/backend/backend-k8s -e docker_image_tag={{inputs.parameters.image-tag}}\u0026quot;] 同样重要的是修改 Argo 的 ClusterRole 这样就可以部署到 Kubernetes 集群的所有命名空间里面。ClusterRole 定义如下,这样就可以部署所有的 CRD 例如 Deployments、Services 等等。\napiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: argo-cluster-role rules: - apiGroups: [\u0026quot;*\u0026quot;] resources: - pods - pods/exec - secrets - ingresses - services - jobs - deployments - statefulsets - cronjobs - workflows - configmaps verbs: [\u0026quot;*\u0026quot;] UI 控制面板 argoproj/argo-ui\n如果其他所有的新兴工具那样,都需要从某一个地方开始而对于 Argo 来说则是通过控制面板开始。功能最小化但是包含了所有需要做的东西。Argo 展示了所有工作流以及它们的步骤,它会自动更新所有进度以及日志都可以从这里看到。这样就会非常简单的监控所有的执行情况。当下不要期望太多,我希望他们会一直优化它,它会有很多潜力可待发掘。\n总结 Argo 非常容易理解,它集成在 Kubernetes 使用 Kubernetes 集群实现 CI/CD。它比我们说的 Spinnaker、Istio 等等这些工具更简洁,更轻量。安装简单可以完成所需的工作。Argo 的主程序定义了自己的 CRD,称为 ‘Workflow’。Argo CI 已经不再开发了,但是我创建了一个自己的实现程序。Argo CD 是一个管理部署的 GitOps 方法。与我自己实现的 Argo CI 以及 Argo 工作流一起,在 Kubernetes 集群设置运行一个 CI/CD 流水线成为可能。\n",
"auhtor": "Bouwe Ceunen",
"translator": "0N0thing",
"original": "https://medium.com/axons/ci-cd-with-argo-on-kubernetes-28c1a99616a9",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-03-jenkins-release/",
"title": "Jenkins 长期支持版更新",
......@@ -2872,6 +2885,19 @@
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/tags/argo/",
"title": "Argo",
"type": "tags",
"date": "2020-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
"auhtor": "",
"translator": "",
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/tags/asktheexperts/",
"title": "Asktheexperts",
......@@ -3201,7 +3227,20 @@
"uri": "https://jenkins-zh.cn/tags/continuous-integration/",
"title": "Continuous Integration",
"type": "tags",
"date": "2019-04-03 00:00:00 +0000 UTC",
"date": "2020-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
"auhtor": "",
"translator": "",
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/tags/continuout-delivery/",
"title": "Continuout Delivery",
"type": "tags",
"date": "2020-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -3448,7 +3487,7 @@
"uri": "https://jenkins-zh.cn/tags/docker/",
"title": "Docker",
"type": "tags",
"date": "2020-05-28 00:00:00 +0000 UTC",
"date": "2020-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -4150,7 +4189,7 @@
"uri": "https://jenkins-zh.cn/tags/kubernetes/",
"title": "Kubernetes",
"type": "tags",
"date": "2020-05-20 00:00:00 +0000 UTC",
"date": "2020-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -4969,7 +5008,7 @@
"uri": "https://jenkins-zh.cn/wechat/",
"title": "Wechats",
"type": "wechat",
"date": "2020-08-03 00:00:00 +0000 UTC",
"date": "2020-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -36,6 +36,18 @@
GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用所谓的“小号”。</description>
</item>
<item>
<title>在 Kubernetes 上使用 Argo 实现 CI/CD</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</link>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</guid>
<description>持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。</description>
</item>
<item>
<title>Jenkins 长期支持版更新</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-03-jenkins-release/</link>
......
......@@ -11,6 +11,11 @@
<loc>https://jenkins-zh.cn/about/code-of-conduct/</loc>
</url>
<url>
<loc>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</loc>
<lastmod>2020-08-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-03-jenkins-release/</loc>
<lastmod>2020-08-03T00:00:00+00:00</lastmod>
......@@ -1081,6 +1086,12 @@
<priority>0</priority>
</url>
<url>
<loc>https://jenkins-zh.cn/tags/argo/</loc>
<lastmod>2020-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://jenkins-zh.cn/tags/asktheexperts/</loc>
<lastmod>2019-09-15T00:00:00+00:00</lastmod>
......@@ -1230,7 +1241,13 @@
<url>
<loc>https://jenkins-zh.cn/tags/continuous-integration/</loc>
<lastmod>2019-04-03T00:00:00+00:00</lastmod>
<lastmod>2020-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://jenkins-zh.cn/tags/continuout-delivery/</loc>
<lastmod>2020-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -1342,7 +1359,7 @@
<url>
<loc>https://jenkins-zh.cn/tags/docker/</loc>
<lastmod>2020-05-28T00:00:00+00:00</lastmod>
<lastmod>2020-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -1642,7 +1659,7 @@
<url>
<loc>https://jenkins-zh.cn/tags/kubernetes/</loc>
<lastmod>2020-05-20T00:00:00+00:00</lastmod>
<lastmod>2020-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -2011,7 +2028,7 @@
<url>
<loc>https://jenkins-zh.cn/wechat/</loc>
<lastmod>2020-08-03T00:00:00+00:00</lastmod>
<lastmod>2020-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......
<!DOCTYPE html>
<html class="no-js" lang="zh-CN">
<head>
<meta charset="utf-8">
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-200.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-800.woff2" as="font" type="font/woff2" crossorigin>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Argo - Jenkins 中文社区</title>
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="description" content="共建开放、包容、活跃的 Jenkins 社区">
<meta name="keywords" content="Jenkins,Jenkins中文社区,Jenkins官方公众号,持续集成,持续交付,开源社区,DevOps">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<meta name="generator" content="Hugo 0.53" />
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="https://jenkins-zh.cn/tags/argo/index.xml">
<link href='/dist/main.css' rel='stylesheet' type="text/css" /><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link href="/images/favicon.ico" rel="shortcut icon" type="image/x-icon">
<link rel="icon" type="image/png" href="/images/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/images/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#0594cb">
<meta name="theme-color" content="#ffffff"><style>
img.avatar {
width: 32px;
display: inline;
}
</style>
<meta property="og:title" content="Argo" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/argo/" />
<meta property="og:updated_time" content="2020-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Argo">
<meta itemprop="description" content="">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Argo"/>
<meta name="twitter:description" content=""/>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-4216293-5"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-4216293-5');
var trackOutboundLink = function(id, url) {
console.log("track:", id, url)
gtag('event', 'click', {
'event_category': 'outbound',
'event_label': id,
'transport_type': 'beacon',
'event_callback': function(){document.location = url;}
});
}
</script>
</head>
<body class="ma0 sans-serif bg-primary-color-light">
<nav class="bg-primary-color-dark pv4 w-100" role="navigation">
<div class="center flex-ns flex-wrap items-center justify-start mw9">
<h1 class="dim f3 lh-solid ml0-ns mr0 mr4-l mv0 pl3 pl4-ns">
<a href="https://jenkins-zh.cn" class="link white">
Jenkins 中文社区
</a>
</h1>
<ul class="list ma0 pa0 dn dib-l">
<li class="f5 dib mr4" role="menuitem">
<a href="/wechat/" class="dim link light-silver"
>
博客
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/tutorial/" class="dim link light-silver"
>
教程
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/event/" class="dim link light-silver"
>
活动
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/partner/" class="dim link light-silver"
>
合作伙伴
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/about/" class="dim link light-silver"
>
关于我们
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="http://jenkins.io/zh" class="dim link light-silver"
target="_blank">
Jenkins 官网
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32" class="fill-current v-base" aria-label="External Link">
<path d="M25.152 16.576v5.696q0 2.144-1.504 3.648t-3.648 1.504h-14.848q-2.144 0-3.648-1.504t-1.504-3.648v-14.848q0-2.112 1.504-3.616t3.648-1.536h12.576q0.224 0 0.384 0.16t0.16 0.416v1.152q0 0.256-0.16 0.416t-0.384 0.16h-12.576q-1.184 0-2.016 0.832t-0.864 2.016v14.848q0 1.184 0.864 2.016t2.016 0.864h14.848q1.184 0 2.016-0.864t0.832-2.016v-5.696q0-0.256 0.16-0.416t0.416-0.16h1.152q0.256 0 0.416 0.16t0.16 0.416zM32 1.152v9.12q0 0.48-0.352 0.8t-0.8 0.352-0.8-0.352l-3.136-3.136-11.648 11.648q-0.16 0.192-0.416 0.192t-0.384-0.192l-2.048-2.048q-0.192-0.16-0.192-0.384t0.192-0.416l11.648-11.648-3.136-3.136q-0.352-0.352-0.352-0.8t0.352-0.8 0.8-0.352h9.12q0.48 0 0.8 0.352t0.352 0.8z"></path>
</svg>
</a>
</li>
</ul>
<div class="db dib-ns pl3"><form id="site-search-form" action="" role="search">
<fieldset class="bn ma0 pa0">
<label class="clip" for="email-address">Search</label>
<input type="search" id="search-input" class="needs-js bg-left bg-transparent bn f5 input-reset lh-solid mt3 mt0-ns pl4 pv2 w5 white"
placeholder="搜索文档" type="text"
name="email-address" value="" style="background-image:url('/images/icon-search.png');background-size:16px 16px;">
</fieldset>
</form>
</div>
<div class="list ma0 pa0 dn dib-l"></div>
<span class="absolute mt1 mt2-l pr3 right-0 top-0">
<a class="github-button needs-js link primary-color-dark" href="https://github.com/jenkins-zh/jenkins-zh/" data-size="large" data-show-count="false" aria-label="Star Jenkins WeChat GitHub">Star</a>
</span>
</div>
</nav>
<main role="main" class="content-with-sidebar min-vh-100 pb7 pb0-ns">
<div class="w-100 ph4 pb5 pb6-ns pt1 mt4 pt3-ns">
<div class="flex">
<div class="w-100 w-80-l ph0 ph4-l">
<article class="w-100 nested-copy-line-height nested-links nested-img">
<h1 class="primary-color-dark f2">
Tag: Argo
</h1>
<div class=" mid-gray f5 f4-l">
</div>
</article>
<div class="flex flex-wrap">
<section class="flex-ns flex-wrap justify-between w-100">
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link primary-color dim">在 Kubernetes 上使用 Argo 实现 CI/CD</a>
</h1>
<div class="lh-copy links">
持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</div>
</main>
<footer class="bg-primary-color-dark ph4-ns pt4 relative w-100" role="contentinfo">
<div class="center flex-ns flex-wrap justify-between mw9 w-90">
<div class="pb3 pt4 w-100 w-50-ns">
<div class="b f3 light-gray mb3 nested-links tc">
<a href="https://github.com/jenkins-zh/jenkins-zh/graphs/contributors" target="_blank"
class="link">Jenkins 社区贡献者</a> 维护<br />
</div>
<ul class="center f6 list ma0 mv3 pa0 tc" style="display:none"><li class="dib mr3"><a href="https://github.com/jenkins-zh/jenkins-zh/issues/new" class="dim link light-gray pv2">File an Issue</a></li></ul>
<ul class="center f6 list ma0 mv4 pa0 tc">
<li class="dib mr3">
<a href="https://twitter.com/jenkinsci" target="_blank" class="dim link light-gray pv2">Twitter</a>
</li>
<li class="dib mr3">
<a href="https://www.youtube.com/channel/UC63xz3pq26BBgwB3cnwCoqQ" target="_blank"
class="dim link light-gray pv2">YouTube</a>
</li>
<li class="dib mr3">
<a href="https://space.bilibili.com/433584098" target="_blank" class="dim link light-gray pv2">哔哩哔哩</a>
</li>
<li class="dib mr3">
<a href="https://jcli.jenkins-zh.cn/" target="_blank" class="dim link light-gray pv2">Jenkins
CLI</a>
</li>
<li class="dib mr3">
<a href="https://community.jenkins-zh.cn/" target="_blank" class="dim link light-gray pv2">社区论坛</a>
</li>
</ul>
</div>
<div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">优酷视频
<div>
<a href="https://i.youku.com/jenkinszh" target="_blank">
<img src="/images/youku-qrcode.png" with="100" height="100">
</a>
</div>
</div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">微信公众号
<div>
<a href="https://mp.weixin.qq.com/s/vifdduC3kRGSIMpyL03yVA" target="_blank">
<img src="https://jenkins.io/images/jenkins-wechat.png" with="100" height="100">
</a>
</div>
</div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">微博
<div>
<a href="https://www.weibo.com/jenkinszh" target="_blank">
<img src="/images/weibo-qrcode.png" with="100" height="100">
</a>
</div>
</div>
</div>
</div>
<div class="f7 gray mb5 mb0-ns ph3 w-100"> 
<p class="dib mr4"><a href="http://www.beian.miit.gov.cn/" target="_blank" rel="nofollow" class="dim link light-gray pv2"><u>晋ICP备15000444号-2</u></a></p>
</div>
<div class="bg-primary-color-dark bottom-0 left-0 right-0 dn-l fixed pb3 ph3 w-100"><div class="globalmenu mobilemenu pb3 dn">
<ul class="list hidden dib ph0 ma0 scrolling-touch tc">
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/wechat/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
博客
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/tutorial/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
教程
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/event/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
活动
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/partner/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
合作伙伴
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/about/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
关于我们
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="http://jenkins.io/zh" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
Jenkins 官网
</a>
</li>
</ul>
</div>
<div class="flex dn-l justify-between">
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link mr2 white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".globalmenu">菜单</button>
</div>
<script src="/dist/app.bundle.js" type="text/javascript"></script>
</div>
<script>
((window.gitter = {}).chat = {}).options = {
room: 'jenkinsci/chinese'
};
</script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>
</footer>
<link href="/dist/auto-complete.css" rel="stylesheet">
<script type="text/javascript">
var baseurl = "https:\/\/jenkins-zh.cn";
</script>
<script src="/dist/lunr.js"></script>
<script src="/dist/autocomplete.js"></script>
<script src="/dist/jquery-3.2.1.min.js"></script>
<script src="/dist/search.js"></script>
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6db234f713318730f0e5f6a95bdd8d47";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<script>
(function(){
var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?6276dcef5c15f276644151772390c1f9":"https://jspassport.ssl.qhimg.com/11.0.1.js?6276dcef5c15f276644151772390c1f9";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
</script>
</body>
</html>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Argo on Jenkins 中文社区</title>
<link>https://jenkins-zh.cn/tags/argo/</link>
<description>Recent content in Argo on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 05 Aug 2020 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/argo/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在 Kubernetes 上使用 Argo 实现 CI/CD</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</link>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</guid>
<description>持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。</description>
</item>
</channel>
</rss>
\ No newline at end of file
<!DOCTYPE html><html><head><title>https://jenkins-zh.cn/tags/argo/</title><link rel="canonical" href="https://jenkins-zh.cn/tags/argo/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://jenkins-zh.cn/tags/argo/" /></head></html>
\ No newline at end of file
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/continuous-integration/" />
<meta property="og:updated_time" content="2019-04-03T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2020-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Continuous Integration">
<meta itemprop="description" content="">
......@@ -217,6 +217,36 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link primary-color dim">在 Kubernetes 上使用 Argo 实现 CI/CD</a>
</h1>
<div class="lh-copy links">
持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-03-the-benefits-and-challenges-of-continuous-integration/" class="link primary-color dim">持续集成的收益与挑战</a>
</h1>
......
......@@ -6,11 +6,23 @@
<description>Recent content in Continuous Integration on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 03 Apr 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Wed, 05 Aug 2020 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/continuous-integration/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在 Kubernetes 上使用 Argo 实现 CI/CD</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</link>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</guid>
<description>持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。</description>
</item>
<item>
<title>持续集成的收益与挑战</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/04/2019-04-03-the-benefits-and-challenges-of-continuous-integration/</link>
......
<!DOCTYPE html>
<html class="no-js" lang="zh-CN">
<head>
<meta charset="utf-8">
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-200.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-800.woff2" as="font" type="font/woff2" crossorigin>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Continuout Delivery - Jenkins 中文社区</title>
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="description" content="共建开放、包容、活跃的 Jenkins 社区">
<meta name="keywords" content="Jenkins,Jenkins中文社区,Jenkins官方公众号,持续集成,持续交付,开源社区,DevOps">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<meta name="generator" content="Hugo 0.53" />
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="https://jenkins-zh.cn/tags/continuout-delivery/index.xml">
<link href='/dist/main.css' rel='stylesheet' type="text/css" /><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link href="/images/favicon.ico" rel="shortcut icon" type="image/x-icon">
<link rel="icon" type="image/png" href="/images/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/images/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#0594cb">
<meta name="theme-color" content="#ffffff"><style>
img.avatar {
width: 32px;
display: inline;
}
</style>
<meta property="og:title" content="Continuout Delivery" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/continuout-delivery/" />
<meta property="og:updated_time" content="2020-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Continuout Delivery">
<meta itemprop="description" content="">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Continuout Delivery"/>
<meta name="twitter:description" content=""/>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-4216293-5"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-4216293-5');
var trackOutboundLink = function(id, url) {
console.log("track:", id, url)
gtag('event', 'click', {
'event_category': 'outbound',
'event_label': id,
'transport_type': 'beacon',
'event_callback': function(){document.location = url;}
});
}
</script>
</head>
<body class="ma0 sans-serif bg-primary-color-light">
<nav class="bg-primary-color-dark pv4 w-100" role="navigation">
<div class="center flex-ns flex-wrap items-center justify-start mw9">
<h1 class="dim f3 lh-solid ml0-ns mr0 mr4-l mv0 pl3 pl4-ns">
<a href="https://jenkins-zh.cn" class="link white">
Jenkins 中文社区
</a>
</h1>
<ul class="list ma0 pa0 dn dib-l">
<li class="f5 dib mr4" role="menuitem">
<a href="/wechat/" class="dim link light-silver"
>
博客
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/tutorial/" class="dim link light-silver"
>
教程
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/event/" class="dim link light-silver"
>
活动
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/partner/" class="dim link light-silver"
>
合作伙伴
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/about/" class="dim link light-silver"
>
关于我们
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="http://jenkins.io/zh" class="dim link light-silver"
target="_blank">
Jenkins 官网
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32" class="fill-current v-base" aria-label="External Link">
<path d="M25.152 16.576v5.696q0 2.144-1.504 3.648t-3.648 1.504h-14.848q-2.144 0-3.648-1.504t-1.504-3.648v-14.848q0-2.112 1.504-3.616t3.648-1.536h12.576q0.224 0 0.384 0.16t0.16 0.416v1.152q0 0.256-0.16 0.416t-0.384 0.16h-12.576q-1.184 0-2.016 0.832t-0.864 2.016v14.848q0 1.184 0.864 2.016t2.016 0.864h14.848q1.184 0 2.016-0.864t0.832-2.016v-5.696q0-0.256 0.16-0.416t0.416-0.16h1.152q0.256 0 0.416 0.16t0.16 0.416zM32 1.152v9.12q0 0.48-0.352 0.8t-0.8 0.352-0.8-0.352l-3.136-3.136-11.648 11.648q-0.16 0.192-0.416 0.192t-0.384-0.192l-2.048-2.048q-0.192-0.16-0.192-0.384t0.192-0.416l11.648-11.648-3.136-3.136q-0.352-0.352-0.352-0.8t0.352-0.8 0.8-0.352h9.12q0.48 0 0.8 0.352t0.352 0.8z"></path>
</svg>
</a>
</li>
</ul>
<div class="db dib-ns pl3"><form id="site-search-form" action="" role="search">
<fieldset class="bn ma0 pa0">
<label class="clip" for="email-address">Search</label>
<input type="search" id="search-input" class="needs-js bg-left bg-transparent bn f5 input-reset lh-solid mt3 mt0-ns pl4 pv2 w5 white"
placeholder="搜索文档" type="text"
name="email-address" value="" style="background-image:url('/images/icon-search.png');background-size:16px 16px;">
</fieldset>
</form>
</div>
<div class="list ma0 pa0 dn dib-l"></div>
<span class="absolute mt1 mt2-l pr3 right-0 top-0">
<a class="github-button needs-js link primary-color-dark" href="https://github.com/jenkins-zh/jenkins-zh/" data-size="large" data-show-count="false" aria-label="Star Jenkins WeChat GitHub">Star</a>
</span>
</div>
</nav>
<main role="main" class="content-with-sidebar min-vh-100 pb7 pb0-ns">
<div class="w-100 ph4 pb5 pb6-ns pt1 mt4 pt3-ns">
<div class="flex">
<div class="w-100 w-80-l ph0 ph4-l">
<article class="w-100 nested-copy-line-height nested-links nested-img">
<h1 class="primary-color-dark f2">
Tag: Continuout Delivery
</h1>
<div class=" mid-gray f5 f4-l">
</div>
</article>
<div class="flex flex-wrap">
<section class="flex-ns flex-wrap justify-between w-100">
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link primary-color dim">在 Kubernetes 上使用 Argo 实现 CI/CD</a>
</h1>
<div class="lh-copy links">
持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</div>
</main>
<footer class="bg-primary-color-dark ph4-ns pt4 relative w-100" role="contentinfo">
<div class="center flex-ns flex-wrap justify-between mw9 w-90">
<div class="pb3 pt4 w-100 w-50-ns">
<div class="b f3 light-gray mb3 nested-links tc">
<a href="https://github.com/jenkins-zh/jenkins-zh/graphs/contributors" target="_blank"
class="link">Jenkins 社区贡献者</a> 维护<br />
</div>
<ul class="center f6 list ma0 mv3 pa0 tc" style="display:none"><li class="dib mr3"><a href="https://github.com/jenkins-zh/jenkins-zh/issues/new" class="dim link light-gray pv2">File an Issue</a></li></ul>
<ul class="center f6 list ma0 mv4 pa0 tc">
<li class="dib mr3">
<a href="https://twitter.com/jenkinsci" target="_blank" class="dim link light-gray pv2">Twitter</a>
</li>
<li class="dib mr3">
<a href="https://www.youtube.com/channel/UC63xz3pq26BBgwB3cnwCoqQ" target="_blank"
class="dim link light-gray pv2">YouTube</a>
</li>
<li class="dib mr3">
<a href="https://space.bilibili.com/433584098" target="_blank" class="dim link light-gray pv2">哔哩哔哩</a>
</li>
<li class="dib mr3">
<a href="https://jcli.jenkins-zh.cn/" target="_blank" class="dim link light-gray pv2">Jenkins
CLI</a>
</li>
<li class="dib mr3">
<a href="https://community.jenkins-zh.cn/" target="_blank" class="dim link light-gray pv2">社区论坛</a>
</li>
</ul>
</div>
<div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">优酷视频
<div>
<a href="https://i.youku.com/jenkinszh" target="_blank">
<img src="/images/youku-qrcode.png" with="100" height="100">
</a>
</div>
</div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">微信公众号
<div>
<a href="https://mp.weixin.qq.com/s/vifdduC3kRGSIMpyL03yVA" target="_blank">
<img src="https://jenkins.io/images/jenkins-wechat.png" with="100" height="100">
</a>
</div>
</div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">微博
<div>
<a href="https://www.weibo.com/jenkinszh" target="_blank">
<img src="/images/weibo-qrcode.png" with="100" height="100">
</a>
</div>
</div>
</div>
</div>
<div class="f7 gray mb5 mb0-ns ph3 w-100"> 
<p class="dib mr4"><a href="http://www.beian.miit.gov.cn/" target="_blank" rel="nofollow" class="dim link light-gray pv2"><u>晋ICP备15000444号-2</u></a></p>
</div>
<div class="bg-primary-color-dark bottom-0 left-0 right-0 dn-l fixed pb3 ph3 w-100"><div class="globalmenu mobilemenu pb3 dn">
<ul class="list hidden dib ph0 ma0 scrolling-touch tc">
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/wechat/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
博客
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/tutorial/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
教程
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/event/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
活动
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/partner/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
合作伙伴
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/about/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
关于我们
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="http://jenkins.io/zh" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
Jenkins 官网
</a>
</li>
</ul>
</div>
<div class="flex dn-l justify-between">
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link mr2 white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".globalmenu">菜单</button>
</div>
<script src="/dist/app.bundle.js" type="text/javascript"></script>
</div>
<script>
((window.gitter = {}).chat = {}).options = {
room: 'jenkinsci/chinese'
};
</script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>
</footer>
<link href="/dist/auto-complete.css" rel="stylesheet">
<script type="text/javascript">
var baseurl = "https:\/\/jenkins-zh.cn";
</script>
<script src="/dist/lunr.js"></script>
<script src="/dist/autocomplete.js"></script>
<script src="/dist/jquery-3.2.1.min.js"></script>
<script src="/dist/search.js"></script>
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6db234f713318730f0e5f6a95bdd8d47";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<script>
(function(){
var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?6276dcef5c15f276644151772390c1f9":"https://jspassport.ssl.qhimg.com/11.0.1.js?6276dcef5c15f276644151772390c1f9";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
</script>
</body>
</html>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Continuout Delivery on Jenkins 中文社区</title>
<link>https://jenkins-zh.cn/tags/continuout-delivery/</link>
<description>Recent content in Continuout Delivery on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 05 Aug 2020 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/continuout-delivery/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在 Kubernetes 上使用 Argo 实现 CI/CD</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</link>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</guid>
<description>持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。</description>
</item>
</channel>
</rss>
\ No newline at end of file
<!DOCTYPE html><html><head><title>https://jenkins-zh.cn/tags/continuout-delivery/</title><link rel="canonical" href="https://jenkins-zh.cn/tags/continuout-delivery/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://jenkins-zh.cn/tags/continuout-delivery/" /></head></html>
\ No newline at end of file
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/docker/" />
<meta property="og:updated_time" content="2020-05-28T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2020-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Docker">
<meta itemprop="description" content="">
......@@ -217,6 +217,36 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link primary-color dim">在 Kubernetes 上使用 Argo 实现 CI/CD</a>
</h1>
<div class="lh-copy links">
持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/05/2020-05-28-docker-windows-agents/" class="link primary-color dim">Windows Docker Agent 镜像可以常规使用了</a>
</h1>
......
......@@ -6,11 +6,23 @@
<description>Recent content in Docker on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Thu, 28 May 2020 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Wed, 05 Aug 2020 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/docker/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在 Kubernetes 上使用 Argo 实现 CI/CD</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</link>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</guid>
<description>持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。</description>
</item>
<item>
<title>Windows Docker Agent 镜像可以常规使用了</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/05/2020-05-28-docker-windows-agents/</link>
......
......@@ -216,6 +216,36 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link primary-color dim">在 Kubernetes 上使用 Argo 实现 CI/CD</a>
</h1>
<div class="lh-copy links">
持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/05/2020-05-28-docker-windows-agents/" class="link primary-color dim">Windows Docker Agent 镜像可以常规使用了</a>
</h1>
......
......@@ -292,6 +292,22 @@ var trackOutboundLink = function(id, url) {
</div>
<div class="break-inside-avoid-l nested-copy-line-height mb5">
<h2 class="f3">
<a href="/tags/argo" class="link black hover-blue">
argo <span class="f6 gray"> &#8599;</span>
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link blue">
在 Kubernetes 上使用 Argo 实现 CI/CD
</a>
</h3>
</div>
<div class="break-inside-avoid-l nested-copy-line-height mb5">
<h2 class="f3">
<a href="/tags/asktheexperts" class="link black hover-blue">
......@@ -983,6 +999,12 @@ var trackOutboundLink = function(id, url) {
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link blue">
在 Kubernetes 上使用 Argo 实现 CI/CD
</a>
</h3>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/04/2019-04-03-the-benefits-and-challenges-of-continuous-integration/" class="link blue">
持续集成的收益与挑战
......@@ -992,6 +1014,22 @@ var trackOutboundLink = function(id, url) {
</div>
<div class="break-inside-avoid-l nested-copy-line-height mb5">
<h2 class="f3">
<a href="/tags/continuout-delivery" class="link black hover-blue">
continuout-delivery <span class="f6 gray"> &#8599;</span>
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link blue">
在 Kubernetes 上使用 Argo 实现 CI/CD
</a>
</h3>
</div>
<div class="break-inside-avoid-l nested-copy-line-height mb5">
<h2 class="f3">
<a href="/tags/contributing" class="link black hover-blue">
......@@ -1463,6 +1501,12 @@ var trackOutboundLink = function(id, url) {
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link blue">
在 Kubernetes 上使用 Argo 实现 CI/CD
</a>
</h3>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2020/05/2020-05-28-docker-windows-agents/" class="link blue">
Windows Docker Agent 镜像可以常规使用了
......@@ -2811,6 +2855,12 @@ var trackOutboundLink = function(id, url) {
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link blue">
在 Kubernetes 上使用 Argo 实现 CI/CD
</a>
</h3>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2020/05/2020-05-20-devops-with-docker-kubernetes-and-azure-devops/" class="link blue">
使用 Docker、Kubernetes 和 Azure DevOps 实现 DevOps
......
......@@ -47,6 +47,15 @@
<description></description>
</item>
<item>
<title>Argo</title>
<link>https://jenkins-zh.cn/tags/argo/</link>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/argo/</guid>
<description></description>
</item>
<item>
<title>Asktheexperts</title>
<link>https://jenkins-zh.cn/tags/asktheexperts/</link>
......@@ -266,12 +275,21 @@
<item>
<title>Continuous Integration</title>
<link>https://jenkins-zh.cn/tags/continuous-integration/</link>
<pubDate>Wed, 03 Apr 2019 00:00:00 +0000</pubDate>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/continuous-integration/</guid>
<description></description>
</item>
<item>
<title>Continuout Delivery</title>
<link>https://jenkins-zh.cn/tags/continuout-delivery/</link>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/continuout-delivery/</guid>
<description></description>
</item>
<item>
<title>Contributing</title>
<link>https://jenkins-zh.cn/tags/contributing/</link>
......@@ -428,7 +446,7 @@
<item>
<title>Docker</title>
<link>https://jenkins-zh.cn/tags/docker/</link>
<pubDate>Thu, 28 May 2020 00:00:00 +0000</pubDate>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/docker/</guid>
<description></description>
......@@ -815,7 +833,7 @@
<item>
<title>Kubernetes</title>
<link>https://jenkins-zh.cn/tags/kubernetes/</link>
<pubDate>Wed, 20 May 2020 00:00:00 +0000</pubDate>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/kubernetes/</guid>
<description></description>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/kubernetes/" />
<meta property="og:updated_time" content="2020-05-20T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2020-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Kubernetes">
<meta itemprop="description" content="">
......@@ -217,6 +217,36 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link primary-color dim">在 Kubernetes 上使用 Argo 实现 CI/CD</a>
</h1>
<div class="lh-copy links">
持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/05/2020-05-20-devops-with-docker-kubernetes-and-azure-devops/" class="link primary-color dim">使用 Docker、Kubernetes 和 Azure DevOps 实现 DevOps</a>
</h1>
......
......@@ -6,11 +6,23 @@
<description>Recent content in Kubernetes on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 20 May 2020 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Wed, 05 Aug 2020 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/kubernetes/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在 Kubernetes 上使用 Argo 实现 CI/CD</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</link>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</guid>
<description>持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。</description>
</item>
<item>
<title>使用 Docker、Kubernetes 和 Azure DevOps 实现 DevOps</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/05/2020-05-20-devops-with-docker-kubernetes-and-azure-devops/</link>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/kubernetes/" />
<meta property="og:updated_time" content="2019-04-26T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-05-16T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Kubernetes">
<meta itemprop="description" content="">
......@@ -217,6 +217,36 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link primary-color dim">在 Kubernetes 上使用 Argo 实现 CI/CD</a>
</h1>
<div class="lh-copy links">
持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/05/2020-05-20-devops-with-docker-kubernetes-and-azure-devops/" class="link primary-color dim">使用 Docker、Kubernetes 和 Azure DevOps 实现 DevOps</a>
</h1>
......
......@@ -388,8 +388,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2020/05/2020-05-28-docker-windows-agents/" class="link">
Windows Docker Agent 镜像可以常规使用了
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link">
在 Kubernetes 上使用 Argo 实现 CI/CD
</a>
</li>
......@@ -400,6 +400,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2020/05/2020-05-28-docker-windows-agents/" class="link">
Windows Docker Agent 镜像可以常规使用了
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2020/05/2020-05-20-devops-with-docker-kubernetes-and-azure-devops/" class="link">
使用 Docker、Kubernetes 和 Azure DevOps 实现 DevOps
......
......@@ -407,6 +407,19 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link">
在 Kubernetes 上使用 Argo 实现 CI/CD
</a>
</li>
<li class="db b mt4 mb2 mr2">
Related entries:
</li>
</ul>
</div>
......
......@@ -375,10 +375,10 @@ var trackOutboundLink = function(id, url) {
<li><a href="/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/">在 Kubernetes 上使用 Jenkins </a></li>
<li><a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/">多分支流水线任务对 GitLab SCM 的支持</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/">Jenkins 插件的微基准测试框架</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/">多分支流水线任务对 GitLab SCM 的支持</a></li>
</ul>
</div>
......
......@@ -732,8 +732,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2020/05/2020-05-28-docker-windows-agents/" class="link">
Windows Docker Agent 镜像可以常规使用了
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link">
在 Kubernetes 上使用 Argo 实现 CI/CD
</a>
</li>
......@@ -744,6 +744,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2020/05/2020-05-28-docker-windows-agents/" class="link">
Windows Docker Agent 镜像可以常规使用了
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2020/05/2020-05-20-devops-with-docker-kubernetes-and-azure-devops/" class="link">
使用 Docker、Kubernetes 和 Azure DevOps 实现 DevOps
......
......@@ -251,6 +251,14 @@ var trackOutboundLink = function(id, url) {
</a>
<a href="https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="dib f6 pl1 hover-bg-light-gray br-100" title="在 Kubernetes 上使用 Argo 实现 CI/CD ">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
<path d="M0 0h24v24H0z" fill="none"/>
</svg>
</a>
<a href="https://jenkins-zh.cn/wechat/articles/2020/07/2020-07-31-weekly-release/" class="dib f6 pr1 hover-bg-light-gray br-100" title="Jenkins 每周版更新">
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2020-08-03T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2020-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,36 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="link primary-color dim">在 Kubernetes 上使用 Argo 实现 CI/CD</a>
</h1>
<div class="lh-copy links">
持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。
<a href="/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/08/2020-08-03-jenkins-release/" class="link primary-color dim">Jenkins 长期支持版更新</a>
</h1>
......@@ -454,33 +484,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/06/2020-06-29-generate-jenkins-plugins-word-cloud/" class="link primary-color dim">使用 Python 制作酷炫多彩的 Jenkins 插件词云图</a>
</h1>
<div class="lh-copy links">
Jenkins 插件名称高频关键词有哪些?一切尽在酷炫多彩的词云图
<a href="/wechat/articles/2020/06/2020-06-29-generate-jenkins-plugins-word-cloud/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -6,11 +6,23 @@
<description>Recent content in Wechats on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Mon, 03 Aug 2020 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Wed, 05 Aug 2020 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/wechat/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在 Kubernetes 上使用 Argo 实现 CI/CD</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</link>
<pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-05-ci-cd-with-argo-on-kubernetes/</guid>
<description>持续集成和持续交付是一些人为之努力的目标。它让一切事物变得更简单。当然,市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说,Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
Argo 与众不同的地方在于它管理实际 CI/CD 的方式。它是专门为了 Kubernetes 开发的并且通过 CRD(Custom Resource Definitions)集成到 Kubernetes 中。它定义了一个新的名为‘工作流’的 CRD 。在这个工作流中你可以通过一个 yaml 格式的文件定义你需要执行的操作。每一步均运行在位于 Kubernetes 集群内它自己的 Docker 容器里面。
argoproj/argo
Argo/Argo CD/Argo CI Argo 项目有几个正在开发的项目仓库。Argo 是主项目,聚焦于 Kubernetes 工作流以一种更通用的方式来被使用。Argo CD 是一种处理部署的 GitOps 方法,也就意味着 Kubernetes 集群从版本仓库镜像到任意位置时 git 仓库是事实上的唯一来源。Argo CI 看起来已经不再维护了,但是它曾经是作为 CI 工具用来基于 git 变更触发工作流的。为了安装 CI/CD 工具,你需要 Argo 以及它的工作流,同样也一个需要触发它们的 CI 工具。因为 Argo CI 已经没有开发活动了,我自己写了一个 Argo CI,可以通过 Bitbucket webhooks 触发 Argo 工作流。使用自己开发的 CI 工具,我开始试着使用 Argo 构建了一个功能全面的 CI/CD 工具。</description>
</item>
<item>
<title>Jenkins 长期支持版更新</title>
<link>https://jenkins-zh.cn/wechat/articles/2020/08/2020-08-03-jenkins-release/</link>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-08-09T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-08-14T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-14-continuous-testing-what-why-and-how/" class="link primary-color dim">持续测试的那些事</a>
</h1>
<div class="lh-copy links">
持续测试究竟是什么?你又如何实现它呢?
<a href="/wechat/articles/2019/08/2019-08-14-continuous-testing-what-why-and-how/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-09-volunteer-recruitment/" class="link primary-color dim">持续交付黑客松--志愿者招募</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link primary-color dim">持续交付落地实践工作坊</a>
</h1>
<div class="lh-copy links">
Jenkins 中文社区2019第二场工作坊
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-07-09T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-07-14T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link primary-color dim">持续交付落地实践工作坊</a>
</h1>
<div class="lh-copy links">
Jenkins 中文社区2019第二场工作坊
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-09-jenkins-release/" class="link primary-color dim">Jenkins 长期支持版更新</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/06/2019-06-09-github-share/" class="link primary-color dim">在线分享 - 作为一名开源贡献者是如何使用 GitHub 的?</a>
</h1>
<div class="lh-copy links">
这是一场开源事业有缘人的在线分享、交流会
<a href="/wechat/articles/2019/06/2019-06-09-github-share/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-06-05T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-06-09T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/06/2019-06-09-github-share/" class="link primary-color dim">在线分享 - 作为一名开源贡献者是如何使用 GitHub 的?</a>
</h1>
<div class="lh-copy links">
这是一场开源事业有缘人的在线分享、交流会
<a href="/wechat/articles/2019/06/2019-06-09-github-share/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/06/2019-06-05-devops-challenges-in-2019-how-to-overcome-them/" class="link primary-color dim">2019年 DevOps 面临的挑战以及如何战胜它们</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/" class="link primary-color dim">从 Jenkins 到 Jenkins X</a>
</h1>
<div class="lh-copy links">
这是一个关于 dailymotion 从 Jenkins 到 Jenkins X 的旅程,我们遇到的问题,以及我们是如何解决它们的故事
<a href="/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-05-16T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-05-17T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/" class="link primary-color dim">从 Jenkins 到 Jenkins X</a>
</h1>
<div class="lh-copy links">
这是一个关于 dailymotion 从 Jenkins 到 Jenkins X 的旅程,我们遇到的问题,以及我们是如何解决它们的故事
<a href="/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/05/2019-05-16-cloud-agnostic-automated-cicd-for-k8s/" class="link primary-color dim">与云无关的用于 Kubernetes 的自动化 CI/CD </a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="link primary-color dim">应该使用什么 CI/CD 工具?</a>
</h1>
<div class="lh-copy links">
了解典型自动化 CI/CD 部署流水线的组件以及您需要的组件。
<a href="/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-04-29T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-04-30T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="link primary-color dim">应该使用什么 CI/CD 工具?</a>
</h1>
<div class="lh-copy links">
了解典型自动化 CI/CD 部署流水线的组件以及您需要的组件。
<a href="/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/" class="link primary-color dim">使用 Jenkins X 渐进式交付:自动化金丝雀部署</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/" class="link primary-color dim">使用 Zabbix 监控 Jenkins</a>
</h1>
<div class="lh-copy links">
介绍了如何使用 Zabbix 监控 Jenkins
<a href="/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-04-12T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-04-15T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/" class="link primary-color dim">使用 Zabbix 监控 Jenkins</a>
</h1>
<div class="lh-copy links">
介绍了如何使用 Zabbix 监控 Jenkins
<a href="/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/" class="link primary-color dim">简析 Jenkins 专有用户数据库加密算法</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/" class="link primary-color dim">MPL - 模块化的流水线库</a>
</h1>
<div class="lh-copy links">
Jenkins 流水线共享库技术实践
<a href="/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-02-27T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-03-06T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/" class="link primary-color dim">MPL - 模块化的流水线库</a>
</h1>
<div class="lh-copy links">
Jenkins 流水线共享库技术实践
<a href="/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/" class="link primary-color dim">批量修改 Jenkins 任务的技巧</a>
</h1>
......@@ -459,33 +486,6 @@ Jenkins 中文社区邀您参与社区共同成长 在开源盛会开展的同
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/01/2019-01-16-localization-zh-cn-plugin/" class="link primary-color dim">Jenkins 中文语言包</a>
</h1>
<div class="lh-copy links">
Jenkins 中文版本升级通知
<a href="/wechat/articles/2019/01/2019-01-16-localization-zh-cn-plugin/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -216,6 +216,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/01/2019-01-16-localization-zh-cn-plugin/" class="link primary-color dim">Jenkins 中文语言包</a>
</h1>
<div class="lh-copy links">
Jenkins 中文版本升级通知
<a href="/wechat/articles/2019/01/2019-01-16-localization-zh-cn-plugin/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/01/2019-01-30-k8s-jenkins-secet-agent/" class="link primary-color dim">Jenkins 和 Kubernetes -云上的神秘代理</a>
</h1>
......@@ -453,33 +480,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/01/2019-01-16-webhook-firewalls/" class="link primary-color dim">在安全防火墙内通过 WebHook 触发构建</a>
</h1>
<div class="lh-copy links">
谁说局域网里就不能带 GitHub 的 WebHook 玩?
<a href="/wechat/articles/2019/01/2019-01-16-webhook-firewalls/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -216,6 +216,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/01/2019-01-16-webhook-firewalls/" class="link primary-color dim">在安全防火墙内通过 WebHook 触发构建</a>
</h1>
<div class="lh-copy links">
谁说局域网里就不能带 GitHub 的 WebHook 玩?
<a href="/wechat/articles/2019/01/2019-01-16-webhook-firewalls/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/06/2019-06-24-becoming-contributor-newbie-tickets/" class="link primary-color dim">成为一名 Jenkins 贡献者:对新手友好的工单</a>
</h1>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2020-06-24T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2020-06-29T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/06/2020-06-29-generate-jenkins-plugins-word-cloud/" class="link primary-color dim">使用 Python 制作酷炫多彩的 Jenkins 插件词云图</a>
</h1>
<div class="lh-copy links">
Jenkins 插件名称高频关键词有哪些?一切尽在酷炫多彩的词云图
<a href="/wechat/articles/2020/06/2020-06-29-generate-jenkins-plugins-word-cloud/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/06/2020-06-24-jenkins-user-experience-hackfest-documentation-results/" class="link primary-color dim">Jenkins Hackfest 用户体验文档报告</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/05/2020-05-16-a-thank-you-letter-for-jenkins-fans/" class="link primary-color dim">致广大Jenkins 中文社区关注者的感谢信</a>
</h1>
<div class="lh-copy links">
致广大Jenkins 中文社区关注者的感谢信
<a href="/wechat/articles/2020/05/2020-05-16-a-thank-you-letter-for-jenkins-fans/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2020-05-15T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2020-05-16T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/05/2020-05-16-a-thank-you-letter-for-jenkins-fans/" class="link primary-color dim">致广大Jenkins 中文社区关注者的感谢信</a>
</h1>
<div class="lh-copy links">
致广大Jenkins 中文社区关注者的感谢信
<a href="/wechat/articles/2020/05/2020-05-16-a-thank-you-letter-for-jenkins-fans/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/05/2020-05-15-call-for-user-stories-jenkins-is-the-way/" class="link primary-color dim">征集用户故事- Jenkins is the Way</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/04/2020-04-20-weekly-release/" class="link primary-color dim">Jenkins 每周版更新</a>
</h1>
<div class="lh-copy links">
本次更新的版本包括:2.185~2.230
<a href="/wechat/articles/2020/04/2020-04-20-weekly-release/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2020-04-15T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2020-04-20T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/04/2020-04-20-weekly-release/" class="link primary-color dim">Jenkins 每周版更新</a>
</h1>
<div class="lh-copy links">
本次更新的版本包括:2.185~2.230
<a href="/wechat/articles/2020/04/2020-04-20-weekly-release/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/04/2019-04-15-effective-secret-with-vault-and-kubernetes/" class="link primary-color dim">使用 Vault 与 Kubernetes 为密码提供强有力的保障</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/03/2020-03-16-pipeline-authoring-sig-update/" class="link primary-color dim">流水线编撰 SIG 公告</a>
</h1>
<div class="lh-copy links">
带你了解公告 SIG 的变化,从而更好地利用 Jenkins 流水线
<a href="/wechat/articles/2020/03/2020-03-16-pipeline-authoring-sig-update/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2020-03-10T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2020-03-16T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/03/2020-03-16-pipeline-authoring-sig-update/" class="link primary-color dim">流水线编撰 SIG 公告</a>
</h1>
<div class="lh-copy links">
带你了解公告 SIG 的变化,从而更好地利用 Jenkins 流水线
<a href="/wechat/articles/2020/03/2020-03-16-pipeline-authoring-sig-update/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/03/2020-03-10-create-a-ci-cd-pipeline-with-kubernetes-and-jenkins/" class="link primary-color dim">使用 Kubernetes 和 Jenkins 创建一个 CI/CD 流水线</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/02/2020-02-17-happy-second-birthday-jenkins-x/" class="link primary-color dim">Happy Second Birthday Jenkins X!</a>
</h1>
<div class="lh-copy links">
Jenkins X 2019 年终回顾
<a href="/wechat/articles/2020/02/2020-02-17-happy-second-birthday-jenkins-x/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2020-02-14T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2020-02-17T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/02/2020-02-17-happy-second-birthday-jenkins-x/" class="link primary-color dim">Happy Second Birthday Jenkins X!</a>
</h1>
<div class="lh-copy links">
Jenkins X 2019 年终回顾
<a href="/wechat/articles/2020/02/2020-02-17-happy-second-birthday-jenkins-x/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2020/02/2020-02-14-devops-trends-to-watch-for-in-2020/" class="link primary-color dim">展望 2020 年 DevOps 的发展趋势</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/12/2019-12-11-jenkins-health-advisor-by-cloudbees-is-here/" class="link primary-color dim">Jenkins 健康检查顾问</a>
</h1>
<div class="lh-copy links">
CloudBees 推出了一项新的免费服务:Jenkins Health Advisor,帮助您保持 master 节点的健康
<a href="/wechat/articles/2019/12/2019-12-11-jenkins-health-advisor-by-cloudbees-is-here/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-11-29T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-12-11T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/12/2019-12-11-jenkins-health-advisor-by-cloudbees-is-here/" class="link primary-color dim">Jenkins 健康检查顾问</a>
</h1>
<div class="lh-copy links">
CloudBees 推出了一项新的免费服务:Jenkins Health Advisor,帮助您保持 master 节点的健康
<a href="/wechat/articles/2019/12/2019-12-11-jenkins-health-advisor-by-cloudbees-is-here/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/11/2019-11-29-jenkins-cicd-with-git-secrets/" class="link primary-color dim">Jenkins CI/CD 集成 Git Secrets</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/11/2019-11-11-update-center-mirror-announcement/" class="link primary-color dim">Jenkins 插件中心国内镜像源发布</a>
</h1>
<div class="lh-copy links">
忍受不了官方站点下载速度的速速看过来
<a href="/wechat/articles/2019/11/2019-11-11-update-center-mirror-announcement/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-11-08T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-11-11T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/11/2019-11-11-update-center-mirror-announcement/" class="link primary-color dim">Jenkins 插件中心国内镜像源发布</a>
</h1>
<div class="lh-copy links">
忍受不了官方站点下载速度的速速看过来
<a href="/wechat/articles/2019/11/2019-11-11-update-center-mirror-announcement/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/11/2019-11-08-remoting-over-apache-kafka-plugin-with-kafka-launcher-in-kubernetes/" class="link primary-color dim">在 Kubernetes 中通过 Apache Kafka 插件远程处理 Kafka 启动程序</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/09/2019-09-19-introduce-react-plugin-template/" class="link primary-color dim">React Plugin Template,让你可以使用 React 来编写 Jenkins 插件</a>
</h1>
<div class="lh-copy links">
React Plugin Template,让你可以使用 React 来编写 Jenkins 插件
<a href="/wechat/articles/2019/09/2019-09-19-introduce-react-plugin-template/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -44,7 +44,7 @@
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-09-15T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-09-19T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -217,6 +217,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/09/2019-09-19-introduce-react-plugin-template/" class="link primary-color dim">React Plugin Template,让你可以使用 React 来编写 Jenkins 插件</a>
</h1>
<div class="lh-copy links">
React Plugin Template,让你可以使用 React 来编写 Jenkins 插件
<a href="/wechat/articles/2019/09/2019-09-19-introduce-react-plugin-template/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/09/2019-09-16-jenkins-world-contributor-summit-and-ask-the-experts-booth/" class="link primary-color dim">Jenkins World 贡献者峰会及专家答疑展位</a>
</h1>
......@@ -454,33 +481,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-14-continuous-testing-what-why-and-how/" class="link primary-color dim">持续测试的那些事</a>
</h1>
<div class="lh-copy links">
持续测试究竟是什么?你又如何实现它呢?
<a href="/wechat/articles/2019/08/2019-08-14-continuous-testing-what-why-and-how/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册