feat(doc): Enhancement, cleanup, add package instructions
- remove trailing spaces - add instruction for packages - reindent YAML examples - remove section telling that there is no config files, as `katenary.yaml` file can now be used
This commit is contained in:
22
README.md
22
README.md
@@ -37,6 +37,24 @@ The main developer is [Patrice FERLET](https://repo.katenary.io/metal3d).
|
||||
|
||||
## Install
|
||||
|
||||
### Package from repository and Windows installer
|
||||
|
||||
You can find Linux packages repository and Windows installer in the [packages page](https://repo.katenary.io/Katenary/katenary/packages).
|
||||
|
||||
> Note for Fedora >= 42, the repository instructions are not up-to-date. You should use:
|
||||
>
|
||||
> ```bash
|
||||
> dnf config-manager addrepo \
|
||||
> --from-repofile https://repo.katenary.io/Katenary/katenary/fedora/katenary.repo
|
||||
> dnf install katenary
|
||||
> ```
|
||||
|
||||
- Windows users, go to the "generic" packages page, and download the `setup.exe` file.
|
||||
- macOS users, please use the "`darwin`" binary. An experimental package is in preparation.
|
||||
- FreedBSD users, please use the "`freebsd`" package in "generic" packages page.
|
||||
|
||||
### Binary installation
|
||||
|
||||
You can download the binaries from the [Release](https://repo.katenary.io/Katenary/katenary/releases) section. Copy the binary
|
||||
and rename it to `katenary`. Place the binary inside your `PATH`. You should now be able to call the `katenary` command.
|
||||
|
||||
@@ -54,7 +72,7 @@ go install -u katenary.io/cmd@latest
|
||||
go install -u katenary.io/cmd@v3.0.0
|
||||
```
|
||||
|
||||
## Or, build yourself
|
||||
### Or, build yourself
|
||||
|
||||
If you've got `podman` or `docker`, you can build `katenary` by using:
|
||||
|
||||
@@ -69,7 +87,7 @@ make install
|
||||
```
|
||||
|
||||
It will use the default PREFIX (`~/.local/`) to install the binary in the `bin` subdirectory. You can force the PREFIX
|
||||
value at install time, but maybe you need to use "sudo":
|
||||
value at install time, but maybe you need to use "`sudo`":
|
||||
|
||||
```bash
|
||||
sudo make install PREFIX=/usr/local
|
||||
|
2
doc/.editorconfig
Normal file
2
doc/.editorconfig
Normal file
@@ -0,0 +1,2 @@
|
||||
[*.md]
|
||||
indent_size=2
|
@@ -92,7 +92,7 @@ For each source container linked to the destination:
|
||||
- we then copy the service port to the destination service
|
||||
- we finally remove the source service and deployment
|
||||
|
||||
> The `Configmap`, secrets, variables... are kept.
|
||||
> The `Configmap`, secrets, variables, and so on, are kept.
|
||||
|
||||
It finally computes the `helper` file.
|
||||
|
||||
|
@@ -6,9 +6,9 @@ The main author[^1] of Katenary is a big fan of Podman, Docker and makes a huge
|
||||
daily work. When he started to work with Kubernetes, he wanted to have the same experience as with Docker Compose.
|
||||
He wanted to have a tool that could convert his `docker-compose` files to Kubernetes manifests, but also to Helm charts.
|
||||
|
||||
Kompose was a good option. But the lacks of some options and configuration for the output Helm chart made him think
|
||||
about creating a new tool. He wanted to have a tool that could generate a complete Helm chart, with a lot of options
|
||||
and flexibility.
|
||||
[Kompose](https://kompose.io/) was a good option. But the lacks of some options and configuration for the output Helm
|
||||
chart made him think about creating a new tool. He wanted to have a tool that could generate a complete Helm chart,
|
||||
with a lot of options and flexibility.
|
||||
|
||||
[^1]: I'm talking about myself :sunglasses: - Patrice FERLET, aka Metal3d, Tech Lead and DevOps Engineer at Klee Group.
|
||||
|
||||
@@ -51,15 +51,6 @@ many indentation levels in the YAML file.
|
||||
|
||||
It is also more flexible. You can add or remove labels without changing the others.
|
||||
|
||||
## Why not using a configuration file?
|
||||
|
||||
The idea was to keep the configuration at a same place, and using the go-compose library to read the labels. It's
|
||||
easier to have a single file to manage.
|
||||
|
||||
By the way, Katenary auto accepts a `compose.katenary.yaml` file in the same directory. It's a way to separate the
|
||||
configuration from the compose file. It uses
|
||||
the [overrides' mechanism](https://docs.docker.com/compose/multiple-compose-files/merge/) like "compose" does.
|
||||
|
||||
## Why not developing with Rust?
|
||||
|
||||
Seriously...
|
||||
@@ -99,9 +90,6 @@ us by giving us some money, or by giving us some time of your developers, or lea
|
||||
|
||||
### If you're an individual
|
||||
|
||||
All donators will be listed on the website and in the documentation. You can give us some money by using
|
||||
the [GitHub Sponsors]()
|
||||
|
||||
All main contributors[^3] will be listed on the website and in the documentation.
|
||||
|
||||
> If you want to be anonymous, please tell us.
|
||||
|
@@ -44,28 +44,50 @@ The main developer is [Patrice FERLET](https://repo.katenary.io/metal3d).
|
||||
The project source
|
||||
code is hosted on the [:fontawesome-brands-git: Katenary Repository](https://repo.katenary.io/Katenary/katenary).
|
||||
|
||||
## Install Katenary
|
||||
# Install Katenary
|
||||
|
||||
Katenary is developed using the :fontawesome-brands-golang:{ .gopher } [Go](https://go.dev) language.
|
||||
The binary is statically linked, so you can simply download it from the [release
|
||||
page](https://github.com/Katenary/katenary/releases) of the project in GitHub.
|
||||
## Linux / Windows package distribution or setup.exe
|
||||
|
||||
The simplest way to install Katenary is to install the package or use Windows installer from the page [packages page](https://repo.katenary.io/Katenary/katenary/packages).
|
||||
You will find packages and instructions to install the repository for your distribution for :
|
||||
|
||||
- RPM (Fedora, Rocky, Alma, OpenSUSE...)
|
||||
- DEB (Debian, Ubuntu, Mint...)
|
||||
- Arch Linux (AUR)
|
||||
- Windows (in the "generic" packages page, use the "setup" file)
|
||||
|
||||
!!! Note "Fedora >= 42"
|
||||
|
||||
The instruction is not updated for newest version of `dnf`. If the command to add the repository doesn't work, you can
|
||||
try:
|
||||
|
||||
```bash
|
||||
dnf config-manager addrepo \
|
||||
--from-repofile https://repo.katenary.io/api/packages/Katenary/rpm.repo
|
||||
```
|
||||
|
||||
As Katenary is developed using the :fontawesome-brands-golang:{ .gopher } [Go](https://go.dev) language the binary is statically
|
||||
linked, so you can simply download it from the [generic package page](https://repo.katenary.io/Katenary/katenary/packages) and get the version
|
||||
which is compatible with your operating system and architecture.
|
||||
|
||||
You need to select the right binary for your operating system and architecture, and copy the binary in a directory
|
||||
that is in your `PATH`.
|
||||
|
||||
If you are a Linux user, you can use the "one line installation command" which will download the binary in your
|
||||
## Linux - one line installation command
|
||||
|
||||
If you are a Linux user, you can use the "one line installation command" which will download the **binary** in your
|
||||
`$HOME/.local/bin` directory if it exists.
|
||||
|
||||
```bash
|
||||
sh <(curl -sSL https://repo.katenary.io/Katenary/katenary/raw/branch/master/install.sh)
|
||||
```
|
||||
|
||||
!!! Info "Upgrading is integrated to the `katenary` command"
|
||||
Katenary propose a `upgrade` sub-command to update the current binary to the latest stable release.
|
||||
## Compile from sources
|
||||
|
||||
Of course, you need to install Katenary once :smile:
|
||||
You can, of course, compile Katenary from sources.
|
||||
|
||||
!!! Note "You prefer to compile it, no need to install Go"
|
||||
|
||||
You can also build and install it yourself, the provided Makefile has got a `build` command that uses `podman` or
|
||||
`docker` to build the binary.
|
||||
|
||||
@@ -107,7 +129,7 @@ source <(katenary completion bash)
|
||||
|
||||
Add this line in you `~/.profile`, `~/.bash_aliases` or `~/.bashrc` file to have completion at startup.
|
||||
|
||||
## What a name
|
||||
# What a name
|
||||
|
||||
A catenary is the curve that a hanging chain or cable assumes under its own weight when supported only at its ends.
|
||||
I, the maintainer, decided to name "Katenary" this project because it's like a chain that links a boat to a dock.
|
||||
@@ -119,7 +141,7 @@ Anyway, it's too late to change the name now :smile:
|
||||
|
||||
I spent time to find it :wink:
|
||||
|
||||
## Special thanks to
|
||||
# Special thanks to
|
||||
|
||||
I really want to thank all the contributors, testers, and of course, the authors of the packages and tools that are used
|
||||
in this project. There is too many to list here. Katenary can work because of all these people. Open source is a great
|
||||
@@ -157,6 +179,6 @@ thing! :heart:
|
||||
<a href="https://www.mkdocs.org/" target="_blank">MkDocs</a> using <a
|
||||
href="https://squidfunk.github.io/mkdocs-material/" target="_blank">Material for MkDocs</a> theme template.
|
||||
|
||||
## License
|
||||
# License
|
||||
|
||||
Katenary is an open source project under the MIT license. You can use it, modify it, and distribute it as you want.
|
||||
|
@@ -52,10 +52,10 @@ service directory.
|
||||
|
||||
If it is a directory, all files inside it are added to the ConfigMap.
|
||||
|
||||
If the directory as subdirectories, so one configmap per subpath are created.
|
||||
If the directory as subdirectories, so one ConfigMap per sub-path are created.
|
||||
|
||||
!!! Warning
|
||||
It is not intended to be used to store an entire project in configmaps.
|
||||
It is not intended to be used to store an entire project in ConfigMaps.
|
||||
It is intended to be used to store configuration files that are not managed
|
||||
by the application, like nginx configuration files. Keep in mind that your
|
||||
project sources should be stored in an application image or in a storage.
|
||||
@@ -80,6 +80,7 @@ Create a cronjob from the service.
|
||||
This adds a cronjob to the chart.
|
||||
|
||||
The label value is a YAML object with the following attributes:
|
||||
|
||||
- command: the command to be executed
|
||||
- schedule: the cron schedule (cron format or @every where "every" is a
|
||||
duration like 1h30m, daily, hourly...)
|
||||
@@ -207,6 +208,7 @@ This will create:
|
||||
- a `initContainer` for each definition
|
||||
|
||||
Fields:
|
||||
|
||||
- name: the name of the volume (manadatory)
|
||||
- mountPath: the path where the volume is mounted in the pod (optional, default is `/opt`)
|
||||
- init: a command to run to initialize the volume with data (optional)
|
||||
@@ -418,7 +420,7 @@ Environment variables to be added to the values.yaml
|
||||
**Type**: `[]string or map[string]string`
|
||||
|
||||
By default, all environment variables in the "env" and environment
|
||||
files are added to configmaps with the static values set. This label
|
||||
files are added to ConfigMaps with the static values set. This label
|
||||
allows adding environment variables to the values.yaml file.
|
||||
|
||||
Note that the value inside the configmap is `{{ tpl vaname . }}`, so
|
||||
|
@@ -129,6 +129,7 @@ After having installed `katenary`, the standard usage is to call:
|
||||
It will search standard compose files in the current directory and try to create a helm chart in "chart" directory.
|
||||
|
||||
!!! Info
|
||||
|
||||
Katenary uses the compose-go library which respects the Docker and Docker-Compose specification. Keep in mind that
|
||||
it will find files exactly the same way as `docker-compose` and `podman-compose` do it.
|
||||
|
||||
@@ -141,6 +142,7 @@ Of course, you can provide others files than the default with (cumulative) `-c`
|
||||
Katenary proposes a lot of labels to configure the helm chart generation, but some are very important.
|
||||
|
||||
!!! Info
|
||||
|
||||
For more complete label usage, see [the labels page](labels.md).
|
||||
|
||||
### Work with Depends On?
|
||||
|
@@ -1,7 +1,7 @@
|
||||
'\" t
|
||||
.\" Automatically generated by Pandoc 3.1.11.1
|
||||
.\"
|
||||
.TH "Katenary" "1" "2025-08-21" "mkdocs-manpage v2.0.1" "Katenary helm chart generator"
|
||||
.TH "Katenary" "1" "2025-08-29" "mkdocs-manpage v2.0.1" "Katenary helm chart generator"
|
||||
.SH Basic Usage
|
||||
Basically, you can use \f[CR]katenary\f[R] to transpose a docker\-compose file (or any compose file compatible with \f[CR]podman\-compose\f[R] and \f[CR]docker\-compose\f[R]) to a configurable Helm Chart.
|
||||
This resulting helm chart can be installed with \f[CR]helm\f[R] command to your Kubernetes cluster.
|
||||
|
@@ -45,7 +45,7 @@
|
||||
short: "Environment variables to be added to the values.yaml"
|
||||
long: |-
|
||||
By default, all environment variables in the "env" and environment
|
||||
files are added to configmaps with the static values set. This label
|
||||
files are added to ConfigMaps with the static values set. This label
|
||||
allows adding environment variables to the values.yaml file.
|
||||
|
||||
Note that the value inside the configmap is {{ "{{ tpl vaname . }}" }}, so
|
||||
@@ -232,10 +232,10 @@
|
||||
|
||||
If it is a directory, all files inside it are added to the ConfigMap.
|
||||
|
||||
If the directory as subdirectories, so one configmap per subpath are created.
|
||||
If the directory as subdirectories, so one ConfigMap per sub-path are created.
|
||||
|
||||
!!! Warning
|
||||
It is not intended to be used to store an entire project in configmaps.
|
||||
It is not intended to be used to store an entire project in ConfigMaps.
|
||||
It is intended to be used to store configuration files that are not managed
|
||||
by the application, like nginx configuration files. Keep in mind that your
|
||||
project sources should be stored in an application image or in a storage.
|
||||
@@ -253,6 +253,7 @@
|
||||
This adds a cronjob to the chart.
|
||||
|
||||
The label value is a YAML object with the following attributes:
|
||||
|
||||
- command: the command to be executed
|
||||
- schedule: the cron schedule (cron format or @every where "every" is a
|
||||
duration like 1h30m, daily, hourly...)
|
||||
@@ -299,6 +300,7 @@
|
||||
- a `initContainer` for each definition
|
||||
|
||||
Fields:
|
||||
|
||||
- name: the name of the volume (manadatory)
|
||||
- mountPath: the path where the volume is mounted in the pod (optional, default is `/opt`)
|
||||
- init: a command to run to initialize the volume with data (optional)
|
||||
|
Reference in New Issue
Block a user