www.yaml.org
json2jsii
www.yaml.org | json2jsii | |
---|---|---|
27 | 1 | |
318 | 19 | |
1.6% | - | |
0.0 | 9.5 | |
4 months ago | 4 days ago | |
HTML | TypeScript | |
- | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
www.yaml.org
-
Docker compose, orchestrating and automating services
First of all, create a file in the root project directories called compose.yaml. YAML is a text format that uses indentation to specify dependencies between configuration options. Be aware that incorrect indentation will cause problems with executing commands properly.
-
Kubernetes Through the Developer's Perspective
Most commonly written in YAML, these files are large and complex to read and understand. And being written in YAML comes with its challenges (and quirks) since it is an additional programming language that devs need to learn.
- Yaml.org Has Gone Away
- YAML's homepage is displayed in YAML
-
whatDoesTheGStandFor
YAML Ain't a Markup Language
-
A View on Functional Software Architecture
Note, that this file is a Markdown and YAML file at the same time, and as such human- and machine-readable, if the fields are filled carefully.
-
Exploring the code behind Docusaurus
Front matter is a bit of text at the start of a file (YAML to be exact) that is placed between two ---
-
topoconfig: enhancing config declarations with graphs
Meanwhile, formats have been evolving (JSON5, YAML), config entry points are constantly changing. These fluctuations, fortunately, were covered by tools like the cosmiconfig.
- That's a Lot of YAML
-
Official Stormgate Gameplay Reveal AMA Thread with Frost Giant Studios
Personally, I'd love to see them using a standard file format like TOML or YAML so that they're easy to parse and work with using already-existing tools.
json2jsii
-
That's a Lot of YAML
The more I look at it, the more I think that Deno is actually a perfect fit for infrastructure as code.
The first reaction I get is usually "What, JavaScript!?". Here is why its better than it looks like.
Deno easily runs TypeScript without a compile step. TypeScript is a very mature, developer friendly language that was designed to model the super complicated types often seen in JS. This includes unions and intersections which help you model complex rules between optional properties, as well as template literal types which can help you restrict string constants. As it so happens, those same types of objects are present in our configurations.
TypeScript is also flexible about how much you'd like to model. Do you want only properties with really nice autocomplete with docs from the language server? Sure we can do just that. Do you want to only allow strings that look like a time duration for that property? Can be done too with template literal types. You choose where to invest your energy.
Building abstractions on top of IaC is seen as painful and obscure. TypeScript has tools to help you avoid that, such as api-extractor: https://api-extractor.com/ - it can enforce that all your function abstractions are documented and it can generate that documentation for you.
The larger ecosystem also comes with a lot of ready-made codegen tools that can help, from small modules such as json-schema-to-typescript (https://www.npmjs.com/package/json-schema-to-typescript) to larger mature projects such as jsii and https://github.com/cdklabs/json2jsii . They can be used to build the tooling to import things like CRDs and other external schemas.
What about running arbitrary code, launching rockets, turing completness? This is where Deno comes in, with its permissions model (https://docs.deno.com/runtime/manual/basics/permissions). You can allow only a subset of commands (lets say, `helm` and `kustomize`, while you're migrating away from them), a subset of (writable) directories, accessible network hosts - or none at all.
What about the pains of managing JS modules? Deno lets you import files directly from URLs. It also allows you to set private tokens in env vars to ensure the imports succeed: https://docs.deno.com/runtime/manual/basics/modules/private - as a result, you can manage your IaC libraries the way that makes sense to you, without dealing with the unwieldy package managers of the node ecosystem.
What are some alternatives?
yj - CLI - Convert between YAML, TOML, JSON, and HCL. Preserves map order.
noyaml - A silly emotional rant about the state of devops tooling/the infrastructure sector in 2018. #noyaml.com
helm-charts - Helm charts for New Relic applications
blooddy_crypto - ActionScript (AS3) library for processing binary data. This library contains MD5, SHA-1, SHA-2 ( SHA-224 и SHA-256 ), Base64, CRC32 algorithms, JSON encoder & decoder as well as PNG and JPEG encoders.
config - Helps you find, load, combine, autofill and validate configuration values of any kind
bcl - Basic Configuration Language.
honeysql - Turn Clojure data structures into SQL
LIBUCL - Universal configuration library parser
uniconfig - Yet another one config processor. Weird. Slow. Our own.
bubbles - TUI components for Bubble Tea 🫧
yq - yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor