Size: a a a

2020 January 21

g

gigimon in terraform_ru
apiVersion: v1
kind: Service
metadata:
 name: browsers
 namespace: moon
spec:
 selector:
   moon: browser
 clusterIP: None
 publishNotReadyAddresses: true
источник

g

gigimon in terraform_ru
а вот такое работает :)
источник

g

gigimon in terraform_ru
и по итогу вот такой сервис получатеся:
$ kubectl get services --namespace=moon
NAME       TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)                         AGE
browsers   ClusterIP      None           <none>         <none>                          43s
источник

g

gigimon in terraform_ru
я в доке по кубернетису тоже не нашел
источник

AR

Alexey Remizov in terraform_ru
В манифесте cluster_ip = "None" пишешь?
источник

g

gigimon in terraform_ru
resource "kubernetes_service" "browsers" {
 metadata {
   name = "browsers"
   namespace = kubernetes_namespace.moon.metadata[0].name
 }
 spec {
   cluster_ip = null
   publish_not_ready_addresses = true

   selector = {
     moon = "browser"
   }
 }
}
источник

g

gigimon in terraform_ru
вот так терраформ выглядит
источник

g

gigimon in terraform_ru
так а смысл, spec.port.port все равно требуется, а он не нужен мне
источник

AR

Alexey Remizov in terraform_ru
источник

g

gigimon in terraform_ru
тут порты указаны
источник

g

gigimon in terraform_ru
ну и выше уже показали, что в схеме required стоит у нижестоящего параметра port, который всю секцию делает required
источник

AR

Alexey Remizov in terraform_ru
Попробуй "None". Если фразу "Error: Service "mysvc" is invalid: spec.ports: Required value" пишет не терраформ, а куб, значит, манифест до куба доехал.
источник

g

gigimon in terraform_ru
None в cluster_ip?
источник

g

gigimon in terraform_ru
мне кажется это пишет терраформ
источник

g

gigimon in terraform_ru
но я не совсем уверен, как определить :)
источник

VT

Victor Tur in terraform_ru
У куб клиента проверка в коде, то есть у tf провайдера в данном случае.
источник

AR

Alexey Remizov in terraform_ru
У тебя стенд не под рукой? Определить очень просто: пишешь cluster_ip = "None" и оно или работает, или нет. :>
источник

g

gigimon in terraform_ru
стенд уже завалил к сожалению :) да и повторюсь, смысл, если в коде port = required?
источник

g

gigimon in terraform_ru
он полюбому без него скажет эту ошибку
источник

AR

Alexey Remizov in terraform_ru
Про багу это была догадка. Вот этот тест намекает, что пустой список портов это в принципе нормально:
https://github.com/terraform-providers/terraform-provider-kubernetes/blob/master/kubernetes/resource_kubernetes_service_test.go#L529
источник