Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,5 @@
.idea
/demo/go/go
.qodo
internal/logs/
internal/test.log
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ With Kit, you can define and manage complex workflows in a single `tasks.yaml` f
- **Auto-restart** - Automatically restart services on failure
- **File watching** - Re-run tasks when files change
- **Port forwarding** - Forward ports from services to host
- **Web UI** - Visualize your workflow and monitor task status
- **Web UI** - Visualize your workflow and monitor task status with real-time metrics

## Quick Start

Expand Down
32 changes: 16 additions & 16 deletions docs/examples/README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Examples

* [](postgres.md) The postgres container image provides a preconfigured PostgreSQL database server for easy deployment in containerized environments.
* [](mysql.md) The MySQL container image provides a pre-configured and optimized environment for running the MySQL database service within a container.
* [](mariadb.md) MariaDB is an open-source relational database management system (RDBMS) and a community-driven fork of MySQL, designed to be a drop-in replacement for MySQL with enhanced performance, stability, and security features, including support for advanced clustering, storage engines, and plugins.
* [](redis.md) The Redis container image is a lightweight, open-source, and in-memory data structure store used as a cache, database, and message broker.
* [](mongo.md) The mongo container image provides a lightweight and scalable solution for running MongoDB databases in a containerized environment.
* [](memcached.md) The memcached container image provides an efficient in-memory caching system for key-value pairs.
* [](influxdb.md) The influxdb container image provides a pre-configured instance of the InfluxDB database that can be easily deployed for time-series data storage and analysis.
* [](kafka.md)
* [](rabbitmq.md) The RabbitMQ container image provides a scalable and highly-available message broker that supports various messaging protocols and can be easily deployed and managed in a containerized environment.
* [](nats.md) The nats container image provides a lightweight messaging system for distributed applications running in containerized environments.
* [](pulsar.md) The apachepulsar/pulsar container image provides a scalable and distributed messaging system for enterprise-grade applications.
* [](sim.md)
* [](nginx.md) The nginx container image is a lightweight and high-performance web server designed to efficiently serve static and dynamic content.
* [](httpd.md) The httpd container image provides an Apache HTTP server for serving web content.
* [](dynamo.md) Dynamo is a distributed key-value storage system developed by Amazon Web Services (AWS) for highly available, scalable and reliable NoSQL data storage.
* [](timestream.md) Timestream is a fully-managed, scalable time-series database service developed by Amazon Web Services (AWS) that enables users to store, process, and analyze time-series data, such as logs, sensor data, and industrial telemetry, with high precision and accuracy, and built-in analytics and visualization tools.
* [PostgreSQL](postgres.md) The postgres container image provides a preconfigured PostgreSQL database server for easy deployment in containerized environments.
* [MySQL](mysql.md) The MySQL container image provides a pre-configured and optimized environment for running the MySQL database service within a container.
* [MariaDB](mariadb.md) MariaDB is an open-source relational database management system (RDBMS) and a community-driven fork of MySQL, designed to be a drop-in replacement for MySQL with enhanced performance, stability, and security features, including support for advanced clustering, storage engines, and plugins.
* [Redis](redis.md) The Redis container image is a lightweight, open-source, and in-memory data structure store used as a cache, database, and message broker.
* [MongoDB](mongo.md) The mongo container image provides a lightweight and scalable solution for running MongoDB databases in a containerized environment.
* [Memcached](memcached.md) The memcached container image provides an efficient in-memory caching system for key-value pairs.
* [InfluxDB](influxdb.md) The influxdb container image provides a pre-configured instance of the InfluxDB database that can be easily deployed for time-series data storage and analysis.
* [Apache Kafka](kafka.md) Apache Kafka is a distributed streaming platform that's designed to handle high throughput, fault-tolerant streaming data.
* [RabbitMQ](rabbitmq.md) The RabbitMQ container image provides a scalable and highly-available message broker that supports various messaging protocols and can be easily deployed and managed in a containerized environment.
* [NATS](nats.md) The nats container image provides a lightweight messaging system for distributed applications running in containerized environments.
* [Apache Pulsar](pulsar.md) The apachepulsar/pulsar container image provides a scalable and distributed messaging system for enterprise-grade applications.
* [Sim](sim.md) Sim is a straight-forward API simulation tool that's tiny, fast, secure and scalable.
* [Nginx](nginx.md) The nginx container image is a lightweight and high-performance web server designed to efficiently serve static and dynamic content.
* [Apache HTTP Server](httpd.md) The httpd container image provides an Apache HTTP server for serving web content.
* [DynamoDB Local](dynamo.md) Dynamo is a distributed key-value storage system developed by Amazon Web Services (AWS) for highly available, scalable and reliable NoSQL data storage.
* [Timestream (Moto)](timestream.md) Timestream is a fully-managed, scalable time-series database service developed by Amazon Web Services (AWS) that enables users to store, process, and analyze time-series data, such as logs, sensor data, and industrial telemetry, with high precision and accuracy, and built-in analytics and visualization tools.
18 changes: 18 additions & 0 deletions docs/examples/examples.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# SQL

