第 6 章 为通用或 GitHub Webhook 创建 secret
您可以创建一个可与通用或 GitHub Webhook 搭配使用的 secret,以便在 Git 存储库中触发应用构建。根据用于应用程序代码的 Git 托管平台类型,JWS Operator 提供了一个 genericWebhookSecret
参数,以及一个 githubWebhookSecret
参数,可用于在 web 应用程序的自定义资源文件中指定 secret。
流程
创建编码的 secret 字符串:
-
创建名为 的文件,如
secret.txt
。 在
secret.txt
文件中,以纯文本形式输入 secret 字符串。例如:
qwerty
qwerty
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要对字符串进行编码,请输入以下命令:
base64 secret.txt
base64 secret.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的 命令显示编码的字符串。
例如:
cXdlcnR5Cg==
cXdlcnR5Cg==
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
创建名为 的文件,如
创建定义类型为
Secret
的secret.yaml
文件。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在上例中,
jws-secret
是 secret 的名称,cXdlcnR5Cg==
是编码的 secret 字符串。运行以下命令来创建 secret:
oc create -f secret.yaml
oc create -f secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的 命令会显示一个消息,以确认创建了该机密。
例如:
secret/jws-secret created
secret/jws-secret created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
获取 Webhook 的 URL:
oc describe BuildConfig | grep webhooks
oc describe BuildConfig | grep webhooks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令以以下格式生成 Webhook URL:
https://<host>:<port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/generic
https://<host>:<port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/generic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个名为 的最小 JSON 文件,如
payload.json
:{}
{}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要向 Webhook 发送请求,请输入以下
curl
命令:curl -H "X-GitHub-Event: push" -H "Content-Type: application/json" -k -X POST --data-binary @payload.json https://<host>:<port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/generic
curl -H "X-GitHub-Event: push" -H "Content-Type: application/json" -k -X POST --data-binary @payload.json https://<host>:<port>/apis/build.openshift.io/v1/namespaces/<namespace>/buildconfigs/<name>/webhooks/<secret>/generic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在上例中,
payload.json
是您创建的最小 JSON 文件的名称。将 URL 字符串中的
<host
>、
> 替换为适合您的环境的值。将<port
>、<namespace
> 和 <name<secret
> 替换为您为 Webhook 创建的 secret 的名称。前面的命令以 JSON 格式生成以下类型的 Webhook 响应:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow