Tekton 克隆 git 仓库

2023-12-16 05:04
文章标签 仓库 git 克隆 tekton

本文主要是介绍Tekton 克隆 git 仓库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Tekton 克隆 git仓库

介绍如何使用 Tektonhub 官方 git-clone task 克隆 github 上的源码到本地。
在这里插入图片描述

git-clone task yaml文件下载地址:https://hub.tekton.dev/tekton/task/git-clone

查看git-clone task yaml内容:
在这里插入图片描述
点击Install,选择一种方式创建 task
在这里插入图片描述

这里使用kubectl命令创建官方git-clone task

kubectl apply -f \
https://raw.githubusercontent.com/tektoncd/catalog/main/task/git-clone/0.9/git-clone.yaml

查看创建的task

$ kubectl get task
NAME             AGE
git-clone        4h32m

git-clone task创建后,可以通过taskRunpipelineRun进行调用。

非认证方式克隆

公开仓库无需配置认证即可直接克隆,这里以克隆 tekton pipeline 官方仓库为例。

创建一个简单的 taskRun 调用 git-clone task 来执行克隆任务,并向git-clone task传递一些自定义参数:

$ cat git-clone-taskrun.yaml
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:generateName: git-clone-taskrun-
spec:taskRef:name: git-clonepodTemplate:hostNetwork: trueworkspaces:- name: outputemptyDir: {}params:- name: urlvalue: https://github.com/tektoncd/pipeline.git- name: revisionvalue: main- name: subdirectoryvalue: pipeline- name: httpProxyvalue: http://192.168.72.1:7890/- name: httpsProxyvalue: http://192.168.72.1:7890/- name: deleteExistingvalue: "true"- name: gitInitImage#value: gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:latestvalue: dyrnq/tektoncd-pipeline-cmd-git-init:latest

所有的参数都是在git-clone task中已经预定义的,这里只需传参即可,参数说明:

  • workspaces:必选,为克隆的代码指定一个卷,这里作为演示,使用emptyDir类型的卷
  • url:指定克隆的git仓库地址
  • revision:指定克隆的git仓库分支
  • httpProxy:克隆github很有可能由于众所周知的原因失败,这里使用本地代理,可选
  • subdirectory:配置代码克隆到指定子目录下
  • gitInitImage:指定执行克隆任务的docker镜像,由于官方镜像无法访问,可以在dockerhub搜索可用镜像

应用yaml文件

kubectl create -f git-clone-taskrun.yaml

登录tekton dashboard 确认 taskRun 任务成功,说明已经成功克隆远程仓库到本地:
在这里插入图片描述

basic-auth 认证方式克隆

前置要求:

  • 已准备远程私有 GitHub 仓库
  • 用于访问远程存储库的 GitHub 个人访问令牌 (PAT)。

以basic-auth认证方式为例,注意该pipeline依然调用官方git-clone task执行克隆任务。

1. 创建secret和serviceaccount账号

设置创建 github-pat-secret 时使用的所需环境变量

export GITHUB_USERNAME='<your github.com username>'
export TEKTON_GITHUB_PAT='<your github.com username personal accesstoken>'

创建可以保存您的 GitHub.com 凭据的 Kubernetes secret:

cat >git-clone-sa.yaml<<EOF
apiVersion: v1
kind: Secret
metadata:name: basic-user-passannotations:tekton.dev/git-0: https://github.com
type: kubernetes.io/basic-auth
stringData:username: $GITHUB_USERNAMEpassword: $TEKTON_GITHUB_PAT
---
apiVersion: v1
kind: ServiceAccount
metadata:name: github-bot
secrets:- name: basic-user-pass
EOF

应用yaml文件

kubectl apply -f git-clone-sa.yaml

2. 创建Pipeline和PipelineRun

官方参考:
https://github.com/tektoncd/catalog/blob/main/task/git-clone/0.9/samples/git-clone-checking-out-a-branch.yaml

