From 3026900b9816234a5a7446854b9a39364c1586d7 Mon Sep 17 00:00:00 2001 From: Clemens Date: Mon, 26 Feb 2024 15:37:25 +0100 Subject: [PATCH] minor revision of readme --- README.md | 24 ++++++++++++------------ doc/tryItOut.png | Bin 0 -> 44074 bytes 2 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 doc/tryItOut.png diff --git a/README.md b/README.md index 0db1970..744fb1b 100644 --- a/README.md +++ b/README.md @@ -11,13 +11,13 @@ There are many comparable solutions for creating c4k deployments like `helm` or Why do we need another one? Why do you continue the reading here? -We combine the simplicity of `kustomize` with the ability for doing real programming as software developers would do. +We combine the simplicity of `kustomize` with the ability to do real programming like software developers would do. Following the principle "Use programming language for programming" -we are clearly enjoy writing kubernetes manifests with clojure. In comparison with helms templating, things such as business logic, conventions, input validation, versions, dependencies and reuse are much easier and much more reliable to implement. +we clearly enjoy writing Kubernetes manifests with Clojure. In comparison to helms templating, things such as business logic, conventions, input validation, versions, dependencies and reuse are much easier and much more reliable to implement with c4k. By the way, c4k means "convention for kubernetes". @@ -64,7 +64,7 @@ The full example can be found here: https://repo.prod.meissa.de/meissa/c4k-forge You can create your manifest as web-application also (using page local js without server interaction) ```html -html> + @@ -91,7 +91,7 @@ and: https://repo.prod.meissa.de/meissa/c4k-forgejo/src/branch/main/src/main/clj #### Separate Configuration from Credentials -We think it is an good idea to have credentials separated from configuration. All our functions, cli and frontend are following this principle. +We think it is an good idea to have credentials separated from configuration. All our functions, cli and frontend are following this principle. Thus, for executing separated config and authentication infos have to be provided. ```bash c4k-common config.edn auth.edn > k8s-manifest.yaml @@ -99,8 +99,8 @@ c4k-common config.edn auth.edn > k8s-manifest.yaml #### Input as EDN or Yaml -c4k-common supports all its resources, input and output as yaml and as edn. -The following command line will work also: +c4k-common supports yaml and edn as format for all of its resources (input and output). +Hence, the following command line will also work: ```bash c4k-common config.yaml auth.yaml > k8s-manifest.yaml @@ -113,11 +113,11 @@ We inline all resources used in our libraries & applications. You can generate k In case of * java: Resources are included in the jar-file out of the box (see https://repo.prod.meissa.de/meissa/c4k-forgejo/src/branch/main/project.clj#L13). * js: With a slim macro call we inline resources to the resulting js file (see https://repo.prod.meissa.de/meissa/c4k-forgejo/src/branch/main/src/main/cljc/dda/c4k_forgejo/forgejo.cljc#L72-L74) -* native: On native builds we inline resources also (see https://repo.prod.meissa.de/meissa/c4k-forgejo/src/branch/main/build.py#L126) +* native: On native builds we also inline resources (see https://repo.prod.meissa.de/meissa/c4k-forgejo/src/branch/main/build.py#L126) -#### Work on structured Data instead flat Templating +#### Work on structured Data instead of flat templating -To keep things simple, we do also templating. But we convert given k8s resources to structured data. +To keep things simple, we also do templating. But we convert given k8s resources to structured data. This allows us to have more control and do unit tests: k8s-resource: @@ -158,7 +158,7 @@ Have a unit-test: #### Validate your inputs -Have you recognized the `defn-spec` marco? We use allover validation, e.g. +Have you recognized the `defn-spec` macro above? We use allover validation, e.g. ```clojure (def rate-limit-config? (s/keys :req-un [::max-rate @@ -183,7 +183,7 @@ We support namespaces for ingress & postgres (monitoring lives in it's own names #### Ingress -In most cases we use 'generate-ingress-and-cert' which generates an ingres in combination with letsencrypt cert for a named service. +In most cases we use `generate-ingress-and-cert` which generates an ingress in combination with letsencrypt cert for a named service. ```clojure (deftest should-generate-ingress-and-cert @@ -243,7 +243,7 @@ With minimal config of (monitoring/generate conf auth) ``` -You can attach your application to grafana cloud. +You can connect your application to grafana cloud. ## Refactoring & Module Overview diff --git a/doc/tryItOut.png b/doc/tryItOut.png new file mode 100644 index 0000000000000000000000000000000000000000..73e98d617acbcecea5c395dc9c83fe2020a819b4 GIT binary patch literal 44074 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 faRc+>&Y{X-&L4uwQ$z8kmHf=3&%^!$