Why the fuck are we templating YAML? (2019)

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Judoscale - Save 47% on cloud hosting with autoscaling that just works
Judoscale integrates with Django, FastAPI, Celery, and RQ to make autoscaling easy and reliable. Save big, and say goodbye to request timeouts and backed-up task queues.
judoscale.com
featured
InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
  1. dhall-lang

    Maintainable configuration files

    Indeed why? However the conclusion I have is not to use JSON but to use a type safe configuration language that can express my intent much better making illegal states impossible. One example of such lang is Dhall.

    https://dhall-lang.org/

  2. Judoscale

    Save 47% on cloud hosting with autoscaling that just works. Judoscale integrates with Django, FastAPI, Celery, and RQ to make autoscaling easy and reliable. Save big, and say goodbye to request timeouts and backed-up task queues.

    Judoscale logo
  3. tanka

    Flexible, reusable and concise configuration for Kubernetes

    I would recommend implementing a similar API to Grafana Tanka: https://tanka.dev

    When you "synthesise", the returned value should be an array or an object.

    1. If it's an object, check if it has an `apiVersion` and `kind` key. If it does, yield that as a kubernetes object and do not recurse.

  4. noyaml

    A silly emotional rant about the state of devops tooling/the infrastructure sector in 2018. #noyaml.com

    For those who do not know it yet, the now classic noyaml site: https://noyaml.com/

  5. json5

    JSON5 — JSON for Humans

    Is the list on their website not good? https://github.com/json5/json5/wiki/In-the-Wild

    And it shouldn't take much to modify an existing JSON parser.

  6. cdk8s-examples

    Take a look at cdk8s from Amazon.

    https://github.com/cdk8s-team/cdk8s-examples/tree/main/types...

  7. cue

    The home of the CUE language! Validate and define text-based and dynamic configuration

    This is where I usually pitch in with "Have your heard of CUELang, our lord and savior?": https://cuelang.org/

    - Not turing complete

  8. cdk8s

    Define Kubernetes native apps and abstractions using object-oriented programming

  9. InfluxDB

    InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.

    InfluxDB logo
  10. libconfini

    Yet another INI parser

    Personally I prefer INI over nearly all configuration formats.

    https://github.com/madmurphy/libconfini/wiki/An-INI-critique...

  11. ethereum-package

    A Kurtosis package that deploys a private, portable, and modular Ethereum devnet

    - Portable - It runs pretty much anywhere

    Our runtime takes the Starlark and creates environments in both Docker and Kubernetes; from one definition

    Our CTO wrote this - https://docs.kurtosis.com/advanced-concepts/why-kurtosis-sta...

    Here is a popular environment definition - https://github.com/kurtosis-tech/ethereum-package that protocol developers use to setup custom Ethereum test environments

  12. toml

    Tom's Obvious, Minimal Language

    > I don't think even though TOML has some official spec

    Read it on https://toml.io/ (Full spec on upper-right… with its evolutions up to final 1.00 version).

  13. helm-playground

    Interactive site to debug Helm templating (& syntax cheatsheet)

    For anyone struggling with Helm YAML syntax errors in their day job, I shamelessly advertise my browser-based debug tool Helm Playground: https://helm-playground.com/ - https://github.com/shipmight/helm-playground

  14. hjson

    Hjson, a user interface for JSON

    HJson https://hjson.github.io seems a nice 'in-between' between YAML and JSON without the indentation-based syntax, so closer to the JSON side but with comments and less quotes.

    What I don't really get is why the cloud providers / tooling implementors have never drafted up a "YAML-light" that just throws out the rarely-used headache-inducing syntax elements.

  15. uplaybook

    A python-centric IT automation system.

    Ansible convinced me that doing programming tasks in YAML is insanity, so I started an experiment: What would Ansible be like if it's syntax were more like Python than YAML. https://github.com/linsomniac/uplaybook

    I spent around 3 months over the holidays exploring that by implementing a "micro Ansible", I have a pretty solid tool that implements it, but haven't had much "seat time" with it: working on it rather than in it. But what I've done has convinced me that there are some benefits.

  16. edn

    Extensible Data Notation

  17. kubit

    install kubecfg packages in-cluster

  18. runner

    The Runner for GitHub Actions :rocket:

    In the case of GitHub Actions, it's made more painful by the lack of support for YAML anchors, which provide a bare minimum of composability.

    https://github.com/actions/runner/issues/1182

  19. nimbus

    Generate CloudFormation bindings for Python (by weberc2)

    > These same feelings extend to other proprietary config languages like HCL for Terraform, ASL for AWS Step Functions, etc. It's fine that you want a declarative API, but let me generate my declaration programatically.

    Yeah, I've had the same sort of opinion since the bad old AWS CloudFormation days. I wrote an experimental CloudFormation generator 4 years ago where all of the resources and Python type hints were generated from a JSON file that AWS published and it worked really well (https://github.com/weberc2/nimbus/blob/master/examples/src/n...).

    > Config declared in and generated by code has been a superior experience. It's one of the things that AWS CDK got absolutely right.

    Is that how CDK works? I've only dabbled with it, but it was pretty far from the "generate cloudformation" experience that I had built; I guess I never "saw the light" for CDK. It felt like trading YAML/templating problems for inheritance/magic problems. I'd really like to hear from more people who have used AWS CDK, Terraform's CDK, and/or Pulumi.

  20. nck

    The Nickelpack Package Manager

    https://github.com/nickelpack/nck

    I wanted to use Nickel, but it turns out that it can't do everything you'd need it to do to completely replace NixLang. So right now I'm bikeshedding on what to use instead (and desperately trying not to invent something), in other words it's definitely being renamed. Either way there's a bash script in the `test` dir that shows the general concept.

  21. civlua

    self contained software to build a minimalist dev environment.

    I'm designing a simple dev environment from scratch.

    My solution for this is a sandboxed lua for programatic configuration:

    https://github.com/civboot/civlua/tree/main/lib/luck

    I can't stand JSON (for many reasons) so I created a serialization format that combines it and CSV for nested objects

    https://github.com/civboot/civlua/tree/main/lib/tso

    I wish the industry would standardize on a solution like this. IMO you shouldn't use a "real" language unless you can lock it down to be determinisitic. JSON is supposed to be human readable but fails for lots of real-world data like multi-line strings or lists of records.

    CSV is more readable but doesn't supported nested objects.

  22. cdktf-aws-cdk

    Use AWS CDK constructs in CDKTF projects

    The mutations and side-effects only last until synthesis. You can imagine a CDK app as a pure function that runs a bunch of mutations on an App object and then serializes the state of that object in the end to static assets that can be deployed. The internals of it all are messy, but at a conceptual level, it's easy to think about.

    CDKTF is really promising, IMO. When I last looked, it was still pretty new, but it's maturing, I think. One downside compared to regular AWS CDK is that the higher level constructs from the official AWS CDK can't be used in CDKTF. There is an adapter that exists, but it's one more layer between you and knowing what's going on: https://github.com/hashicorp/cdktf-aws-cdk

  23. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Show HN: Qq: like jq, but can transcode between many formats

    6 projects | news.ycombinator.com | 24 Jun 2024
  • 10 Ways for Kubernetes Declarative Configuration Management

    23 projects | dev.to | 1 Jan 2024
  • What Is Wrong with TOML?

    15 projects | news.ycombinator.com | 13 Sep 2023
  • Show HN: Keep – GitHub Actions for your monitoring tools

    5 projects | news.ycombinator.com | 4 Sep 2023
  • Should i migrate from Kustomize to Helm?

    6 projects | /r/devops | 25 Nov 2022