Terraform Kubernetes не разрешает использовать что-либо, кроме apiVersion: v1
.Однако я хотел обойти это, используя средство null_resource
для запуска kubectl apply -f ...
и kubectl delete -f ...
(с when = "destroy"
).
Я пытался заставить это работать, используя kubernetes apply EOFшаблон, но пока не справился.
Вот где я дошел, но, похоже, |
- это недопустимый символ.
Также надеюсь, что смогу вытащить ямлстрока в многострочную переменную, поэтому мне не нужно повторять это в нулевом ресурсе.
resource "null_resource" "res_name" {
provisioner {
command = <<EOF | kubectl apply -f -
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: some-ingress-name
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: subdomain.example.com
http:
paths:
- backend:
serviceName: some-cluster-ip-service
servicePort: 80
}
provisioner {
when = "destroy"
command = <<EOF | kubectl delete -f -
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: some-ingress-name
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: subdomain.example.com
http:
paths:
- backend:
serviceName: some-cluster-ip-service
servicePort: 80
}
}