Awesome Declarative Apps¶
An awesome list of declarative applications, engines, and platforms.
Summary¶
Name | Type | Category | Title |
---|---|---|---|
terraform | Engine | Infrastructure As Code | Declarative Infrastructure And Provisioning Tool |
kubernetes | Platform | Container Orchestration | Container Orchestration |
ferret | Application | Web Scraping | Web Scraper |
mkdocs | Application | Website Generator | Static Website Generator |
reagent | Application | Testing | API Validation |
editly | Application | Multimedia | Create A Video From A Set Of Clips, Images, Audio And Titles, With Smooth Transitions And Music Overlaid. |
topicctl | Application | Kafka | Declarative Kafka Topic Management |
ignition | Application | OS Runtime Configuration | OS Runtime Configuration |
Cuelang | Engine | Configuration Runtime | Configure, Unify, Execute |
cabourotte | Application | Monitoring | Declarative Infrastructure Health Checks |
Type - Engine¶
terraform¶
Category: infrastructure as code
Url: https://www.terraform.io/
Description: Terraform is an open-source infrastructure as code software tool that provides a consistent CLI workflow to manage hundreds of cloud services. Terraform codifies cloud APIs into declarative configuration files.
Cuelang¶
Category: Configuration Runtime
Url: https://cuelang.org
Description: Configure, unify, execute
Type - Platform¶
kubernetes¶
Category: container orchestration
Url: https://kubernetes.io/
Description: Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
Examples
Example 0 - Basic Deployment A replica set of 3 pods will be deployed to Kubernetes. Each pod will run the nginx:1.7.9 container image exposing port 80 and be labeled with `app:nginx` for use in service abstraction.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
Type - Application¶
ferret¶
Category: web scraping
Url: https://github.com/MontFerret/ferret
Description: ferret is a web scraping system. It aims to simplify data extraction from the web for UI testing, machine learning, analytics and more. ferret allows users to focus on the data. It abstracts away the technical details and complexity of underlying technologies using its own declarative language. It is extremely portable, extensible, and fast.
mkdocs¶
Category: website generator
Url: https://www.mkdocs.org/
Description: MkDocs is a fast, simple and downright gorgeous static site generator that’s geared towards building project documentation. Documentation source files are written in Markdown, and configured with a single YAML configuration file.
reagent¶
Category: Testing
Url: https://github.com/whytheplatypus/reagent
Description: A cli and library for declaring what how an API is expected to behave and checking that hypothesis.
editly¶
Category: Multimedia
Url: https://github.com/mifi/editly
Description: Editly is a tool and framework for declarative NLE (non-linear video editing) using Node.js and ffmpeg. Editly allows you to easily and programmatically create a video from a set of clips, images, audio and titles, with smooth transitions and music overlaid. Editly has a simple CLI for quickly assembling a video from a set of clips or images, or you can use its more flexible JavaScript API.
topicctl¶
Category: Kafka
Url: https://github.com/segmentio/topicctl
Description: A tool for easy, declarative management of Kafka topics. Includes the ability to “apply” topic changes from YAML as well as a repl for interactive exploration of brokers, topics, consumer groups, messages, and more.
ignition¶
Category: OS Runtime Configuration
Url: https://github.com/kinvolk/ignition
Description: Ignition is a low-level system configuration utility. The Ignition executable is part of the temporary initial root filesystem, the initramfs. When Ignition runs, it finds configuration data in a named location for a given environment, such as a file or URL, and applies it to the machine before switch_root is called to pivot to the machine’s root filesystem. Ignition uses a JSON configuration file to represent the set of changes to be made.
cabourotte¶
Category: Monitoring
Url: https://github.com/mcorbin/cabourotte
Description: Cabourotte is a tool which allow you to execute healthchecks (HTTP(s), TCP, DNS, TLS) on your infrastructure.