小编Dec*_*anG的帖子

yq 替换清单 yaml 中的值

我有一个用于负载均衡器的 k8s 清单文件,但我一生都无法将 $ipaddress 替换为值,我必须覆盖整个文件或部分文件,甚至留空。我怎样才能只替换 $ipaddress 如下所示

尝试如下示例2:

yq e '.spec|=select(.loadBalancerIP) .ports.port = "172.16.87.98"' manifest.yaml
yq e -i '(.spec|=select(.loadBalancerIP.$ipaddress) = "172.16.87.98"' manifest.yaml
Run Code Online (Sandbox Code Playgroud)
  apiVersion: v1
    kind: Service
    metadata:
      name: my-lb-cluster
    spec:
      loadBalancerIP: $ipaddress
      ports:
        - name: ssl
          port: 8080
      selector:
        role: webserver
      sessionAffinity: None
      type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)

yq

8
推荐指数
2
解决办法
2万
查看次数

使用 azure 后端存储中的状态文件将 terraform 的输出传递到 Azure Devops Pipeline

我似乎无法检索 Terraform 的公共 IP 地址输出,以便在 AzureDevops 中构建管道的下一步。

Terraform 状态拉取工作并输出到 json 文件,无法 grep 输出。

Terraform 状态显示 [options] ADDRESS 不支持 azure 后端,因此无法使用或 grep 或过滤输出

还尝试存储为文件并读取值。

resource "local_file" "foo" {
    content     = "foo!"
    filename = "${path.module}/foo.bar"
}

data "azurerm_public_ip" "buildserver-pip" {
  name                = "${azurerm_public_ip.buildserver-pip.name}"
  resource_group_name = "${azurerm_virtual_machine.buildserver.resource_group_name}"
}

output "public_ip_address" {
  value = "${data.azurerm_public_ip.buildserver-pip.ip_address}"
}
Run Code Online (Sandbox Code Playgroud)

期望将公共 IP 地址传递出去,以便在下一步中可以在 ansible playbook、bash 或 python 脚本中使用

azure terraform azure-devops

4
推荐指数
3
解决办法
4415
查看次数

标签 统计

azure ×1

azure-devops ×1

terraform ×1

yq ×1