Skip to content

dz0ny/wrap2

Repository files navigation

wrap2

wrap2 is process and configuration manager tailored for Docker with Kubernetes environment.

It supports:

  • Template generation from environ and secrets
  • Managing multiple processes from single declaration file
  • PID1 handling of system events
  • Cron jobs

Template

Format is based of Golang default template parser see:

Extra functions:

  • env > gets value from environment
  • k8s > load value from secret Kubernetes volume mount

CRON

Based of https://godoc.org/github.com/robfig/cron:

Predefined schedules:

Entry                  | Description                                | Equivalent To
-----                  | -----------                                | -------------
@yearly (or @annually) | Run once a year, midnight, Jan. 1st        | 0 0 0 1 1 *
@monthly               | Run once a month, midnight, first of month | 0 0 0 1 * *
@weekly                | Run once a week, midnight between Sat/Sun  | 0 0 0 * * 0
@daily (or @midnight)  | Run once a day, midnight                   | 0 0 0 * * *
@hourly                | Run once an hour, beginning of hour        | 0 0 * * * *

Example:

ENV var example {{env "CUSTOM"}}
Secret var example {{k8s "secret"}}

{{if {{env "DEFINED_ENV_VARIABLE"}}}} 
    {{k8s "special_secret"}}
{{end}}

Configuration

[pre_start]
  cmd = "/bin/bash /pre_start"
  user = "dz0ny"
[post_start]
  cmd = "/bin/bash /post_start"
  user = "dz0ny"

[[process]]
  cmd = "nginx -V -E"
  user = "www-data"
  [process.config]
    src = "source.tmpl"
    out = "target.tmpl"
    [process.config.data]
      domain = "test.tld"

[[process]]
  cmd = "php -v"
  user = "www-data"
  [process.config]
    src = "source.tmpl"
    out = "target.tmpl"
   [process.enabled]
     operator="EnvNotEqual"
     # EnvEqual > env variable matches value
     # EnvNotEqual > env variable does not match value

     # EnvNotEndsWith > env variable does not end with value
     # EnvEndsWith > env variable ends with value

     # EnvNotStartsWith > env variable does not start with value
     # EnvStartsWith > env variable starts with value
     key= "KIND"
     value="scaled"

[[process]]
  cmd = "true -v"

[[cron]]
  schedule = "@every 5s"
  [cron.job]
    cmd = "echo tick"
    user = "www-data"

Usage

$ ./wrap2-Linux-x86_64 -help                                                                                05/09/18 -  1:24 PM
Usage of ./wrap2-Linux-x86_64:
  -config string
        Location of the init file (default "/provision/init.toml")

About

Pid1 manager with templates, cron and logger

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy