我有一个用于负载均衡器的 k8s 清单文件,但我一生都无法将 $ipaddress 替换为值,我必须覆盖整个文件或部分文件,甚至留空。我怎样才能只替换 $ipaddress 如下所示
尝试如下示例2:
Run Code Online (Sandbox Code Playgroud)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
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) 我似乎无法检索 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 脚本中使用