You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
c4k-website/README.md

69 lines
3.5 KiB
Markdown

# convention 4 kubernetes: c4k-website
[![Clojars Project](https://img.shields.io/clojars/v/org.domaindrivenarchitecture/c4k-website.svg)](https://clojars.org/org.domaindrivenarchitecture/c4k-website) [![pipeline status](https://gitlab.com/domaindrivenarchitecture/c4k-website/badges/master/pipeline.svg)](https://gitlab.com/domaindrivenarchitecture/c4k-website/-/commits/main)
2 years ago
[<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)
2 years ago
## Purpose
2 years ago
Delivering cryogen generated static sites with the push of a few buttons.
2 years ago
c4k-website generates configuration files for multiple nginx webservers, and
corresponding cryogen static site generator build containers. This automatically downloads a `<branch>.zip` from a specified gitea API url. You need an authorization token to access the specified gitea user account. The build container is based on clojure:lein.
2 years ago
Following the example in valid-config.edn and valid-auth.edn you can add as many websites as you like (provided you have the DNS Routes set up). One set of configmaps, deployment, services etc will be created for each element in the :websites and :auth list.
Configs generated by c4k-website consists of the following parts:
* nginx webserver + service + ingress + certificate definitions
* job definition that initially starts a build container
* cron job for building and build secret for storing auth data
* respective volume claim
2 years ago
## Try out
2 years ago
Click on the image to try out live in your browser:
2 years ago
[![Try it out](doc/tryItOut.png "Try out yourself")](https://domaindrivenarchitecture.org/pages/dda-provision/c4k-website/)
Your input will stay in your browser. No server interaction is required.
## Usage
2 years ago
You need:
2 years ago
* DNS routes matching the fqdns in the lists
* cryogen as a static site generator
* a cryogen project ready to build
* and a gitea account which holds the buildable project
* a kubernetes cluster provisioned by [provs]
2 years ago
Before deploying, you need an authorization token, that can be generated in your gitea account.
Then you need a URL that points to: `https://your.gitea.host/api/v1/repos/<owner>/<repo>/archive/<branch>.zip`. Add this to your auth.edn config file and you should be ready to go.
2 years ago
Let c4k-website generate your .yaml file and `kubectl apply yourApp.yaml`. Done.
2 years ago
### Script Execution
Optionally you can specify a sha256sum output generated from a script file that should be executed.
Just add the :sha256-output "\[hash-of-file file.name\]" :key value pair to the respective collection in :websites. See the example in valid-config.edn.
The script file needs to exist in the `<branch>.zip` and path specification to the script file
should be relative to the root of the unzipped folder.
Scripts can be of any type - as long as an according shebang exists in the first line.
```bash
sha256sum your-script-file # use output of this call
sha256sum scripts/your-script-file # or this
sha256sum scripts/foo/bar/your-script-file # or this
```
2 years ago
## License
Copyright © 2022 meissa GmbH
Licensed under the [Apache License, Version 2.0](LICENSE) (the "License")
Pls. find licenses of our subcomponents [here](doc/SUBCOMPONENT_LICENSE)
[provs]: https://gitlab.com/domaindrivenarchitecture/provs/