renaming k8s -> c4k

This commit is contained in:
lukas 2021-07-28 17:05:22 +02:00
parent c0360c27ea
commit 3bd2e48408
18 changed files with 60 additions and 60 deletions

View file

@ -43,7 +43,7 @@ test-schema:
stage: build_and_test
script:
- lein uberjar
- java -jar target/uberjar/k8s-mastodon-bot-standalone.jar valid-config.edn valid-auth.edn | kubeconform --kubernetes-version 1.19.0 --strict --skip Certificate -
- java -jar target/uberjar/c4k-mastodon-bot-standalone.jar valid-config.edn valid-auth.edn | kubeconform --kubernetes-version 1.19.0 --strict --skip Certificate -
artifacts:
paths:
- target/uberjar
@ -64,9 +64,9 @@ package-frontend:
script:
- mkdir -p target/frontend-build
- shadow-cljs release frontend
- cp public/js/main.js target/frontend-build/k8s-mastodon-bot.js
- sha256sum target/frontend-build/k8s-mastodon-bot.js > target/frontend-build/k8s-mastodon-bot.js.sha256
- sha512sum target/frontend-build/k8s-mastodon-bot.js > target/frontend-build/k8s-mastodon-bot.js.sha512
- cp public/js/main.js target/frontend-build/c4k-mastodon-bot.js
- sha256sum target/frontend-build/c4k-mastodon-bot.js > target/frontend-build/c4k-mastodon-bot.js.sha256
- sha512sum target/frontend-build/c4k-mastodon-bot.js > target/frontend-build/c4k-mastodon-bot.js.sha512
artifacts:
paths:
- target/frontend-build
@ -75,8 +75,8 @@ package-uberjar:
<<: *clj
stage: package
script:
- sha256sum target/uberjar/k8s-mastodon-bot-standalone.jar > target/uberjar/k8s-mastodon-bot-standalone.jar.sha256
- sha512sum target/uberjar/k8s-mastodon-bot-standalone.jar > target/uberjar/k8s-mastodon-bot-standalone.jar.sha512
- sha256sum target/uberjar/c4k-mastodon-bot-standalone.jar > target/uberjar/c4k-mastodon-bot-standalone.jar.sha256
- sha512sum target/uberjar/c4k-mastodon-bot-standalone.jar > target/uberjar/c4k-mastodon-bot-standalone.jar.sha512
artifacts:
paths:
- target/uberjar
@ -113,9 +113,9 @@ release:
- apk --no-cache add curl
- |
release-cli create --name "Release $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \
--assets-link "{\"name\":\"k8s-mastodon-bot-standalone.jar\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/uberjar/k8s-mastodon-bot-standalone.jar\"}" \
--assets-link "{\"name\":\"k8s-mastodon-bot-standalone.jar.sha256\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/uberjar/k8s-mastodon-bot-standalone.jar.sha256\"}" \
--assets-link "{\"name\":\"k8s-mastodon-bot-standalone.jar.sha512\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/uberjar/k8s-mastodon-bot-standalone.jar.sha512\"}" \
--assets-link "{\"name\":\"k8s-mastodon-bot.js\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/frontend-build/k8s-mastodon-bot.js\"}" \
--assets-link "{\"name\":\"k8s-mastodon-bot.js.sha256\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/frontend-build/k8s-mastodon-bot.js.sha256\"}" \
--assets-link "{\"name\":\"k8s-mastodon-bot.js.sha512\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/frontend-build/k8s-mastodon-bot.js.sha512\"}" \
--assets-link "{\"name\":\"c4k-mastodon-bot-standalone.jar\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/c4k-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/uberjar/c4k-mastodon-bot-standalone.jar\"}" \
--assets-link "{\"name\":\"c4k-mastodon-bot-standalone.jar.sha256\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/c4k-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/uberjar/c4k-mastodon-bot-standalone.jar.sha256\"}" \
--assets-link "{\"name\":\"c4k-mastodon-bot-standalone.jar.sha512\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/c4k-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/uberjar/c4k-mastodon-bot-standalone.jar.sha512\"}" \
--assets-link "{\"name\":\"c4k-mastodon-bot.js\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/c4k-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/frontend-build/c4k-mastodon-bot.js\"}" \
--assets-link "{\"name\":\"c4k-mastodon-bot.js.sha256\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/c4k-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/frontend-build/c4k-mastodon-bot.js.sha256\"}" \
--assets-link "{\"name\":\"c4k-mastodon-bot.js.sha512\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/c4k-mastodon-bot/-/jobs/${CI_JOB_ID}/artifacts/file/target/frontend-build/c4k-mastodon-bot.js.sha512\"}" \

View file

@ -1,11 +1,11 @@
# k8s-mastodon-bot
[![Clojars Project](https://img.shields.io/clojars/v/dda/k8s-mastodon-bot.svg)](https://clojars.org/dda/k8s-mastodon-bot) [![pipeline status](https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot/badges/master/pipeline.svg)](https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot/-/commits/master)
# c4k-mastodon-bot
[![Clojars Project](https://img.shields.io/clojars/v/dda/c4k-mastodon-bot.svg)](https://clojars.org/dda/c4k-mastodon-bot) [![pipeline status](https://gitlab.com/domaindrivenarchitecture/c4k-mastodon-bot/badges/master/pipeline.svg)](https://gitlab.com/domaindrivenarchitecture/c4k-mastodon-bot/-/commits/master)
[<img src="https://domaindrivenarchitecture.org/img/delta-chat.svg" width=20 alt="DeltaChat"> chat over e-mail](mailto:buero@meissa-gmbh.de?subject=community-chat) | [<img src="https://meissa-gmbh.de/img/community/Mastodon_Logotype.svg" width=20 alt="team@social.meissa-gmbh.de"> team@social.meissa-gmbh.de](https://social.meissa-gmbh.de/@team) | [Website & Blog](https://domaindrivenarchitecture.org)
## Purpose
k8s-mastodon-bot generates a k8s cron-job for your mastodon-bot. All inputs are validated, generaterd yaml will be wellformed, indenet and escaped.
c4k-mastodon-bot generates a k8s cron-job for your mastodon-bot. All inputs are validated, generaterd yaml will be wellformed, indenet and escaped.
## Rational
@ -13,7 +13,7 @@ There are many comparable solutions for creating k8s deployments like helm or ku
* We like the simplicity of kustomize. Yaml in, yaml out, the ability to lint the result and the option to split large yaml files into objects. But a simple overwriting per environment may not be enough ...
* We like helm packages. A package encapsulates the setup for an application. On the one hand, but on the other hand we don't like the idea of having to program and debug in a template language. We can program much better in real programming languages.
Our k8s-* tools combine the advantages of both approaches:
Our c4k-* tools combine the advantages of both approaches:
* Packages for one application
* Programming in clojure
* yaml / edn as input and output, no more magic
@ -23,14 +23,14 @@ Our k8s-* tools combine the advantages of both approaches:
Click on the image to try out live in your browser:
[![Try it out](/doc/tryItOut.png "Try out yourself")](https://domaindrivenarchitecture.org/pages/dda-provision/k8s-mastodon-bot/)
[![Try it out](/doc/tryItOut.png "Try out yourself")](https://domaindrivenarchitecture.org/pages/dda-provision/c4k-mastodon-bot/)
Your input will stay in your browser. No server interaction is required.
You will also be able to try out on cli:
```
target/graalvm/k8s-mastodon-bot src/test/resources/valid-config.edn src/test/resources/valid-auth.edn | kubeval -
target/graalvm/k8s-mastodon-bot src/test/resources/valid-config.edn src/test/resources/valid-auth.edn | kubectl apply -f -
target/graalvm/c4k-mastodon-bot src/test/resources/valid-config.edn src/test/resources/valid-auth.edn | kubeval -
target/graalvm/c4k-mastodon-bot src/test/resources/valid-config.edn src/test/resources/valid-auth.edn | kubectl apply -f -
```
## License

View file

@ -57,6 +57,6 @@ kubectl get pods
## deploy mastodon-bot
```
java -jar target/uberjar/k8s-mastodon-bot-standalone.jar myconfig.edn myauth.edn | kubectl apply --dry-run=client -f -
java -jar target/uberjar/k8s-mastodon-bot-standalone.jar myconfig.edn myauth.edn | kubectl apply -f -
java -jar target/uberjar/c4k-mastodon-bot-standalone.jar myconfig.edn myauth.edn | kubectl apply --dry-run=client -f -
java -jar target/uberjar/c4k-mastodon-bot-standalone.jar myconfig.edn myauth.edn | kubectl apply -f -
```

View file

@ -20,13 +20,13 @@ sudo ln -s /usr/lib/jvm/graalvm/bin/native-image /usr/local/bin
sudo apt-get install build-essential libz-dev zlib1g-dev
# build
cd ~/repo/dda/k8s-mastodon-bot
cd ~/repo/dda/c4k-mastodon-bot
lein uberjar
mkdir -p target/graalvm
lein native
# execute
./target/graalvm/k8s-mastodon-bot -h
./target/graalvm/k8s-mastodon-bot src/test/resources/valid-config.edn src/test/resources/valid-auth.edn
./target/graalvm/k8s-mastodon-bot src/test/resources/invalid-config.edn src/test/resources/invalid-auth.edn
./target/graalvm/c4k-mastodon-bot -h
./target/graalvm/c4k-mastodon-bot src/test/resources/valid-config.edn src/test/resources/valid-auth.edn
./target/graalvm/c4k-mastodon-bot src/test/resources/invalid-config.edn src/test/resources/invalid-auth.edn
```

View file

@ -1,24 +1,24 @@
{
"name": "k8s-mastodon-bot",
"name": "c4k-mastodon-bot",
"description": "Generate k8s yaml for a mastodon-bot deployment.",
"author": "meissa GmbH",
"version": "0.1.5-SNAPSHOT",
"homepage": "https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot#readme",
"repository": "https://www.npmjs.com/package/k8s-mastodon-bot",
"homepage": "https://gitlab.com/domaindrivenarchitecture/c4k-mastodon-bot#readme",
"repository": "https://www.npmjs.com/package/c4k-mastodon-bot",
"license": "APACHE2",
"main": "k8s-mastodon-bot.js",
"main": "c4k-mastodon-bot.js",
"bin": {
"k8s-mastodon-bot": "./k8s-mastodon-bot.js"
"c4k-mastodon-bot": "./c4k-mastodon-bot.js"
},
"keywords": [
"cljs",
"mastodon-bot",
"k8s",
"c4k",
"deplyoment",
"yaml"
],
"bugs": {
"url": "https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot/issues"
"url": "https://gitlab.com/domaindrivenarchitecture/c4k-mastodon-bot/issues"
},
"dependencies": {
"js-yaml": "^4.0.0"

View file

@ -1,5 +1,5 @@
(defproject dda/k8s-mastodon-bot "0.1.6-SNAPSHOT"
:description "mastodon-bot k8s-installation package"
(defproject dda/c4k-mastodon-bot "0.1.6-SNAPSHOT"
:description "mastodon-bot c4k-installation package"
:url "https://www.domaindrivenarchitecture.org"
:license {:name "Apache License, Version 2.0"
:url "https://www.apache.org/licenses/LICENSE-2.0.html"}
@ -23,8 +23,8 @@
:dependencies [[dda/data-test "0.1.1"]]}
:dev {:plugins [[lein-shell "0.5.0"]]}
:uberjar {:aot :all
:main dda.k8s-mastodon-bot.uberjar
:uberjar-name "k8s-mastodon-bot-standalone.jar"
:main dda.c4k-mastodon-bot.uberjar
:uberjar-name "c4k-mastodon-bot-standalone.jar"
:dependencies [[org.clojure/tools.cli "1.0.206"]
[ch.qos.logback/logback-classic "1.3.0-alpha4"
:exclusions [com.sun.mail/javax.mail]]
@ -39,7 +39,7 @@
"native-image"
"--report-unsupported-elements-at-runtime"
"--initialize-at-build-time"
"-jar" "target/uberjar/k8s-mastodon-bot-standalone.jar"
"-jar" "target/uberjar/c4k-mastodon-bot-standalone.jar"
"-H:ResourceConfigurationFiles=graalvm-resource-config.json"
"-H:Log=registerResource"
"-H:Name=target/graalvm/${:name}"]})

View file

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8" />
<title>k8s-mastodon-bot</title>
<title>c4k-mastodon-bot</title>
<link href="https://domaindrivenarchitecture.org/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="https://domaindrivenarchitecture.org/css/fonts/fontawesome/fontawesome.css" rel="stylesheet" type="text/css" />
<link href="https://domaindrivenarchitecture.org/css/custom.css" rel="stylesheet" type="text/css" />
@ -67,7 +67,7 @@
<button type="button" id="generate-button" class="btn btn-primary">
Generate k8s yaml
</button></form><br><br>
<div id="k8s-mastodon-bot-output">
<div id="c4k-mastodon-bot-output">
<label for="output" class="form-label">Your k8s deployment.yaml:</label>
<textarea name="output" id="output" class="form-control" rows="15">
</textarea>

View file

@ -8,7 +8,7 @@
[dda/mastodon-bot "1.10.11"]]
:dev-http {8080 "public"}
:builds {:frontend {:target :browser
:modules {:main {:init-fn dda.k8s-mastodon-bot.browser/init}}
:modules {:main {:init-fn dda.c4k-mastodon-bot.browser/init}}
:release {}
:compiler-options {:optimizations :advanced}}
:test {:target :node-test

View file

@ -1,16 +1,16 @@
(ns dda.k8s-mastodon-bot.uberjar
(ns dda.c4k-mastodon-bot.uberjar
(:gen-class)
(:require
[clojure.spec.alpha :as s]
[clojure.string :as cs]
[clojure.tools.reader.edn :as edn]
[expound.alpha :as expound]
[dda.k8s-mastodon-bot.core :as core]))
[dda.c4k-mastodon-bot.core :as core]))
(def usage
"usage:
k8s-mastodon-bot {your configuraton file} {your authorization file}")
c4k-mastodon-bot {your configuraton file} {your authorization file}")
(s/def ::options (s/* #{"-h"}))
(s/def ::filename (s/and string?

View file

@ -1,4 +1,4 @@
(ns dda.k8s-mastodon-bot.yaml
(ns dda.c4k-mastodon-bot.yaml
(:require
[clojure.java.io :as io]
[clj-yaml.core :as yaml]))

View file

@ -1,11 +1,11 @@
(ns dda.k8s-mastodon-bot.core
(ns dda.c4k-mastodon-bot.core
(:require
[clojure.string :as cs]
[clojure.spec.alpha :as s]
#?(:clj [orchestra.core :refer [defn-spec]]
:cljs [orchestra.core :refer-macros [defn-spec]])
[mastodon-bot.core-domain :as cd]
[dda.k8s-mastodon-bot.yaml :as yaml]))
[dda.c4k-mastodon-bot.yaml :as yaml]))
(def config? cd/config?)

View file

@ -1,9 +1,9 @@
(ns dda.k8s-mastodon-bot.browser
(ns dda.c4k-mastodon-bot.browser
(:require
[clojure.spec.alpha :as s]
[clojure.tools.reader.edn :as edn]
[expound.alpha :as expound]
[dda.k8s-mastodon-bot.core :as core]))
[dda.c4k-mastodon-bot.core :as core]))
(defn print-debug [sth]
(print "debug " sth)

View file

@ -1,4 +1,4 @@
(ns dda.k8s-mastodon-bot.yaml
(ns dda.c4k-mastodon-bot.yaml
(:require
["js-yaml" :as yaml]
[shadow.resource :as rc]

View file

@ -3,7 +3,7 @@ kind: ConfigMap
metadata:
name: mastodon-bot
labels:
app.kubernetes.io/name: k8s-mastodon-bot
app.kubernetes.io/name: c4k-mastodon-bot
data:
config.edn: |
some-config-value

View file

@ -3,7 +3,7 @@ kind: CronJob
metadata:
name: mastodon-bot-cron
labels:
app.kubernetes.io/name: k8s-mastodon-bot
app.kubernetes.io/name: c4k-mastodon-bot
spec:
schedule: "*/15 * * * *"
successfulJobsHistoryLimit: 1

View file

@ -1,17 +1,17 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: k8s-mastodon-bot
name: c4k-mastodon-bot
spec:
selector:
matchLabels:
app.kubernetes.io/name: k8s-mastodon-bot
app.kubernetes.io/name: c4k-mastodon-bot
strategy:
type: Recreate
template:
metadata:
labels:
app.kubernetes.io/name: k8s-mastodon-bot
app.kubernetes.io/name: c4k-mastodon-bot
spec:
volumes:
- name: config-volume

View file

@ -1,13 +1,13 @@
(ns dda.k8s-mastodon-bot.core-test
(ns dda.c4k-mastodon-bot.core-test
(:require
#?(:clj [clojure.test :refer [deftest is are testing run-tests]]
:cljs [cljs.test :refer-macros [deftest is are testing run-tests]])
[dda.k8s-mastodon-bot.core :as cut]))
[dda.c4k-mastodon-bot.core :as cut]))
(deftest should-generate-yaml
(is (= {:apiVersion "v1", :kind "ConfigMap"
:metadata {:name "mastodon-bot",
:labels {:app.kubernetes.io/name "k8s-mastodon-bot"}},
:labels {:app.kubernetes.io/name "c4k-mastodon-bot"}},
:data {:config.edn "some-config-value\n",
:credentials.edn "some-credentials-value\n"}}
(cut/generate-config "some-config-value\n" "some-credentials-value\n"))))

View file

@ -1,8 +1,8 @@
(ns dda.k8s-mastodon-bot.yaml-test
(ns dda.c4k-mastodon-bot.yaml-test
(:require
#?(:clj [clojure.test :refer [deftest is are testing run-tests]]
:cljs [cljs.test :refer-macros [deftest is are testing run-tests]])
[dda.k8s-mastodon-bot.yaml :as cut]))
[dda.c4k-mastodon-bot.yaml :as cut]))
(deftest should-parse-yaml-string
(is (= {:hallo "welt"}
@ -16,7 +16,7 @@
(deftest should-convert-config-yml-to-map
(is (= {:apiVersion "v1", :kind "ConfigMap"
:metadata {:name "mastodon-bot",
:labels {:app.kubernetes.io/name "k8s-mastodon-bot"}},
:labels {:app.kubernetes.io/name "c4k-mastodon-bot"}},
:data {:config.edn "some-config-value\n",
:credentials.edn "some-credentials-value\n"}}
(cut/from-string (cut/load-resource "config.yaml")))))