创建 git 克隆PipelinePipelineRun,该管道将从私有 GitHub 存储库克隆并查看代码中README文件内容:

$ cat git-clone-pipelinerun.yaml
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:name: cat-branch-readme
spec:params:- name: repo-urltype: stringdescription: The git repository URL to clone from.- name: branch-nametype: stringdescription: The git branch to clone.- name: httpProxytype: stringdescription: The httpProxy params.- name: httpsProxytype: stringdescription: The httpsProxy params.- name: gitInitImagetype: stringdescription: The gitInitImage params.workspaces:- name: shared-datatasks:- name: fetch-repotaskRef:name: git-cloneworkspaces:- name: outputworkspace: shared-dataparams:- name: urlvalue: $(params.repo-url)- name: revisionvalue: $(params.branch-name)- name: httpProxyvalue: $(params.httpProxy)- name: httpsProxyvalue: $(params.httpsProxy)- name: gitInitImagevalue: $(params.gitInitImage)- name: cat-readmerunAfter: ["fetch-repo"]workspaces:- name: sourceworkspace: shared-datataskSpec:workspaces:- name: sourcesteps:- image: zshusers/zsh:4.3.15script: |#!/usr/bin/env zshcat $(workspaces.source.path)/README.md
---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:generateName: git-clone-checking-out-a-branch-
spec:serviceAccountName: github-botpipelineRef:name: cat-branch-readmepodTemplate:securityContext:fsGroup: 65532workspaces:- name: shared-datavolumeClaimTemplate:spec:accessModes:- ReadWriteOnceresources:requests:storage: 1Giparams:- name: repo-urlvalue: https://github.com/willzhang/test.git- name: branch-namevalue: main- name: httpProxyvalue: http://192.168.72.1:7890/- name: httpsProxyvalue: http://192.168.72.1:7890/- name: gitInitImagevalue: registry.cn-shenzhen.aliyuncs.com/cnmirror/git-init:latest

参数说明:

  • workspaces:必选,PipelineRun中定义了volumeClaimTemplate类型的workspaces,能够动态申请所需的持久卷,使用kubectl get storageclass命令,确认k8s集群有默认可用的storageclass资源可用,本示例输出为openebs-hostpath (default)
  • serviceAccountName:必选,注意PipelineRun中定义了serviceAccountName: github-bot参数,用于执行任务
  • url:指定克隆的私有github仓库地址
  • revision:指定克隆的git仓库分支
  • gitInitImage:指定执行克隆任务的docker镜像,由于官方镜像无法访问,可以在dockerhub搜索可用镜像

应用yaml文件

kubectl create -f git-clone-pipelinerun.yaml

登录dashbord确认克隆任务是否成功
在这里插入图片描述

ssh-auth认证方式

1. 创建secret和serviceaccount账号

任意一台linux机器,生成 SSH 密钥对

ssh-keygen -t rsa -b 4096 -f id_rsa -q -N ""

将公钥id_rsa.pub上传至github

root@kube001:~# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCXygldZ3tt0ovNLk44pQlJkFzglT71sAh2OcjfpbbloLtQ7JlPwakzW0jBqsK/dOIuqLmMm176diQauX32JrGL8BcOEj0Mp5OGWIwB+lmpMVqd2UMVaPhsfu0q4hmXYUdFiqm2MB68sUJ1/P5FsFYb6N1ZJ/Gi4oXwL9F6BTEzE0eDE6PVHwQRp+2NM7zBkHVx1XJCOzfX4+Xzu93xMid/Zp5Lfsafxx89PDznk6fUtqd53TjoMpxxxxxxx5SLAPVbE0lh8SzHEGXbNGzmQeN2waWLUAw6VaXhgDPApFZ2Id43Ug3+v9dEY79mvK4DZm81Kzsqb7bffWLB5uPr3P5r9bkh8rcajmkd44QU642XFmuGWiQ4MMz0SMerjLEoKn8kEBY6C17qPEcb4kpBWF3hLfGI2XYnxhtvjDSuYbzIvsGzG/lW4AdHyEQcjm4YyVTLPfvwO9mQeZqdsxdYHOrxkjEgGwpVFbe5cRt/1b0IZrBDAfX5+cZsViHWVmtdisbbPkTSQTngBphIhTp1LIVvDNmgYYGQ2I/jlwSHfSLuGi0pbgIdbV8RKmipmAkTNj/4aTLOnqnYyCc7BMTEJZzeIiFu1tkjZULlhwnILTpsYaQe9NDKEHl1Q== root@kube001