- name: postgres
title: PostgreSQL
description: The postgres container image provides a preconfigured PostgreSQL database server for easy deployment in containerized environments.
workflow:
spec:
Expand All @@ -10,6 +11,7 @@
env:
- POSTGRES_PASSWORD=password
- name: mysql
title: MySQL
description: The MySQL container image provides a pre-configured and optimized environment for running the MySQL database service within a container.
workflow:
spec:
Expand All @@ -18,6 +20,7 @@
env:
- MYSQL_ROOT_PASSWORD=password
- name: mariadb
title: MariaDB
description: MariaDB is an open-source relational database management system (RDBMS) and a community-driven fork of MySQL, designed to be a drop-in replacement for MySQL with enhanced performance, stability, and security features, including support for advanced clustering, storage engines, and plugins.
workflow:
spec:
Expand All @@ -29,19 +32,22 @@
# NoSQL

- name: redis
title: Redis
description: The Redis container image is a lightweight, open-source, and in-memory data structure store used as a cache, database, and message broker.
workflow:
spec:
tasks:
- image: redis
- name: mongo
title: MongoDB
description: The mongo container image provides a lightweight and scalable solution for running MongoDB databases in a containerized environment.
workflow:
spec:
tasks:
- image: mongo

- name: memcached
title: Memcached
description: The memcached container image provides an efficient in-memory caching system for key-value pairs.
workflow:
spec:
Expand All @@ -51,6 +57,7 @@
# Time-series database

- name: influxdb
title: InfluxDB
description: The influxdb container image provides a pre-configured instance of the InfluxDB database that can be easily deployed for time-series data storage and analysis.
workflow:
spec:
Expand All @@ -60,23 +67,28 @@
# Streaming

- name: kafka
title: Apache Kafka
description: Apache Kafka is a distributed streaming platform that's designed to handle high throughput, fault-tolerant streaming data.
workflow:
spec:
tasks:
- image: ghcr.io/kitproj/kafka
- name: rabbitmq
title: RabbitMQ
description: The RabbitMQ container image provides a scalable and highly-available message broker that supports various messaging protocols and can be easily deployed and managed in a containerized environment.
workflow:
spec:
tasks:
- image: rabbitmq
- name: nats
title: NATS
description: The nats container image provides a lightweight messaging system for distributed applications running in containerized environments.
workflow:
spec:
tasks:
- image: nats
- name: pulsar
title: Apache Pulsar
description: The apachepulsar/pulsar container image provides a scalable and distributed messaging system for enterprise-grade applications.
workflow:
spec:
Expand All @@ -88,6 +100,8 @@
# Simulation

- name: sim
title: Sim
description: Sim is a straight-forward API simulation tool that's tiny, fast, secure and scalable.
workflow:
spec:
tasks:
Expand All @@ -98,6 +112,7 @@
# Webserver

- name: nginx
title: Nginx
description: The nginx container image is a lightweight and high-performance web server designed to efficiently serve static and dynamic content.
workflow:
spec:
Expand All @@ -112,6 +127,7 @@
name: nginx.html

- name: httpd
title: Apache HTTP Server
description: The httpd container image provides an Apache HTTP server for serving web content.
workflow:
spec:
Expand All @@ -127,6 +143,7 @@

