Randers-Kommune-Digitalisering / vis-klimadata-initiativer-aktiviteter

Monitorering og rapportering af data vedr. Klimaplanens initiativer og aktivitetsdata fra Randers Kommune
MIT License
1 stars 0 forks source link

No HTTP response from OpenData data pull on prototypes #109

Closed st-randers closed 1 year ago

st-randers commented 1 year ago

Der opstår timeout ved HTTP request til OpenData fil endpoint. Metadata hentes OK fra OpenData.

Logs: https://argo.t0.hosting.kitkube.dk/applications/infrastructure/vis-klimadata-initiativer-aktiviteter/randers-kommune/vis-klimadata-initiativer-aktiviteter-service/logs?podName=vis-klimadata-initiativer-aktiviteter-service-66f4c5c4db-cnf7s&group=undefined&kind=Pod&name=vis-klimadata-initiativer-aktiviteter-service-66f4c5c4db-cnf7s

ghost commented 1 year ago

Ja, der er pisseirriterende at man skal parse outputtet forskelligt altefter hvilket output det er... måske kan man pakke det ned i et HTTP subflow der kigger på outputtet i rå tekst og parser det altefter om det ligner en JSON streng eller noget andet..

st-randers commented 1 year ago

@jmk-randers Det er løst nu.

Vi mangler at undersøge HTTP timeout. @kithosting Vil I hjælpe med at undersøge årsagen til problemet? Opstår kun på prototypes, kører som det skal i Codespace.

bork91 commented 1 year ago

@st-randers har i åbnet adgang med netpol? Default er internetadgang lukket

bork91 commented 1 year ago

Kan se at curl https://admin.opendata.dk/dataset/b1907a36-dacd-488c-8cfd-50fdb672503d/resource/09b12e1d-eeec-46bf-8752-18f142456db8/download/braendstof-2018.csv

Giver en 302 og redicrecter til https://storage.googleapis.com/ som måske ikke er åbent i netpol?

vis-klimadata-initiativer-aktiviteter-service-66f4c5c4db-cnf7s:~$ curl https://admin.opendata.dk/dataset/b1907a36-dacd-488c-8cfd-50fdb672503d/resource/09b12e1d-eeec-46bf-8752-18f142456db8/download/braendstof-2018.csv

302 Found

302 Found

The resource was found at https://storage.googleapis.com/dx-opendatadenmark-prod/opendatadenmark-prod/resources/09b12e1d-eeec-46bf-8752-18f142456db8/braendstof-2018.csv?AWSAccessKeyId=GOOG1EZ6DEPSOK7DRKXPDSBDQNJKTDCVUD65PV6GN5JNEA76IMWPISTE5BIHY&Expires=1687942406&Signature=%2FxNLV7fkZgmYOPlRih0HYGpK5i4%3D; you should be redirected automatically. vis-klimadata-initiativer-aktiviteter-service-66f4c5c4db-cnf7s:~$ ^C
st-randers commented 1 year ago

@bork91 Tak for det hurtige svar! Det lyder som om det godt kunne være problemet. Kan du hjælpe med at åbne for adgangen i netpol på prototypes/test?

bork91 commented 1 year ago

Når det er storage.googleapis.com er den eneste løsning at åbne for al adgang til port 443, dette gøre ved at tillade til cidr: 0.0.0.0/0 da google har mange IPer de skifter imellem

ghost commented 1 year ago

@bork91: Jeg tænker umiddelbart at det kunne lade sig gøre med en k8s-controller kunne det ikke? Man kunne kigge ind i noget i denher stil --> https://github.com/GoogleCloudPlatform/gke-fqdnnetworkpolicies-golang

Bare har for at vise hvad jeg tænker, har jeg sammen med GitHub Copilot, prøvet at skrive en meget simpel controller, men jeg kan ikke rigtigt teste den, da jeg ikke har et k8s / k3s setup der virker p.t. Det er sikker noget bras, men det er bare for at sætte lidt tanker i gang.

https://github.com/Randers-Kommune-Digitalisering/k8s-issues/blob/main/src/IP-DNS-controller-example.go

bork91 commented 1 year ago

@jmk-randers vi har undersøgt det før, og det kræver vi skifter vores CNI (Calico) ud med en anden. Dette er ikke muligt efter et miljø er opsat, samt vil det give nogle andre cons at skifte væk fra Calico. Calico har en betalingsløsning til at whitelist på DNS navne, jeg kan få Peter til at finde en pris på løsningen?

Det du linker til er til GKE så vidt jeg lige ved kræver at K8S køre i Google Cloud. (This project is now archived. There is a new official preview feature for FQDN Network Policies built into Google Kubernetes Engine)

Problemet med at fx lave en K8S-controller selv er at DNS IPer kan skifte fra kald til kald, så fordi controlleren for IP X retur så kan servicen lige efter få IP Y retur. Da DNS bliver brugt til bla load og geo balance.

ghost commented 1 year ago

@bork91 :

Jeg har ikke nogen præference for hvordan det bliver løst, jeg prøver blot at få rullet bolden i gang, da det forventes fra forretningen at vi kan hente data ned fra OpenData.dk.

Jeg er heller ikke ud i en "big-bang" løsning, best-practise på en sådan change er vel at bryde det ned i mindre opgaver, få dem defineret og så vælge en priotering..

Det kan være der siden jeres sidste besøg, er kommet nogle nye muligheder til i open source miljøet, jeg synes da umiddelbart det er værd at genbesøge hvilke muligheder der er.

Jeg har ikke noget budget, så hvis i mener det er en betalingsløsning der skal til, så skal @tna-randers på banen.

ghost commented 1 year ago

Det simple forslag jeg prøvede at indlede dialogen med (som er et andet end GKE koden, det var bare til inspiration) bruger slet ikke Calico, det bruger native K8s APIer og ideen er at lave en liste i netpol med gældende IPere og så lade controlleren holde disse opdateret. En opdatering af netpol kan vel triggere en config deployment og eftersom vores service har indbygget retry funktionalitet er det vel ret begrænset hvilket impact introduktionen af en helt ny IP eller decomissioning af samme har af betydning på service niveau, eller hvad?

Jeg prøver at være løsningsorienteret, det er ikke op til diskussion om vi skal hente data ned fra OpenData.dk, det skal bare bringes til at virke, så må vi finde en løsning i fællesskab.

bork91 commented 1 year ago

@jmk-randers vi kan også åbne for alt internetadgang for jeres service https://github.com/Randers-Kommune-Digitalisering/vis-klimadata-initiativer-aktiviteter/issues/109#issuecomment-1611051049 Det har jeg gjort i dette commit https://github.com/Randers-Kommune-Digitalisering/kithosting-randers-kommune-apps/commit/76f7bddde61bf0e16a8439b291a672c8431a09a0 , så nu skulle i gerne kunne hente de data der er brug for

ghost commented 1 year ago

Ok, jeg regner med at ændringen overholder jeres krav og standarder til sikkerhed, så er vi også glade.

Tak for hurtig hjælp!