Feat cronjob (#23)
Make possible to declare cronTabs inside docker-compose file. ⇒ Also, add multiple compose file injection with `-c` arguments ⇒ Also, fixes “ignore depends on” for same pod ⇒ Also fixes * fix [Be able to specify compose.yml files and its override #21](https://github.com/metal3d/katenary/issues/21) * fix [Be able to ignore ports to expose in a katenary.io/ports list #16](https://github.com/metal3d/katenary/issues/16) And more fixes… (later, we will use branches in a better way, that was a hard, long fix process)
This commit is contained in:
46
README.md
46
README.md
@@ -2,9 +2,9 @@
|
||||
<img src="./misc/logo.png" alt="Katenary Logo" style="max-width: 90%" align="center"/>
|
||||
</div>
|
||||
|
||||
Katenary is a tool to help transforming `docker-compose` files to a working Helm Chart for Kubernetes.
|
||||
Katenary is a tool to help to transform `docker-compose` files to a working Helm Chart for Kubernetes.
|
||||
|
||||
> **Important Note:** Katenary is a tool to help building Helm Chart from a docker-compose file, but docker-compose doesn't propose as many features as what can do Kubernetes. So, we strongly recommend to use Katenary as a "bootstrap" tool and then to manually enhance the generated helm chart.
|
||||
> **Important Note:** Katenary is a tool to help to build Helm Chart from a docker-compose file, but docker-compose doesn't propose as many features as what can do Kubernetes. So, we strongly recommend to use Katenary as a "bootstrap" tool and then to manually enhance the generated helm chart.
|
||||
|
||||
This project is partially made at [Smile](https://www.smile.eu)
|
||||
|
||||
@@ -59,7 +59,7 @@ Then place the `katenary` binary file inside your PATH.
|
||||
|
||||
We strongly recommand to add the "completion" call to you SHELL using the common bashrc, or whatever the profile file you use.
|
||||
|
||||
E.g. :
|
||||
E.g.:
|
||||
|
||||
```bash
|
||||
# bash in ~/.bashrc file
|
||||
@@ -122,11 +122,11 @@ What can be interpreted by Katenary:
|
||||
- Services with "image" section (cannot work with "build" section)
|
||||
- **Named Volumes** are transformed to persistent volume claims - note that local volume will break the transformation to Helm Chart because there is (for now) no way to make it working (see below for resolution)
|
||||
- if `ports` and/or `expose` section, katenary will create Services and bind the port to the corresponding container port
|
||||
- `depends_on` will add init containers to wait for the depending service (using the first port)
|
||||
- `env_file` list will create a configMap object per environemnt file (⚠ todo: the "to-service" label doesn't work with configMap for now)
|
||||
- `depends_on` will add init containers to wait for the depending on service (using the first port)
|
||||
- `env_file` list will create a configMap object per environemnt file (⚠ to-do: the "to-service" label doesn't work with configMap for now)
|
||||
- some labels can help to bind values, for example:
|
||||
- `katenary.io/ingress: 80` will expose the port 80 in a ingress
|
||||
- `katenary.io/mapenv: |`: allow to map environment to something else than the given value in the compose file
|
||||
- `katenary.io/ingress: 80` will expose the port 80 in an ingress
|
||||
- `katenary.io/mapenv: |`: allow mapping environment to something else than the given value in the compose file
|
||||
|
||||
Exemple of a possible `docker-compose.yaml` file:
|
||||
|
||||
@@ -173,20 +173,32 @@ services:
|
||||
These labels could be found by `katenary show-labels`, and can be placed as "labels" inside your docker-compose file:
|
||||
|
||||
```
|
||||
katenary.io/ignore : ignore the container, it will not yied any object in the helm chart
|
||||
katenary.io/secret-vars : secret variables to push on a secret file
|
||||
katenary.io/secret-envfiles : set the given file names as a secret instead of configmap
|
||||
katenary.io/mapenv : map environment variable to a template string (yaml style)
|
||||
# Labels
|
||||
katenary.io/ignore : ignore the container, it will not yied any object in the helm chart (bool)
|
||||
katenary.io/secret-vars : secret variables to push on a secret file (coma separated)
|
||||
katenary.io/secret-envfiles : set the given file names as a secret instead of configmap (coma separated)
|
||||
katenary.io/mapenv : map environment variable to a template string (yaml style, object)
|
||||
katenary.io/ports : set the ports to expose as a service (coma separated)
|
||||
katenary.io/ingress : set the port to expose in an ingress (coma separated)
|
||||
katenary.io/configmap-volumes : specifies that the volumes points on a configmap (coma separated)
|
||||
katenary.io/same-pod : specifies that the pod should be deployed in the same pod than the given service name
|
||||
katenary.io/empty-dirs : specifies that the given volume names should be "emptyDir" instead of persistentVolumeClaim (coma separated)
|
||||
katenary.io/healthcheck : specifies that the container should be monitored by a healthcheck, **it overrides the docker-compose healthcheck**.
|
||||
katenary.io/same-pod : specifies that the pod should be deployed in the same pod than the
|
||||
given service name (string)
|
||||
katenary.io/volume-from : specifies that the volumes to be mounted from the given service (yaml style)
|
||||
katenary.io/empty-dirs : specifies that the given volume names should be "emptyDir" instead of
|
||||
persistentVolumeClaim (coma separated)
|
||||
katenary.io/crontabs : specifies a cronjobs to create (yaml style, array) - this will create a
|
||||
cronjob, a service account, a role and a rolebinding to start the command with "kubectl"
|
||||
The form is the following:
|
||||
- command: the command to run
|
||||
schedule: the schedule to run the command (e.g. "@daily" or "*/1 * * * *")
|
||||
image: the image to use for the command (default to "bitnami/kubectl")
|
||||
allPods: true if you want to run the command on all pods (default to false)
|
||||
katenary.io/healthcheck : specifies that the container should be monitored by a healthcheck,
|
||||
**it overrides the docker-compose healthcheck**.
|
||||
You can use these form of label values:
|
||||
- "http://[not used address][:port][/path]" to specify an http healthcheck
|
||||
- "tcp://[not used address]:port" to specify a tcp healthcheck
|
||||
- other string is condidered as a "command" healthcheck
|
||||
-> http://[ignored][:port][/path] to specify an http healthcheck
|
||||
-> tcp://[ignored]:port to specify a tcp healthcheck
|
||||
-> other string is condidered as a "command" healthcheck
|
||||
```
|
||||
|
||||
# What a name...
|
||||
|
Reference in New Issue
Block a user