# AWS
- name: dynamo
title: DynamoDB Local
description: Dynamo is a distributed key-value storage system developed by Amazon Web Services (AWS) for highly available, scalable and reliable NoSQL data storage.
workflow:
spec:
Expand All @@ -135,6 +152,7 @@
image: amazon/dynamodb-local

- name: timestream
title: Timestream (Moto)
description: Timestream is a fully-managed, scalable time-series database service developed by Amazon Web Services (AWS) that enables users to store, process, and analyze time-series data, such as logs, sensor data, and industrial telemetry, with high precision and accuracy, and built-in analytics and visualization tools.
workflow:
spec:
Expand Down
8 changes: 6 additions & 2 deletions docs/examples/pulsar.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,12 @@ The apachepulsar/pulsar container image provides a scalable and distributed mess
```yaml
tasks:
"":
command: /pulsar/bin/pulsar standalone
command:
- /pulsar/bin/pulsar
- standalone
image: apachepulsar/pulsar
ports: 6650 8080
ports:
- "6650"
- "8080"
```

8 changes: 6 additions & 2 deletions docs/examples/pulsar.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
tasks:
"":
command: /pulsar/bin/pulsar standalone
command:
- /pulsar/bin/pulsar
- standalone
image: apachepulsar/pulsar
ports: 6650 8080
ports:
- "6650"
- "8080"
5 changes: 3 additions & 2 deletions docs/examples/sim.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ Sim is straight-forward API simulation tool that's tiny, fast, secure and scalab
tasks:
"":
image: ghcr.io/kitproj/sim
ports: "8080"
readinessProbe: http://:8080/hello?failureThreshold=20&initialDelay=5s&period=5s&successThreshold=1
ports:
- "8080"
readinessProbe: http://localhost:8080/hello
volumes:
- hostPath:
path: volumes/sim/apis
Expand Down
5 changes: 3 additions & 2 deletions docs/examples/sim.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
tasks:
"":
image: ghcr.io/kitproj/sim
ports: "8080"
readinessProbe: http://:8080/hello?failureThreshold=20&initialDelay=5s&period=5s&successThreshold=1
ports:
- "8080"
readinessProbe: http://localhost:8080/hello
volumes:
- hostPath:
path: volumes/sim/apis
Expand Down
38 changes: 19 additions & 19 deletions docs/reference/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,49 @@

## Top-level Schemas

* [Untitled schema](./workflow.md) – `https://github.com/kitproj/kit/internal/types/workflow`
* [Untitled schema](./workflow.md) – `https://github.com/kitproj/kit/internal/types/workflow`

## Other Schemas

### Objects

