标签: tekton

在 Kubernetes 中向 ServiceAccount 添加密钥有什么作用?

我正在阅读有关身份验证的 tekton文档,它解释了进行身份验证需要两件事

创建一个秘密文档,下面给出示例

apiVersion: v1
kind: Secret
metadata:
 name: basic-user-pass
 annotations:
   tekton.dev/git-0: https://github.com # Described below
type: kubernetes.io/basic-auth
stringData:
 username: <username>
 password: <password>
Run Code Online (Sandbox Code Playgroud)

将秘密对象添加到服务帐户

apiVersion: v1
kind: ServiceAccount
metadata:
 name: build-bot
secrets:
 - name: basic-user-pass
Run Code Online (Sandbox Code Playgroud)

我对 k8s 中服务帐户的心理模型是,它是用于访问 k8s API 服务器的 JWT。我不明白向 ServiceAccount 添加秘密有什么意义,如何以及为什么使用它。

问题:

  • 对于服务帐户添加机密意味着什么?
  • 为什么向服务帐户添加机密很有用?
  • 为什么 tekton 要求将密钥添加到服务帐户?
  • 谁/什么查看服务帐户机密列表?

kubernetes tekton

16
推荐指数
1
解决办法
1万
查看次数

将 ENV 变量从一个 Tekton Task 步骤传递到下一个步骤?

因此,Tekton Pipelines允许您创建单独的任务并将它们连接到云原生 ci/cd 管道中。它太酷了。但正如你所想象的那样,你认为很简单的事情其实很棘手。例如,我试图将 Kaniko 执行程序作为任务运行,但该执行程序需要特定参数。我可以对这些 args 进行硬编码,但这会降低任务的可重用性,因此我希望之前的任务只是从源和输出读取配置文件,或者为后续任务设置 env 变量。不知道如何做到这一点。就 Kaniko 而言,它真的很棘手,因为您没有任何外壳或任何东西。有什么建议?

这是他们文档中的一个示例任务,我对其进行了调整以显示我正在尝试做的事情。

apiVersion: tekton.dev/v1alpha1
kind: Task
metadata:
  name: example-task-name
spec:
  inputs:
    resources:
      - name: workspace
        type: git
    params:
      - name: pathToDockerFile
        type: string
        description: The path to the dockerfile to build
        default: /workspace/workspace/Dockerfile
  outputs:
    resources:
      - name: builtImage
        type: image
  steps:
    - name: ubuntu-example
      image: ubuntu
      args: "export FOO=bar"
    - image: gcr.io/example-builders/build-example
      command: ["echo $FOO"]
Run Code Online (Sandbox Code Playgroud)

tekton tekton-pipelines

5
推荐指数
1
解决办法
1214
查看次数

从 Tekton 中的另一个管道触发管道

我有 2 个TektonPipelineA. B我想B在管道A完成时触发管道的执行。

我当前的解决方法是Task在管道末尾A将 REST 请求发送到 Tekton EventListener(这已经是我系统的一部分,因为管道A从 GitLab 构建代码,所以它监听 GitLab 事件)。所以我只是屏蔽我的请求,就好像它来自 GitLab 并B触发了管道一样。

我想知道这里是否有更好的方法?我知道管道内的管道功能,但似乎一个管道中的步骤将包含到另一个管道中,这不是我想要的。

提前致谢!

tekton tekton-pipelines

4
推荐指数
1
解决办法
1740
查看次数

失败后继续 Tekton 管道(类似于 jenkins 管道 catchError 行为)

我有一个我想要的管道:

  1. 提供一些资源,
  2. 运行一些测试,
  3. 拆资源。

我希望在第 3 步中的拆卸任务在第 2 步中运行,不管测试是通过还是失败。据我所知,如果前一个任务成功,runAfter只会运行一个任务。

我尝试查看Condition,但似乎找不到示例...

我可以使用的其他任何东西或有人可以指出我的一些例子吗?

