pipedv1 kubernetes plugins ignore trafficRouting.istio.host in K8S_TRAFFIC_ROUTING
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- Mezza giornata
- Idoneità per principianti
- 74/100
Direzione di ricerca
Il bug si trova in executeK8sTrafficRoutingStageIstio in kubernetes/deployment/traffic.go e in istioTrafficRouting in kubernetes_multicluster/deployment/traffic.go, dove l'host passato a generateVirtualServiceManifest dovrebbe provenire da trafficRouting.istio.host e ripiegare su spec.service.name. Proteggi l'accesso alla configurazione Istio da nil come già fa K8S_PRIMARY_ROLLOUT. È completato quando il manifest per l'esempio FQDN mostra pesi 70/30 e una configurazione senza blocco istio non causa più un panic.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happened:
In the pipedv1 kubernetes and kubernetes_multicluster plugins, the Istio path of K8S_TRAFFIC_ROUTING doesn't read trafficRouting.istio.host ("The service host" in the config reference). It always passes spec.service.name to generateVirtualServiceManifest as the host (executeK8sTrafficRoutingStageIstio in kubernetes/deployment/traffic.go, istioTrafficRouting in kubernetes_multicluster/deployment/traffic.go).
So when the VirtualService routes to a host that isn't the bare service name, e.g. the FQDN used in examples/v0/kubernetes/mesh-istio-canary (istio.host set, no service), the existing route is treated as another host. It keeps 100% of the traffic and a destination without a host is added, while the stage log says primary=70%, canary=30%.
The same line reads cfg.Spec.TrafficRouting.Istio.EditableRoutes without a nil check, so trafficRouting: {method: istio} without an istio: block panics. K8S_PRIMARY_ROLLOUT already handles a missing istio block.
What you expected to happen:
istio.host is used when it's set, falling back to the service name otherwise, and a missing istio block is treated as empty.
How to reproduce it:
App config with:
trafficRouting:
method: istio
istio:
host: traffic-test.default.svc.cluster.local
and a VirtualService whose route destination host is traffic-test.default.svc.cluster.local, then run K8S_TRAFFIC_ROUTING with canary: 30. Calling generateVirtualServiceManifest with the host the stage passes today ("") vs the configured one gives:
host="" ->
- destination:
subset: primary
- destination:
host: traffic-test.default.svc.cluster.local
subset: primary
weight: 100
host="traffic-test.default.svc.cluster.local" ->
- destination: {host: traffic-test.default.svc.cluster.local, subset: primary}
weight: 70
- destination: {host: traffic-test.default.svc.cluster.local, subset: canary}
weight: 30
Environment:
pipedversion: pipedv1, master (87c6da5)control-planeversion: -- Others:
kubernetesandkubernetes_multiclusterplugins
- Lingua principale
- Go
- Stelle
- 1.4k
- Fork
- 391
- Merge medio
- 4g 1h
- PR unite (30g)
- 58
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pipe-cd/pipecd
-
Applications at the repository root are not triggered by new commitsForse già presa @Daksha1611 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
-
pipectl transfer restore application drops backed-up labelsForse già presa @bhavishyajain545 l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
pipe-cd/pipecd#7622 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di pipe-cd/pipecd
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
docker-compose: postgres healthcheck should probe TCP (pg_isready -h localhost)Forse già presa @zezo-mohamed22 l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
OneBusAway/watchdog#305 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
self-care self-care:agent-discoverability
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
githubnext/gh-cao#20928 ·
I maintainer di solito rispondono entro 1 giorno
-
automation documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
SocialGouv/iterion#3287 ·
I maintainer di solito rispondono entro 1 giorno