- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的一项任务中使用来自私有(private)容器注册表的容器镜像。
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: echo-hello-world
spec:
steps:
- name: echo
image: de.icr.io/reporting/status:latest
command:
- echo
args:
- "Hello World"
但是当我在 IBM Cloud Delivery Pipeline (Tekton) 中运行此任务时,无法拉取图像
message: 'Failed to pull image "de.icr.io/reporting/status:latest": rpc error: code = Unknown desc = failed to pull and unpack image "de.icr.io/reporting/status:latest": failed to resolve reference "de.icr.io/reporting/status:latest": failed to authorize: failed to fetch anonymous token: unexpected status: 401 Unauthorized'
我阅读了几个教程和博客,但到目前为止找不到解决方案。这可能是我需要完成的,以便 IBM Cloud Delivery Pipeline (Tekton) 可以访问我的私有(private)容器注册表:https://tekton.dev/vault/pipelines-v0.15.2/auth/#basic-authentication-docker
到目前为止,我已经在我的 .tekton 目录中创建了一个 secret.yaml 文件:
apiVersion: v1
kind: Secret
metadata:
name: basic-user-pass
annotations:
tekton.dev/docker-0: https://de.icr.io # Described below
type: kubernetes.io/basic-auth
stringData:
username: $(params.DOCKER_USERNAME)
password: $(params.DOCKER_PASSWORD)
我也在创建一个 ServiceAccount
apiVersion: v1
kind: ServiceAccount
metadata:
name: default-runner
secrets:
- name: basic-user-pass
在我的触发器定义中,我告诉管道使用 default-runner
ServiceAccount:
apiVersion: tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
name: theTemplateTrigger
spec:
resourcetemplates:
- apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: pipelinerun-$(uid)
spec:
serviceAccountName: default-runner
pipelineRef:
name: hello-goodbye
最佳答案
我找到了一种将我的 API key 传递到我的 IBM Cloud Delivery Pipeline (Tekton) 的方法,我的管道中的任务现在能够从我的私有(private)容器注册表中提取容器镜像。
这是我的工作触发器模板:
apiVersion: tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
name: theTemplateTrigger
spec:
params:
- name: pipeline-dockerconfigjson
description: dockerconfigjson for images used in .pipeline-config.yaml
default: "eyJhdXRocyI6e319" # ie. {"auths":{}} base64 encoded
resourcetemplates:
- apiVersion: v1
kind: Secret
data:
.dockerconfigjson: $(tt.params.pipeline-dockerconfigjson)
metadata:
name: pipeline-pull-secret
type: kubernetes.io/dockerconfigjson
- apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: pipelinerun-$(uid)
spec:
pipelineRef:
name: hello-goodbye
podTemplate:
imagePullSecrets:
- name: pipeline-pull-secret
它首先定义了一个名为pipeline-dockerconfigjson
的参数:
params:
- name: pipeline-dockerconfigjson
description: dockerconfigjson for images used in .pipeline-config.yaml
default: "eyJhdXRocyI6e319" # ie. {"auths":{}} base64 encoded
第二部分将传递给这个参数的值变成一个 Kubernetes secret:
- apiVersion: v1
kind: Secret
data:
.dockerconfigjson: $(tt.params.pipeline-dockerconfigjson)
metadata:
name: pipeline-pull-secret
type: kubernetes.io/dockerconfigjson
然后这个 secret 被推送到 PodTemplate 的 imagePullSecrets
字段。
最后一步是使用有效的 dockerconfigjson
填充参数,这可以在 Delivery Pipeline UI (IBM Cloud UI) 中完成。
要为我的注册表 de.icr.io
创建一个有效的 dockerconfigjson
,我必须使用以下 kubectl 命令:
kubectl create secret docker-registry mysecret \
--dry-run=client \
--docker-server=de.icr.io \
--docker-username=iamapikey \
--docker-password=<MY_API_KEY> \
--docker-email=<MY_EMAIL> \
-o yaml
然后在输出中有一个有效的 base64 编码的 .dockerconfigjson
字段。
关于ibm-cloud - 如何从 IBM Cloud Delivery Pipeline (Tekton) 访问私有(private) Container Registry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71718042/
在 Tekton 中,可以设置一个包含多个任务的管道,这些任务可以(可能)并行运行并访问同一工作区。但是,文档并没有完全清楚这种情况下会发生什么。它会“锁定”工作区并强制一个任务等待另一个任务使用它完
我有两个不同的任务,我想将第一个任务的 taskRun 名称传递给第二个任务。我想知道是否有办法做到这一点。 最佳答案 taskRun 名称可用作 variable你可以将它作为 task resul
所以Tekton Pipelines允许您创建单个任务并将它们连接到云原生 ci/cd 管道。它太酷了。但正如你所想象的那样,你认为很简单的事情其实很棘手。例如,我试图将 Kaniko 执行程序作为任
前面我们创建的两个任务 test 和 build-and-push 都已经完成了,我们还可以创建一个流水线来将这两个任务组织起来,形成一个流水线,这里就是我们要使用的 Pipeline 这个 C
最近我对 Tekton 很感兴趣。 但是,当我使用 java Fabric8.tekton api 实现 Task 时,出现了一些问题。 在 TaskBuilder 类中存在以容器(withConta
我在 gitlab 管道中有以下代码,这会导致某种竞争条件: kubectl apply -f pipelineRun.yaml tkn pipelinerun logs -f pipeline-ru
我们的端到端测试基于 maven/CucumberJVM。所有工件都是使用 Jenkins 构建的,并保存在 Artifactory 中。那么 tekton 应该适用于一种(或多种)环境 使用 hel
我们的端到端测试基于 maven/CucumberJVM。所有工件都是使用 Jenkins 构建的,并保存在 Artifactory 中。那么 tekton 应该适用于一种(或多种)环境 使用 hel
我已经在私有(private) kubernetes 集群上安装了 Tekton。之后我想创建第一个资源但遇到异常: 发生内部错误:调用 webhook "webhook.tekton.dev"失败:
我有一个我想要的管道: 提供一些资源, 运行一些测试, 拆资源。 我希望第 3 步中的拆卸任务运行 不管 测试是否通过或失败,在第 2 步。据我所知 runAfter如果前一个任务成功,则只运行一个任
我正在尝试在我的一项任务中使用来自私有(private)容器注册表的容器镜像。 apiVersion: tekton.dev/v1beta1 kind: Task metadata: name:
我正在尝试在我的一项任务中使用来自私有(private)容器注册表的容器镜像。 apiVersion: tekton.dev/v1beta1 kind: Task metadata: name:
总结: 我已经有一个在 openshift 3.11 提供程序中运行的“静态 jenkins 服务器”类型 jenkins-x 的设置。集群崩溃了,我想在我的集群中重新安装 jenkins-x,但现在
在我们的 Tekton 管道中,我们希望使用 ArgoCD CLI 根据构建的应用程序动态执行 argocd 应用程序创建 和 argocd 应用程序同步。我们创建了一个新用户as described
我是一名优秀的程序员,十分优秀!