jenkins-pipeline tekton tekton-pipelines openshift-pipelines

3
推荐指数
1
解决办法
774
查看次数

执行基于 maven 的端到端测试并在 Tekton Dashboard 中显示结果

我们的端到端测试基于 maven/CucumberJVM。所有工件均使用 Jenkins 构建并保存在 Artifactory 中。那么 tekton 应该适用于一个(或多个)环境

  • 使用 helm 接管并设置基础设施(pods、ingress、configmaps 等)
  • 在环境上运行 Cucumber-end-to-end-tests
  • 显示结果
  • 成功或失败&清理。

我将如何显示测试运行的结果?在 Tekton 仪表板中?已经有插件了吗?作为测试运行的结果,是否可以显示静态 html 文件?

提前感谢您的任何提示。最好的问候,英戈

dashboard e2e-testing tekton

2
推荐指数
1
解决办法
136
查看次数

openshift buildconfig 和管道有什么区别

我是 devops 的新手,正在阅读有关此的 openshift 文档。似乎构建配置和管道(openshift 4.6 中的 tekton)都可以实现源到图像的过程并由 git webhooks 触发。那么openshift buildconfig 和pipeline 有什么区别呢?

PS:刚刚完成了openshift上的pipeline教程,整个过程没有创建build或buildconfig资源。

openshift openshift-enterprise devops tekton

2
推荐指数
1
解决办法
146
查看次数

如何使用预定义的 GitLab CI 变量和流入 GitLab Pipeline 日志的 Tekton 日志直接从 GitLab CI 触发 Tekton Pipeline

我们有一个正在运行的 AWS EKS(使用 Pulumi 设置),我们在其中安装了 Tekton,如云原生 Buildpacks Tekton 文档中所述。示例项目可用

我们的 Tekton 管道配置如下(也源自Cloud Native Buildpacks Tekton 文档):

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: buildpacks-test-pipeline
spec:
  params:
    - name: IMAGE
      type: string
      description: image URL to push
    - name: SOURCE_URL
      type: string
      description: A git repo url where the source code resides.
    - name: SOURCE_REVISION
      description: The branch, tag or SHA to checkout.
      default: ""
  workspaces:
    - name: source-workspace # Directory where application source is located. …
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci kubernetes amazon-eks tekton

2
推荐指数
1
解决办法
3713
查看次数

CI 管道(GitHub Actions、Tekton 等)中的 argocd app create 抛出“PermissionDenied desc = 权限被拒绝:应用程序、创建、默认/myapp”

从我们的 Tekton 管道中,我们希望使用 ArgoCD CLI 来动态argocd app createargocd app sync基于所构建的应用程序。我们通过向ConfigMap添加 a 来创建一个新用户,如文档中所述accounts.tekton: apiKeyargocd-cm

kubectl patch configmap argocd-cm -n argocd -p '{"data": {"accounts.tekton": "apiKey"}}'
Run Code Online (Sandbox Code Playgroud)

然后我们为tekton用户创建了一个令牌:

argocd account generate-token --account tekton
Run Code Online (Sandbox Code Playgroud)

将此令牌作为 the passwordusername tekton我们做了argocd login类似的事情

argocd login $(kubectl get service argocd-server -n argocd --output=jsonpath='{.status.loadBalancer.ingress[0].hostname}') --username=tekton --password="$TOKEN";
Run Code Online (Sandbox Code Playgroud)

现在,在我们的 Tekton 管道中(但我们猜测,考虑到非管理员用户的使用,这对于所有其他 CI 来说都是相同的),如果我们运行,我们会收到以下错误argocd app create

$ argocd app create microservice-api-spring-boot --repo https://gitlab.com/jonashackt/microservice-api-spring-boot-config.git --path deployment --dest-server https://kubernetes.default.svc …
Run Code Online (Sandbox Code Playgroud)

continuous-deployment kubernetes gitops tekton argocd

2
推荐指数
1
解决办法
7970
查看次数