renaming k8s -> c4k
This commit is contained in:
parent
c0360c27ea
commit
3bd2e48408
18 changed files with 60 additions and 60 deletions
.gitlab-ci.ymlREADME.md
doc
package.jsonproject.cljpublic
shadow-cljs.ednsrc
main
clj/dda/c4k_mastodon_bot
cljc/dda/c4k_mastodon_bot
cljs/dda/c4k_mastodon_bot
resources
test/cljc/dda/k8s_mastodon_bot
|
@ -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\"}" \
|
14
README.md
14
README.md
|
@ -1,11 +1,11 @@
|
|||
# k8s-mastodon-bot
|
||||
[](https://clojars.org/dda/k8s-mastodon-bot) [](https://gitlab.com/domaindrivenarchitecture/k8s-mastodon-bot/-/commits/master)
|
||||
# c4k-mastodon-bot
|
||||
[](https://clojars.org/dda/c4k-mastodon-bot) [](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:
|
||||
|
||||
[](https://domaindrivenarchitecture.org/pages/dda-provision/k8s-mastodon-bot/)
|
||||
[](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
|
||||
|
|
|
@ -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 -
|
||||
```
|
|
@ -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
|
||||
```
|
14
package.json
14
package.json
|
@ -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"
|
||||
|
|
10
project.clj
10
project.clj
|
@ -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}"]})
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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?
|
|
@ -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]))
|
|
@ -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?)
|
||||
|
|
@ -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)
|
|
@ -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]
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"))))
|
||||
|
|
|
@ -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")))))
|
||||
|
|
Loading…
Add table
Reference in a new issue