配置示例:https://github.com/settings/keys
在这里插入图片描述

获取私钥内容,复制到Secret中ssh-privatekey字段。

root@kube001:~# cat /root/.ssh/id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

创建secret和serviceaccount

$ cat git-clone-sa.yaml
apiVersion: v1
kind: Secret
metadata:name: ssh-keyannotations:tekton.dev/git-0: github.com
type: kubernetes.io/ssh-auth
stringData:ssh-privatekey: |-----BEGIN OPENSSH PRIVATE KEY-----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-----END OPENSSH PRIVATE KEY-----
---
apiVersion: v1
kind: ServiceAccount
metadata:name: github-bot
secrets:- name: ssh-key

应用yaml文件

kubectl apply -f git-clone-sa.yaml

2.创建Pipeline和PipelineRun

创建 git 克隆PipelineRun,该管道将从私有 GitHub 存储库克隆并简单列出内容:

$ cat git-clone-pipelinerun.yaml
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:name: cat-branch-readme
spec:params:- name: repo-urltype: stringdescription: The git repository URL to clone from.- name: branch-nametype: stringdescription: The git branch to clone.- name: gitInitImagetype: stringdescription: The gitInitImage params.workspaces:- name: shared-datatasks:- name: fetch-repotaskRef:name: git-cloneworkspaces:- name: outputworkspace: shared-dataparams:- name: urlvalue: $(params.repo-url)- name: revisionvalue: $(params.branch-name)- name: gitInitImagevalue: $(params.gitInitImage)- name: cat-readmerunAfter: ["fetch-repo"]workspaces:- name: sourceworkspace: shared-datataskSpec:workspaces:- name: sourcesteps:- image: zshusers/zsh:4.3.15script: |#!/usr/bin/env zshcat $(workspaces.source.path)/README.md
---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:generateName: git-clone-checking-out-a-branch-
spec:serviceAccountName: github-botpipelineRef:name: cat-branch-readmepodTemplate:securityContext:fsGroup: 65532workspaces:- name: shared-datavolumeClaimTemplate:spec:accessModes:- ReadWriteOnceresources:requests:storage: 1Giparams:- name: repo-urlvalue: git@github.com:willzhang/test.git- name: branch-namevalue: main- name: gitInitImagevalue: registry.cn-shenzhen.aliyuncs.com/cnmirror/git-init:latest

参数说明:

  • 注意修改克隆URL地址格式为:git@github.com:willzhang/test.git
  • 去除httproxy部分,以免影响ssh认证

应用yaml文件

kubectl create -f git-clone-pipelinerun.yaml

登录dashbord 查看参数信息,确认克隆任务是否成功
在这里插入图片描述

显示 git 仓库 README 信息
在这里插入图片描述

参考:https://redhat-scholars.github.io/tekton-tutorial/tekton-tutorial/private_reg_repos.html

这篇关于Tekton 克隆 git 仓库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/499201

相关文章

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

如何删除不小心上传到git远程仓库中的.idea .iml文件

如果在开始的时候不配置,gitignore文件或者文件配置不正确,初始化上传的时候就会有一些不必要的信息上传上去 如果已经存在了一些文件在git远程仓库中,如。idea,.iml文件等。 首先在项目中定义一个  .gitignore文件,简单的实例如下也可以用idea中的gitignore插件 .DS_Storeclasses/*.settings/target/.classpath