Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Was Kubernetes-Ingress-Regeln mit der Chomsky-Hierarchie zu tun haben

Was Kubernetes-Ingress-Regeln mit der Chomsky-Hierarchie zu tun haben

Eines schönen Tages kam ich auf die Idee, FizzBuzz in Kubernetes zu implementieren. Aber Lars, fragte mich der Engel auf meiner linken Schulter, geht das überhaupt? In Ingress-Regeln kann man doch nur reguläre Ausdrücke verwenden. Sogleich erwiderte der Teufel auf meiner rechten Schulter: Doch, denn die Teilbarkeit einer Zahl in beliebiger Basisrepräsentation ist regulär! Bevor der Engel noch etwas dazu sagen konnte, war ich schon längst im Kaninchenbau verschwunden und tat, was getan werden musste. Schaut euch diesen Vortrag an, in dem ich Noam Chomsky und Kelsey Hightower zum Weinen bringen werde. Vielleicht lernt ihr dabei auch noch etwas fürs Leben.

Lars Hupel

June 29, 2022
Tweet

More Decks by Lars Hupel

Other Decks in Programming

Transcript

  1. Was Kubernetes- Ingress-Regeln mit der Chomsky- Hierarchie zu tun haben

    CLOUDLAND / 29.06.2022 LARS HUPEL @LARSR_H
  2. None
  3. 🧑 👩 🍷 🍷 💬 Was ist FizzBuzz? Du kennst

    FizzBuzz nicht? 💬
  4. None
  5. 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz

    11 Fizz 13 14 Fizzbuzz …
  6. None
  7. None
  8. None
  9. Enterprise™ FizzBuzz requirements Cloud Native Web Scale Low Code

  10. n % 15 == 0 ❓

  11. None
  12. None
  13. Hören Sie mir mal zu, dann können Sie nämlich noch

    was lernen. Olaf Kosinsky, CC-BY-SA 3.0-de
  14. Wat is eine Sprache? Da stellen mer uns ma janz

    domm.
  15. None
  16. Andrew Rusk, CC-BY 2.0

  17. Alle Sprachen 🤯 Aufzählbar 😭 Kontextsensitiv 🙄 Kontextfrei 😊 Regulär

    😍
  18. None
  19. Robert Nystrom, MIT license

  20. Klasse Modell Laufzeit Beispiel Unentscheidbar ❌ ❌ 🇩🇰 Entscheidbar TM

    ❓ Post Kontextsensitiv Kontextfrei Regulär
  21. Alle Sprachen 🤯 Aufzählbar 😭 Kontextsensitiv 🙄 Kontextfrei 😊 Regulär

    😍
  22. None
  23. Klasse Modell Laufzeit Beispiel Unentscheidbar ❌ ❌ 🇩🇰 Entscheidbar TM

    ❓ Post Kontextsensitiv LBA ❓ XML Kontextfrei Regulär
  24. Alle Sprachen 🤯 Aufzählbar 😭 Kontextsensitiv 🙄 Kontextfrei 😊 Regulär

    😍
  25. Robert Nystrom, MIT license

  26. None
  27. Klasse Modell Laufzeit Beispiel Unentscheidbar ❌ ❌ 🇩🇰 Entscheidbar TM

    ❓ Post Kontextsensitiv LBA ❓ XML Kontextfrei PDA/CFG 𝓞(n³) arith. Ausdrücke Regulär
  28. Alle Sprachen 🤯 Aufzählbar 😭 Kontextsensitiv 🙄 Kontextfrei 😊 Regulär

    😍
  29. reguläre

  30. None
  31. Klasse Modell Laufzeit Beispiel Unentscheidbar ❌ ❌ 🇩🇰 Entscheidbar TM

    ❓ Post Kontextsensitiv LBA ❓ XML Kontextfrei PDA/CFG 𝓞(n³) arith. Ausdrücke Regulär DFA/RE 𝓞(n) Lexer
  32. None
  33. None
  34. None
  35. None
  36. None
  37. None
  38. None
  39. None
  40. None
  41. None
  42. None
  43. None
  44. None
  45. None
  46. None
  47. None
  48. None
  49. None
  50. None
  51. 124

  52. 124

  53. 124

  54. 124

  55. None
  56. None
  57. None
  58. None
  59. apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: fizzbuzz-5 annotations: nginx.ingress.kubernetes.io/rewrite-target: /get?response=buzz

    nginx.ingress.kubernetes.io/use-regex: "true" spec: rules: - http: paths: - path: "/.*[05]$" backend: serviceName: httpbin servicePort: 80
  60. /([0369]|[147][0369]*([147] [0369]*[258][0369]*)*([147] [0369]*[147]|[258])|[258] [0369]*([258][0369]*[147] [0369]*)*([258][0369]*[258]| [147]))*(0|[147][0369]* ([147][0369]*[258] [0369]*)*5|[258][0369]* ([258][0369]*[147][0369]*)* [258][0369]*5)$

    n % 15 == 0 http://blogs.perl.org/users/mauke/2017/08/fizzbuzz.html
  61. Demo

  62. github.com /larsrh/fizzbuzz-k8s/

  63. None
  64. None
  65. Q&A Lars Hupel lars.hupel@innoq.com @larsr_h www.innoq.com innoQ Deutschland GmbH Krischerstr.

    100 40789 Monheim +49 2173 333660 Ohlauer Str. 43 10999 Berlin Ludwigstr. 180E 63067 Offenbach Kreuzstr. 16 80331 München Hermannstr. 13 20095 Hamburg Erftstr. 15-17 50672 Köln Königstorgraben 11 90402 Nürnberg