* [Duration](./workflow-defs-duration.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Duration`
* [Duration](./workflow-defs-duration.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Duration`

* [EnvVars](./workflow-defs-envvars.md "A list of environment variables") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/EnvVars`
* [EnvVars](./workflow-defs-envvars.md "A list of environment variables") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/EnvVars`

* [HTTPGetAction](./workflow-defs-httpgetaction.md "HTTPGetAction describes an action based on HTTP Locks requests") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/HTTPGetAction`
* [HTTPGetAction](./workflow-defs-httpgetaction.md "HTTPGetAction describes an action based on HTTP Locks requests") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/HTTPGetAction`

* [HostPath](./workflow-defs-hostpath.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/HostPath`
* [HostPath](./workflow-defs-hostpath.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/HostPath`

* [Port](./workflow-defs-port.md "A port to expose") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Port`
* [Port](./workflow-defs-port.md "A port to expose") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Port`

* [Probe](./workflow-defs-probe.md "A probe to check if the task is alive, it will be restarted if not") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Probe`
* [Probe](./workflow-defs-probe.md "A probe to check if the task is alive, it will be restarted if not") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Probe`

* [TCPSocketAction](./workflow-defs-tcpsocketaction.md "TCPSocketAction describes an action based on opening a socket") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/TCPSocketAction`
* [TCPSocketAction](./workflow-defs-tcpsocketaction.md "TCPSocketAction describes an action based on opening a socket") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/TCPSocketAction`

* [Task](./workflow-defs-task.md "A task is a container or a command to run") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Task`
* [Task](./workflow-defs-task.md "A task is a container or a command to run") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Task`

* [Tasks](./workflow-defs-tasks.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Tasks`
* [Tasks](./workflow-defs-tasks.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Tasks`

* [Volume](./workflow-defs-volume.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Volume`
* [Volume](./workflow-defs-volume.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Volume`

* [VolumeMount](./workflow-defs-volumemount.md "VolumeMount describes a mounting of a Volume within a container") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/VolumeMount`
* [VolumeMount](./workflow-defs-volumemount.md "VolumeMount describes a mounting of a Volume within a container") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/VolumeMount`

* [Workflow](./workflow-defs-workflow.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Workflow`
* [Workflow](./workflow-defs-workflow.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Workflow`

* [semaphores](./workflow-defs-workflow-properties-semaphores.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Workflow/properties/semaphores`
* [semaphores](./workflow-defs-workflow-properties-semaphores.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Workflow/properties/semaphores`

### Arrays

* [Envfile](./workflow-defs-envfile.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Envfile`
* [Envfile](./workflow-defs-envfile.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Envfile`

* [Ports](./workflow-defs-ports.md "A list of ports to expose") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Ports`
* [Ports](./workflow-defs-ports.md "A list of ports to expose") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Ports`

* [Strings](./workflow-defs-strings.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Strings`
* [Strings](./workflow-defs-strings.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Strings`

* [volumeMounts](./workflow-defs-task-properties-volumemounts.md "Volumes to mount in the container") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Task/properties/volumeMounts`
* [volumeMounts](./workflow-defs-task-properties-volumemounts.md "Volumes to mount in the container") – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Task/properties/volumeMounts`

* [volumes](./workflow-defs-workflow-properties-volumes.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Workflow/properties/volumes`
* [volumes](./workflow-defs-workflow-properties-volumes.md) – `https://github.com/kitproj/kit/internal/types/workflow#/$defs/Workflow/properties/volumes`

## Version Note

Expand Down
8 changes: 4 additions & 4 deletions docs/reference/workflow-defs-duration.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ The timeout for the task to be considered stalled. If omitted, the task will be

`Duration`

* is required
* is required

* Type: `object` ([Duration](workflow-defs-duration.md))
* Type: `object` ([Duration](workflow-defs-duration.md))

* cannot be null
* cannot be null

* defined in: [Untitled schema](workflow-defs-duration.md "https://github.com/kitproj/kit/internal/types/workflow#/$defs/Duration/properties/Duration")
* defined in: [Untitled schema](workflow-defs-duration.md "https://github.com/kitproj/kit/internal/types/workflow#/$defs/Duration/properties/Duration")

### Duration Type

Expand Down
8 changes: 4 additions & 4 deletions docs/reference/workflow-defs-envvars.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ A list of environment variables.

`.*`

* is optional
* is optional

* Type: `string`
* Type: `string`

* cannot be null
* cannot be null

* defined in: [Untitled schema](workflow-defs-envvars-patternproperties-.md "https://github.com/kitproj/kit/internal/types/workflow#/$defs/EnvVars/patternProperties/.*")
* defined in: [Untitled schema](workflow-defs-envvars-patternproperties-.md "https://github.com/kitproj/kit/internal/types/workflow#/$defs/EnvVars/patternProperties/.*")

### .\* Type

Expand Down
8 changes: 4 additions & 4 deletions docs/reference/workflow-defs-hostpath.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ Path of the directory on the host.

`path`

* is required
* is required

* Type: `string` ([path](workflow-defs-hostpath-properties-path.md))
* Type: `string` ([path](workflow-defs-hostpath-properties-path.md))

* cannot be null
* cannot be null

* defined in: [Untitled schema](workflow-defs-hostpath-properties-path.md "https://github.com/kitproj/kit/internal/types/workflow#/$defs/HostPath/properties/path")
* defined in: [Untitled schema](workflow-defs-hostpath-properties-path.md "https://github.com/kitproj/kit/internal/types/workflow#/$defs/HostPath/properties/path")

### path Type

Expand Down
Loading