Reputation: 765
I am creating a kubernetes cluster to host a service and added an internal load balancer to route traffic between my VM Instances and the kubernetes cluster. I want to add a service label to the load balancer FrontEnd so that I can use a dns name instead of an IP address. But I don't know the annotation to use to add a service label? My terraform config looks like below
Any idea where I can find the list of annotations supported
resource "kubernetes_manifest" "service_ilb" {
provider = kubernetes-alpha
manifest = {
"apiVersion" = "v1"
"kind" = "Service"
"metadata" = {
"name" = "ilb-service"
"namespace" = var.namespace
"annotations" = {
"cloud.google.com/load-balancer-type" = "Internal"
"networking.gke.io/internal-load-balancer-allow-global-access" = "true"
"networking.gke.io/internal-load-balancer-subnet" = var.subnetwork
# Does not work
"networking.gke.io/internal-load-balancer-service-label" = "my-dns-name"
}
"labels" = {
"app.kubernetes.io/component" = "rabbitmq-server"
"app.kubernetes.io/name" = "rabbitmq-instance"
}
}
"spec" = {
"type" = "LoadBalancer"
"ports" = [
{
"name" = "amqp-tls"
"port" = 5671
"targetPort" = 5671
"protocol" = "TCP"
"nodePort" = 31212
},
{
"name" = "http"
"port" = 15672
"targetPort" = 15672
"protocol" = "TCP"
"nodePort" = 32511
},
]
"selector" = {
"app.kubernetes.io/component" = "rabbitmq-server"
"app.kubernetes.io/name" = "rabbitmq-instance"
}
}
}
/*
wait_for = {
fields = {
# Check an ingress has an IP
"status.loadBalancer.ingress.0.ip" = "^(\\d+(\\.|$)){4}"
}
}
*/
}
Thanks in advance
Upvotes: 10
Views: 623
Reputation: 5014
Actually Kubernetes documentation doesn't provide an exhaustive list of all possible annotations that can be applied to a Service object.
This is because annotations are designed to be user-defined and can be used for various purposes beyond those defined by Kubernetes itself.
But here is the list of annotations that are offered for LB Service by GKE in GCP - https://cloud.google.com/kubernetes-engine/docs/concepts/service-load-balancer-parameters
And these are some labels and annotations that are supported by Kubernetes in General - https://kubernetes.io/docs/reference/labels-annotations-taints/
You can choose from these annotations or create your custom annotation and use that as well.
Read more here: https://kubernetes.io/docs/reference/kubectl/generated/kubectl_annotate/ https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
Upvotes: 0