在azuredevops服务器管道任务中,我有一个任务是从kubernetes get命令输出创建.csv文件,并且该文件按预期工作。正在寻找一种方法将此 .csv 表格式发布到 Azure-wiki,并且该管道需要每 5 分钟安排一次,以便 wiki 将使用当前详细信息动态更新。
- bash: |
kubectl get vpa -A -o json | jq -r '["Namespace", "AppName", "ContainerName", "LowerBoundCPU","LowerBoundMemmory", "upperBoundCPU", "upperBoundmemmory", "TargetCPU", "TargetMem"], (.items[] | [.metadata.namespace, .metadata.name] +(.status.recommendation.containerRecommendations[] | [.containerName, .lowerBound.cpu, .lowerBound.memory, .upperBound.cpu, .upperBound.memory, .target.cpu, .target.memory])) | @csv' >output.csv
displayName: 'VPA Report Creation'
寻找一种方法将此 .csv 表格式发布到 Azure-wiki
这应该可以通过 REST API 端点实现 Pages - 更新
在
VPA Report Creation
任务之后,添加一个脚本任务以将 output.csv
转换为可推送到 Azure Wiki 的 Markdown 表格格式。curl
或其他 HTTP 客户端调用 Azure DevOps REST API 来更新 Wiki 页面。
schedules:
- cron: "*/5 * * * *"
displayName: Every 5 minutes
branches:
include:
- main # Replace with your target branch
always: true
jobs:
- job: UpdateWiki
steps:
- bash: |
kubectl get vpa -A -o json | jq -r '["Namespace", "AppName", "ContainerName", "LowerBoundCPU","LowerBoundMemmory", "upperBoundCPU", "upperBoundmemmory", "TargetCPU", "TargetMem"], (.items[] | [.metadata.namespace, .metadata.name] +(.status.recommendation.containerRecommendations[] | [.containerName, .lowerBound.cpu, .lowerBound.memory, .upperBound.cpu, .upperBound.memory, .target.cpu, .target.memory])) | @csv' >output.csv
displayName: 'VPA Report Creation'
- bash: |
# Your script here to convert output.csv into a Markdown table and save it as output.md
displayName: 'Convert CSV to Markdown'
- bash: |
PAT=$(System.AccessToken)
URI="https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis/{wikiIdentifier}/pages?path={path}&api-version=6.0"
CONTENT=$(<output.md)
curl -u ":$PAT" -X PUT "$URI" -H "Content-Type: application/json" --data "{'content': '$CONTENT'}"
displayName: 'Update Azure Wiki'
请将
{organization}
、{project}
和 {wikiIdentifier}
替换为适合您的 Azure DevOps 设置的值。System.AccessToken
包含自动注入到管道运行中的 Azure DevOps PAT(个人访问令牌)。确保此令牌具有更新 Wiki 的权限。