Reputation: 91
I try to create an ingress resource over terraform. I receive the following error message
Error: Failed to create Ingress 'jenkins/jenkins-ingress' because: the server could not find the requested resource (post ingresses.extensions) │ │ with kubernetes_ingress.jenkins-ingress, │ on main.tf line 160, in resource "kubernetes_ingress" "jenkins-ingress": │ 160: resource "kubernetes_ingress" "jenkins-ingress" {
My terraform resource looks like this:
resource "kubernetes_ingress" "jenkins-ingress" {
metadata {
name = "${var.name}-ingress"
namespace = var.namespace
annotations = {
"ingress.kubernetes.io/rewrite-target" = "/"
"kubernetes.io/ingress.class" = "nginx"
}
}
spec {
rule {
host = "domain.com"
http {
path {
path = "/"
backend {
service_name = var.name
service_port = 8080
}
}
}
}
}
}
If I create the ingress over a yaml it works:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jenkins-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: domain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: jenkins
port:
number: 8080
What strikes me is the difference between rule (see kubernetes_ingress) and rules in the terraform script and in the yaml. Ideas?
Upvotes: 0
Views: 1504
Reputation: 329
I was getting the same error.
Try using kubernetes_ingress_v1
instead of kubernetes_ingress
which uses networking.k8s.io/v1
instead of networking.k8s.io/v1beta1
.
Upvotes: 2