Movatterモバイル変換


[0]ホーム

URL:


# Made with 💖 by https://ghuntley.com after one too many CustomResourceDefinitions# Improvements welcome, mash the ↗️ Octocat ↗️ and share how YAML makes your life better.No: Body: Wants: To: Write: - YAML# 🤔 Why YAML is the right devops technology for you 🤔## - 100% test coverage, always compiles just fine with no errors or warnings, always shippable# - no enforced error handling during development because runtime "panic at the disco" in production is dope# - "something broke" is way better than stack traces with line numbers# - you need to burn hours as part of setting up a new CI pipeline# - safe choice with unquestionable industry adoption, "used by kubernetes"# - is marginally better than windows.ini# - unlike json [1][2], YAML supports comments# - no official documentation (other than a specification for implementers) is totally fine# - you need a super safe way to "execute this code"# 🍿 wait a sec, did you say "executable yaml"?? 🍿# - https://ruby-doc.org/stdlib-2.4.0/libdoc/yaml/rdoc/YAML.html#module-YAML-label-Security# - https://www.php.net/manual/en/function.yaml-parse.php#refsect1-function.yaml-parse-notes# - https://securitylab.github.com/research/swagger-yaml-parser-vulnerability/# - https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation# 🚨 Anyone who uses YAML long enough will eventually get burned when attempting to abbreviate Norway 🚨# `NO` is parsed as a boolean type, which with the YAML 1.1 spec, there are 22 options to write "true" or "false."# You have to wrap "NO" in quotes to get the expected result.NI: NicaraguaNL: NetherlandsNO: Norway # 💣!# 🚨 Anyone wondering why their first seven Kubernetes clusters deploy just fine, and the eighth fails? 🚨- 07- 08# Results in[ 7, "08" ]# YAML knows that, when you have something that looks like the time of day,# what you _really_ wanted is the time of seconds since midnighttimeOfDay: whatYouWrote: 04:30 # And when you parse this file and serialize it again, you get ... whatYouSurelyMeant: 16200 # Have fun debugging this one! whatYouShouldHaveWritten: !!str 04:30# YAML is the super best way to encode Octal (tm) and learning the hard way that Kubernetes uses YAML 1.1# is a DevOps rite of passage. Below YAML 1.2 a large integer is automatically converted to octal.[3]- YAML 1.1 uses `0666` notation.- YAML 1.2 uses `0o666` notation# 🤢 I have recently been learning GitHub Actions## I just made 8 commits/pushes in one hour, and the last commit message, in its entirety, was:## "I don't really like yml"- https://twitter.com/eric_sink/status/1430954572848287744# 😭 If SQL were built on YAML 😭SELECT:- num- nameFROM:- customersWHERE EXISTS: SELECT: - name FROM: - orders WHERE: AND: - EQUALS: - customers.num - orders.customer_num - LT: - price - 50# Speaking of CI, did you know that 8-character SHAs could be all numbers?# If the system that parses `my.flaky_version` is typed, it will happily explode 2% of the time.my: # this will be a string ~98% of the time flaky_version: ${GIT_SHORT_SHA} # this will be a string ~100% of the time string_version: "${GIT_SHORT_SHA}"# him: "Look, I bought a box of DevOps"# her: "You can't just buy a box of DevOps"# 🤣 https://twitter.com/mike_kaufmann/status/1454712996933025794# "Don't forget the extra line break otherwise all shit goes to hell"# 👉 https://github.com/IronScheme/IronScheme/commit/2f847793946935bd9143cdfb064f9006f763df68# 🤡 Doing the same thing with different CI providers 🤡# Azure devopsjobs: - job: job1 steps: - script: chmod +x ./script.sh - script: ./script.sh# CircleCIjobs: job1: steps: - checkout - run: "execute-script-for-job1"# Some future CI system, probablyjobs: - steps: job1 - step1: - script: chmod +x ./script.sh - step2: - run: "execute-script-for-job1-inside-step2"# If you're building a YAML file for Cloudformation for a DashboardBody for Cloudwatch# and theres a SEARCH function? you need to escape the already-escaped and close the# whole JSON with double-quotes:"{\"search(' var=\\\"blue\\\" .# 🍻 Overhead in a pub- The problem with YAML they did one thing well. Shitty boiler plate. Then everyone thought it was a good idea.# 💊 Mega twitter thread of pain# 👉 https://twitter.com/brunoborges/status/1098472238469111808 👈# 📢 Mandatory reading 📢## "Today we’re going to look at some general problems with the YAML format"# 👉 https://arp242.net/yaml-config.html 👈## "We replaced 1,000 lines of YAML with 10 structs and people started contributing again"# 👉 https://tinyurl.com/lessons-in-over-engineering 👈## "What if you used the same language and tools you use to define your app to define your infrastructure?"# 👉 https://twitter.com/ellism/status/1008728148131733504 👈## "A YAML file is almost always still 'valid' even if it is trunca"# 👉 https://twitter.com/colmmacc/status/1057316977457324032 👈## "the bug was that the YAML parser ignored the negative signs ... so negative GPS coordinates became positive ones"# 👉 https://twitter.com/colmmacc/status/1063470541464461312 👈## "Every YAML parser is a custom YAML parser"# 👉 https://matrix.yaml.info/valid.html 👈## "There are 63 different ways to write multi-line strings in YAML"# 👉 https://stackoverflow.com/a/21699210/1094085 👈## "Toolchain version 1.70 is parsed as 1.7"# 👉 https://github.com/dtolnay/rust-toolchain/issues/112 👈# 💭 Alternative options and approaches to DevOps (cough yamlops cough) 💭# - https://media.ccc.de/v/36c3-11172-leaving_legacy_behind# - https://nickel-lang.org/# - https://dhall-lang.org/# - https://cuelang.org/# - https://jsonnet.org/# - https://www.youtube.com/watch?v=tl9I-R83lKo# - https://github.com/xtruder/kubenix/tree/kubenix-2.0/examples/nginx-deployment# - https://github.com/nin-jin/tree.d# 🏁 If you are vendor of developer tooling that is configurable via YAML, please do this 🏁# - https://twitter.com/kzu/status/1163864030911578112# - https://twitter.com/timeyoutakeit/status/1431052862138769408# 📖 Footnotes 📖# [1] You can do comments in json by `{"//": "A way to use comments in json"}` but it's icky.# [2] "Does ansible have a json schema? Yaml aint so bad with a schema."?# [3] Also see `python2 -c 'print 011' && echo $((011 + 1))`# and finally, here's some ⭐️⭐️⭐️⭐️⭐️ feedback from reddit.com:- I need to burn the very motherboard this site runs from. It’s that awful.- This is the worst website I've ever seen- I agree with the author in principle but that website is inexcusable. I'm going to add YAML config to my projects on Monday just to spite that horrific "website".- Wtf is this website and why does it repeatedly pop up my phone's keyboard - This Website is a giant editable textfield - Why?!? - Because it’s a good idea to demonstrate good standards while standing on one’s soapbox - The author of THAT website wants to tell the rest of us how to program.- While I agree with the spirit of the website (fuck yaml), the design decisions of the author are questionable to say the least.- The good news (I realised) was that you can select all the text of the site, and then delete it. Problem solved.- Fuck this website. Maybe if this person stopped bitching about yaml their website wouldn't blow.- Yeah, I’m not going to take advice on best practices from a guy whose website is a giant editable text field with unclickable hyperlinks.# ps. By design, this website is as usable as YAML. 💕

[8]ページ先頭

©2009-2025 Movatter.jp