Try to embed logos

This commit is contained in:
2024-04-22 15:17:28 +02:00
parent 78d37c4405
commit 734b0ed39d
3 changed files with 103 additions and 68 deletions

151
README.md
View File

@@ -1,7 +1,10 @@
<div style="text-align:center; margin: auto 0 4em 0" align="center"> <div style="text-align:center; margin: auto 0 4em 0" align="center">
<img src="./doc/docs/statics/logo-vertical.svg" alt="Katenary Logo" style="max-width: 90%" align="center"/> <img src="./doc/docs/statics/logo-vertical.svg" alt="Katenary Logo" style="max-width: 90%" align="center"/>
</div> </div>
[![Documentation Status](https://readthedocs.org/projects/katenary/badge/?version=latest)](https://katenary.readthedocs.io/en/latest/?badge=latest)
[![Go Report Card](https://goreportcard.com/badge/github.com/metal3d/katenary)](https://goreportcard.com/report/github.com/metal3d/katenary)
[![GitHub release](https://img.shields.io/github/v/release/metal3d/katenary)](https://github.com/metal3d/katenary/releases)
🚀 Unleash Productivity with Katenary! 🚀 🚀 Unleash Productivity with Katenary! 🚀
@@ -21,6 +24,18 @@ Katenary is a tool to help to transform `docker-compose` files to a working Helm
> doesn't propose as many features as what can do Kubernetes. So, we strongly recommend to use Katenary as a "bootstrap" > 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. > tool and then to manually enhance the generated helm chart.
Today, it's partially developped in collaboration with [Klee Group](https://www.kleegroup.com). Note that Katenary is
and **will stay an opensource and free (as freedom) project**. We are convinced that the best way to make it better is to
share it with the community.
<div style="width: 100%">
<img src="./logo.svg" alt="Katenary Logo" style="width: 100%" align="center"/>
</div>
The main developer is [Patrice FERLET](https://github.com/metal3d).
# Install # Install
You can download the binaries from the [Release](https://github.com/metal3d/katenary/releases) section. Copy the binary You can download the binaries from the [Release](https://github.com/metal3d/katenary/releases) section. Copy the binary
@@ -84,25 +99,25 @@ source <(katenary completion bash --no-description)
source <(katenary completion zsh) source <(katenary completion zsh)
# fish in ~/.config/fish/config.fish # fish in ~/.config/fish/config.fish
katenary completion fish | source katenary completion fish | source
# powershell (as we don't provide any support on Windows yet, please avoid this...) # powershell (as we don't provide any support on Windows yet, please avoid this...)
``` ```
# Usage # Usage
``` ```
Katenary is a tool to convert compose files to Helm Charts. Katenary is a tool to convert compose files to Helm Charts.
Each [command] and subcommand has got an "help" and "--help" flag to show more information. Each [command] and subcommand has got an "help" and "--help" flag to show more information.
Usage: Usage:
katenary [command] katenary [command]
Examples: Examples:
katenary convert -c docker-compose.yml -o ./charts katenary convert -c docker-compose.yml -o ./charts
Available Commands: Available Commands:
completion Generates completion scripts completion Generates completion scripts
convert Converts a docker-compose file to a Helm Chart convert Converts a docker-compose file to a Helm Chart
hash-composefiles Print the hash of the composefiles hash-composefiles Print the hash of the composefiles
@@ -110,77 +125,77 @@ Available Commands:
help-labels Print the labels help for all or a specific label help-labels Print the labels help for all or a specific label
version Print the version number of Katenary version Print the version number of Katenary
Flags: Flags:
-h, --help help for katenary -h, --help help for katenary
-v, --version version for katenary -v, --version version for katenary
Use "katenary [command] --help" for more information about a command. Use "katenary [command] --help" for more information about a command.
``` ```
Katenary will try to find a `docker-compose.yaml` or `docker-compose.yml` file inside the current directory. It will Katenary will try to find a `docker-compose.yaml` or `docker-compose.yml` file inside the current directory. It will
check *the existence of the `chart` directory to create a new Helm Chart inside a named subdirectory. Katenary will ask check *the existence of the `chart` directory to create a new Helm Chart inside a named subdirectory. Katenary will ask
you if you want to delete it before recreating. you if you want to delete it before recreating.
It creates a subdirectory inside `chart` that is named with the `appname` option (default is `MyApp`) It creates a subdirectory inside `chart` that is named with the `appname` option (default is `MyApp`)
> To respect the ability to install the same application in the same namespace, Katenary will create "variable" names > To respect the ability to install the same application in the same namespace, Katenary will create "variable" names
> like `{{ .Release.Name }}-servicename`. So, you will need to use some labels inside your docker-compose file to help > like `{{ .Release.Name }}-servicename`. So, you will need to use some labels inside your docker-compose file to help
> katenary to build a correct helm chart. > katenary to build a correct helm chart.
What can be interpreted by Katenary: What can be interpreted by Katenary:
- Services with "image" section (cannot work with "build" section) - 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 - **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) 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 - 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 on service (using the first port) - `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 - `env_file` list will create a configMap object per environemnt file (⚠ to-do: the "to-service" label doesn't work with
configMap for now) configMap for now)
- some labels can help to bind values, see examples below - some labels can help to bind values, see examples below
Exemple of a possible `docker-compose.yaml` file: Exemple of a possible `docker-compose.yaml` file:
```yaml ```yaml
version: "3" version: "3"
services: services:
webapp: webapp:
image: php:7-apache image: php:7-apache
environment: environment:
# note that "database" is a service name # note that "database" is a service name
DB_HOST: database DB_HOST: database
expose: expose:
- 80 - 80
depends_on: depends_on:
# this will create a init container waiting for 3306 port # this will create a init container waiting for 3306 port
# because it's the "exposed" port # because it's the "exposed" port
- database - database
labels: labels:
# expose the port 80 as an ingress # expose the port 80 as an ingress
katenary.v3/ingress: |- katenary.v3/ingress: |-
hostname: myapp.example.com hostname: myapp.example.com
port: 80 port: 80
# make adaptations, DB_HOST environment is actually the service name # make adaptations, DB_HOST environment is actually the service name
# to hit (note the yaml style, start with "|") # to hit (note the yaml style, start with "|")
katenary.v3/mapenv: |- katenary.v3/mapenv: |-
DB_HOST: '{{ .Release.Name }}-database' DB_HOST: '{{ .Release.Name }}-database'
database: database:
image: mariadb:10 image: mariadb:10
env_file: env_file:
# this will create a configMap # this will create a configMap
- my_env.env - my_env.env
environment: environment:
MARIADB_USER: foo MARIADB_USER: foo
MARIADB_ROOT_PASSWORD: foobar MARIADB_ROOT_PASSWORD: foobar
MARIADB_PASSWORD: bar MARIADB_PASSWORD: bar
labels: labels:
# no need to declare this port in docker-compose # no need to declare this port in docker-compose
# but katenary will need it # but katenary will need it
katenary.v3/ports: |- katenary.v3/ports: |-
- 3306 - 3306
# these variables are secrets # these variables are secrets
katenary.v3/secrets: |- katenary.v3/secrets: |-
- MARIADB_ROOT_PASSWORD - MARIADB_ROOT_PASSWORD
- MARIADB_PASSWORD - MARIADB_PASSWORD
``` ```
# Labels # Labels

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 47 KiB

19
logo.svg Normal file
View File

@@ -0,0 +1,19 @@
<svg viewBox="0 0 600 300" width="600" height="300" xmlns="http://www.w3.org/2000/svg">
<foreignObject width="100%" height="100%">
<div xmlns="http://www.w3.org/1999/xhtml">
<style>
body {
margin: 0;
padding: 0;
background-color: white;
}
img {
height: 100vh;
width: 100vw;
}
</style>
<img src="/doc/docs/statics/klee.svg"/>
</div>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 445 B