dhall-lang
terraform
Our great sponsors
dhall-lang | terraform | |
---|---|---|
113 | 497 | |
4,124 | 40,914 | |
1.3% | 1.8% | |
6.0 | 9.9 | |
26 days ago | 6 days ago | |
Dhall | Go | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 or later |
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.
dhall-lang
-
Apple releases Pkl – onfiguration as code language
Fail to see how this is any different than Dhall (https://dhall-lang.org/) other than it produces plists too.
Well, Dhall provides something between JSON and a Turing complete language that can make a lot of configuration much quicker to write, if you can hack the functional syntax.
-
Pkl, a Programming Language for Configuration
Kubernetes config is a decent example. I had ChatGPT generate a representative silly example -- the content doesn't matter so much as the structure:
https://gist.github.com/cstrahan/528b00cd5c3a22e3d8f057bb1a7...
Now consider 100s (if not 1000s) of such files.
I haven't given Pkl an in depth look yet, but I can say that the Industry Standard™ of "simple YAML" + string substitution (with delicate, error prone indentation -- since YAML is indentation sensitive) is easily beat by any of:
- https://nixos.org/manual/nix/stable/language/index.html
- (insert many more here, probably including Pkl)
-
Why the fuck are we templating YAML? (2019)
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.
Throwing in a plug for https://dhall-lang.org/
> Dhall is a programmable configuration language that you can think of as: JSON + functions + types + imports
-
Is Htmx Just Another JavaScript Framework?
There are underpowered languages / tools, that can only solve a problem for which they are intended poorly. But not all limited tools are like that.
Say, eBPF is prominently not Turing-complete, which allows to guarantee that a eBPF program terminates, and even how soon. Still eBPF is hugely useful in its area.
Or, say, regular expressions are limited to regular languages; in particular, they famously [1] cannot process recursive structures, like trees. Still tools like grep / ag / rg are mightily useful.
Yes, I agree that YAML is underpowered for proper k8s configuration! But it's also too powerful for its own good in other aspects [2]. I wish Google used Dhall [3] or their own purely functional config language (FCL? I already forgot the name) instead of YAML; sadly, they did not.
[1]: https://stackoverflow.com/a/1732454/223424
[2]: https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-fr...
-
10 Ways for Kubernetes Declarative Configuration Management
Dhall: Dhall is a programmable configuration language that combines features like JSON, functions, types, and import capabilities. Its style leans towards functional programming, so if you're familiar with functional-style languages such as Haskell, you might find Dhall to be quite intuitive.
-
Berry is a ultra-lightweight dynamically typed embedded scripting language
I've been thinking along these lines but more 'strongly validated' than statically typed in the sense that you'd be better off being able to load the entire config and then produce a list of problems (and should be able to offer good editor support if done correctly).
Though https://dhall-lang.org/ demonstrates that you can statically type quite a lot of configuration to great advantage, which appears to be programmatically embeddable in multiple languages per https://docs.dhall-lang.org/howtos/How-to-integrate-Dhall.ht...
-
What Is Wrong with TOML?
I agree, I quite like https://dhall-lang.org/ for that reason. It strikes a good balance between features and being a config language.
terraform
-
I Deployed My Own Cute Lil’ Private Internet (a.k.a. VPC)
Each app’s front end is built with Qwik and uses Tailwind for styling. The server-side is powered by Qwik City (Qwik’s official meta-framework) and runs on Node.js hosted on a shared Linode VPS. The apps also use PM2 for process management and Caddy as a reverse proxy and SSL provisioner. The data is stored in a PostgreSQL database that also runs on a shared Linode VPS. The apps interact with the database using Drizzle, an Object-Relational Mapper (ORM) for JavaScript. The entire infrastructure for both apps is managed with Terraform using the Terraform Linode provider, which was new to me, but made provisioning and destroying infrastructure really fast and easy (once I learned how it all worked).
- Configurar AWS Signer en lambda con terraform
- Cranelift code generation comes to Rust
-
The Essential Guide to Internal Developer Platforms
For example, integrating Terraform for infrastructure as code (IaC) into the IDP can streamline updates and rollbacks.
-
Experience Continuous Integration with Jenkins | Ansible | Artifactory | SonarQube | PHP
In this project, you will understand and get hands on experience around the entire concept around CI/CD from applications perspective. To fully gain real expertise around this idea, it is best to see it in action across different programming languages and from the platform perspective too. From the application perspective, we will be focusing on PHP here; there are more projects ahead that are based on Java, Node.js, .Net and Python. By the time you start working on Terraform, Docker and Kubernetes projects, you will get to see the platform perspective of CI/CD in action.
-
The 2024 Web Hosting Report
Infrastructure as Code (IaC) is an important part of any true hosting operation in the public cloud. Each of these platforms has their own IaC solution, e.g. AWS CloudFormation. But they also support popular open-source IaC tools like Pulumi or Terraform. A category of tools that also needs to be discussed is API gateways and other app-specific load balancers. There are applications for internal consumption, which can be called microservices if you have a lot of them. And often microservices use advanced networking options such as a service mesh instead of just the native private network offered by a VPC.
-
🦊 GitLab CI: Deploy a Majestic Single Server Runner on AWS
To quickly deploy the architecture, we will be using Terraform. With Terraform, we can automate the deployment process and have our infrastructure up and running in minutes.
-
A list of SaaS, PaaS and IaaS offerings that have free tiers of interest to devops and infradev
terraform.io — Terraform Cloud. Free remote state management and team collaboration for up to 500 resources.
-
Root Cause Chronicles: Quivering Queue
Robin was neck-deep trying to finish writing a new Terraform module and replied without looking up, “What’s gone wrong?”.
-
Authorization and Amazon Verified Permissions - A New Way to Manage Permissions Part XII: Terraform
Welcome back to my blog post series dedicated to building authorization using Cedar and Amazon Verified Permissions. In a previous blogpost we've learned about batch authorization. Today, we will take a look at how to build AVP with one of the most popular Infrastructure as Code (IaC) tool - Terraform.
What are some alternatives?
terragrunt - Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.
Docker Compose - Define and run multi-container applications with Docker
terraform-provider-restapi - A terraform provider to manage objects in a RESTful API
crossplane - The Cloud Native Control Plane
boto3 - AWS SDK for Python
nvim-lspconfig - Quickstart configs for Nvim LSP
sceptre - Build better AWS infrastructure
cue - CUE has moved to https://github.com/cue-lang/cue
helmfile - Deploy Kubernetes Helm Charts
cloud-custodian - Rules engine for cloud security, cost optimization, and governance, DSL in yaml for policies to query, filter, and take actions on resources
example-bazel-monorepo - 🌿💚 Example Bazel-ified monorepo, supporting Golang, Java, Python, Scala, and Typescript