vault backup: 2024-11-18 09:16:22
This commit is contained in:
4 files changed
+68
-40
No files matched your search
@@ -18,14 +18,20 @@
|
||||
{"id":"b8f22db569cc69e9","type":"group","x":920,"y":-140,"width":330,"height":100,"color":"1","label":"ACME (Let's Encrypt)"},
|
||||
{"id":"44c519bd19bcd65f","type":"group","x":920,"y":-350,"width":330,"height":100,"color":"1","label":"CrowdSec"},
|
||||
{"id":"d060ee64dd15c9cf","type":"group","x":-1520,"y":-115,"width":330,"height":100,"color":"1","label":"Code Forge (Codey)"},
|
||||
{"id":"dcf06ea30c6f733d","type":"text","text":"API","x":-320,"y":-85,"width":130,"height":60},
|
||||
{"id":"f2a023a73e2bdcdd","type":"text","text":"etcd","x":-160,"y":-85,"width":130,"height":60},
|
||||
{"id":"8b120478236e21dc","type":"text","text":"Sender","x":-810,"y":-490,"width":130,"height":60,"color":"1"},
|
||||
{"id":"92fb8d9fa302f6b1","type":"text","text":"Event","x":-655,"y":-490,"width":130,"height":60,"color":"1"},
|
||||
{"id":"a66edac3ddd395e2","type":"text","text":"Service Account","x":-889,"y":-245,"width":179,"height":60,"color":"3"},
|
||||
{"id":"18a3cf95414f5369","type":"text","text":"Manifest","x":-900,"y":60,"width":140,"height":60,"color":"4"},
|
||||
{"id":"5a596f91e7103d0c","type":"text","text":"Environment","x":-700,"y":60,"width":160,"height":60,"color":"4"},
|
||||
{"id":"cf45e1c4b0f1b7bf","type":"text","text":"Repo","x":-1060,"y":-20,"width":122,"height":60,"color":"4"},
|
||||
{"id":"43268b11483c8d6e","type":"text","text":"Scheduler","x":-320,"y":5,"width":130,"height":60},
|
||||
{"id":"c13b3a207917b83d","type":"text","text":"RBAC","x":-160,"y":5,"width":130,"height":60},
|
||||
{"id":"6ce5cc096f165c2d","type":"text","text":"enterprise-18.0.tar.gz","x":-359,"y":200,"width":182,"height":69,"color":"1"},
|
||||
{"id":"eb08434a02553ef4","type":"text","text":"enterprise-17.0.tar.gz","x":-355,"y":299,"width":178,"height":60,"color":"1"},
|
||||
{"id":"89c42576995a9cc7","type":"text","text":"dump-18.0.sql","x":-162,"y":200,"width":182,"height":69,"color":"1"},
|
||||
{"id":"8a60def955ac42fa","type":"text","text":"dump-17.0.sql","x":-162,"y":299,"width":182,"height":60,"color":"1"},
|
||||
{"id":"dcf06ea30c6f733d","type":"text","text":"API","x":-320,"y":-85,"width":130,"height":60},
|
||||
{"id":"f2a023a73e2bdcdd","type":"text","text":"etcd","x":-160,"y":-85,"width":130,"height":60},
|
||||
{"id":"95766495719a37b3","type":"text","text":"Odoo Build Workflow","x":-320,"y":480,"width":144,"height":60,"color":"4"},
|
||||
{"id":"9aa0ee094633cdaa","type":"text","text":"Runner","x":-160,"y":480,"width":140,"height":60},
|
||||
{"id":"5205b20caa2b886b","type":"text","text":"Kubernetes Master","x":-320,"y":-225,"width":225,"height":60,"color":"3"},
|
||||
@@ -33,52 +39,46 @@
|
||||
{"id":"a0e6ead9d4c1cb26","type":"text","text":"Transaction","x":-225,"y":-490,"width":130,"height":60,"color":"1"},
|
||||
{"id":"c7c81edf0fc722ed","type":"text","text":"ConfigMap","x":-680,"y":-20,"width":140,"height":60,"color":"4"},
|
||||
{"id":"f8ec3076b89362b3","type":"text","text":"App","x":-900,"y":-20,"width":100,"height":60,"color":"4"},
|
||||
{"id":"cec3783e47d70aff","type":"text","text":"Cluster","x":-700,"y":-95,"width":160,"height":60,"color":"4"},
|
||||
{"id":"ea848f1fde8fa4dd","type":"text","text":"Namespace","x":-900,"y":-95,"width":160,"height":60,"color":"4"},
|
||||
{"id":"b7199a5adfeeaccb","type":"text","text":"odoo-deploy.yaml","x":-918,"y":249,"width":197,"height":60,"color":"4"},
|
||||
{"id":"ce16b6db6e27aa72","type":"text","text":"odoo-srv.yaml","x":-700,"y":249,"width":197,"height":60,"color":"4"},
|
||||
{"id":"0cee2df8faf4757e","type":"text","text":"postgres-deploy.yaml","x":-918,"y":339,"width":197,"height":60,"color":"4"},
|
||||
{"id":"4bdfa083b05db009","type":"text","text":"postgres-srv.yaml","x":-700,"y":339,"width":197,"height":60,"color":"4"},
|
||||
{"id":"8b120478236e21dc","type":"text","text":"Sender","x":-810,"y":-490,"width":130,"height":60,"color":"1"},
|
||||
{"id":"cec3783e47d70aff","type":"text","text":"Cluster","x":-700,"y":-95,"width":160,"height":60,"color":"4"},
|
||||
{"id":"ea848f1fde8fa4dd","type":"text","text":"Namespace","x":-900,"y":-95,"width":160,"height":60,"color":"4"},
|
||||
{"id":"92fb8d9fa302f6b1","type":"text","text":"Event","x":-655,"y":-490,"width":130,"height":60,"color":"1"},
|
||||
{"id":"71a51c96b85fadfa","type":"text","text":"Ingress","x":520,"y":-120,"width":120,"height":60},
|
||||
{"id":"329ab2c59cf6f4e7","type":"text","text":"Deployment","x":220,"y":-120,"width":150,"height":60},
|
||||
{"id":"723f02b644d72fba","type":"text","text":"Prometheus","x":530,"y":120,"width":140,"height":60},
|
||||
{"id":"31790cf32eab090a","type":"text","text":"Grafana","x":530,"y":20,"width":140,"height":60},
|
||||
{"id":"51772f93b21a71b8","type":"text","text":"Odoo Instance","x":-1076,"y":-245,"width":158,"height":60,"color":"3"},
|
||||
{"id":"61818d7dab75d4ed","type":"text","text":"Organisation","x":-1500,"y":-95,"width":130,"height":60,"color":"1"},
|
||||
{"id":"8919ecf5c7a821b2","type":"text","text":"Service","x":380,"y":-120,"width":120,"height":60},
|
||||
{"id":"d7d15ef18fc64683","type":"text","text":"Init","x":240,"y":120,"width":100,"height":60},
|
||||
{"id":"77dffd664ffca082","type":"text","text":"Harbor","x":230,"y":279,"width":140,"height":60},
|
||||
{"id":"101fa480091a2153","type":"text","text":"Postgres","x":370,"y":120,"width":120,"height":60},
|
||||
{"id":"a28a0de013a4b49b","type":"text","text":"Velero","x":230,"y":360,"width":140,"height":60},
|
||||
{"id":"1c0e6a6d1c01f931","type":"text","text":"Storage","x":80,"y":600,"width":130,"height":60,"color":"1"},
|
||||
{"id":"b8e5928d7d527c9f","type":"text","text":"Kopia Server","x":240,"y":600,"width":130,"height":60,"color":"6"},
|
||||
{"id":"f01f305db5c5b9d2","type":"text","text":"Git Provider","x":-1060,"y":-95,"width":122,"height":60,"color":"4"},
|
||||
{"id":"2d0b5156065769f7","type":"text","text":"Git Repos","x":-1345,"y":-95,"width":130,"height":60,"color":"1"},
|
||||
{"id":"42291fbf852109c2","type":"text","text":"HTTP-API","x":940,"y":-120,"width":130,"height":60,"color":"1"},
|
||||
{"id":"459f82249f7fcc00","type":"text","text":"DNS-API","x":1100,"y":-120,"width":130,"height":60,"color":"1"},
|
||||
{"id":"9f8aa0ad1d48cec0","type":"text","text":"IP Blocklist","x":940,"y":-330,"width":130,"height":60,"color":"1"},
|
||||
{"id":"8919ecf5c7a821b2","type":"text","text":"Service","x":380,"y":-120,"width":120,"height":60},
|
||||
{"id":"d772e43944e83be1","type":"text","text":"Kubernetes Agent","x":213,"y":-260,"width":187,"height":60,"color":"3"},
|
||||
{"id":"3aeb969d047cb203","type":"text","text":"Service Account","x":442,"y":-260,"width":198,"height":60,"color":"3"},
|
||||
{"id":"c43958050f2525ff","type":"text","text":"Keycloak","x":370,"y":20,"width":120,"height":60},
|
||||
{"id":"50af5bb0668723b6","type":"text","text":"Addons","x":420,"y":279,"width":140,"height":60},
|
||||
{"id":"a3a7196d6996c05c","type":"text","text":"Database","x":420,"y":360,"width":140,"height":60},
|
||||
{"id":"538706384c193d75","type":"text","text":"Traffic Logs","x":1100,"y":-330,"width":130,"height":60,"color":"1"},
|
||||
{"id":"9352d048d65c30d7","type":"text","text":"Cert Manager","x":660,"y":-120,"width":120,"height":60},
|
||||
{"id":"5fe01b8955580f38","type":"text","text":"Filestore","x":600,"y":279,"width":140,"height":60},
|
||||
{"id":"d7d15ef18fc64683","type":"text","text":"Init","x":240,"y":120,"width":100,"height":60},
|
||||
{"id":"1182553e34d763af","type":"text","text":"Odoo","x":240,"y":20,"width":100,"height":60},
|
||||
{"id":"77dffd664ffca082","type":"text","text":"Harbor","x":230,"y":279,"width":140,"height":60},
|
||||
{"id":"101fa480091a2153","type":"text","text":"Postgres","x":370,"y":120,"width":120,"height":60},
|
||||
{"id":"71a51c96b85fadfa","type":"text","text":"Ingress","x":520,"y":-120,"width":120,"height":60},
|
||||
{"id":"723f02b644d72fba","type":"text","text":"Prometheus","x":530,"y":120,"width":140,"height":60},
|
||||
{"id":"31790cf32eab090a","type":"text","text":"Grafana","x":530,"y":20,"width":140,"height":60},
|
||||
{"id":"3aeb969d047cb203","type":"text","text":"Service Account","x":442,"y":-260,"width":198,"height":60,"color":"3"},
|
||||
{"id":"50af5bb0668723b6","type":"text","text":"Addons","x":420,"y":279,"width":140,"height":60},
|
||||
{"id":"a3a7196d6996c05c","type":"text","text":"Database","x":420,"y":360,"width":140,"height":60},
|
||||
{"id":"5fe01b8955580f38","type":"text","text":"Filestore","x":600,"y":279,"width":140,"height":60},
|
||||
{"id":"89fd0cbaf4354781","type":"text","text":"Images","x":600,"y":360,"width":140,"height":60},
|
||||
{"id":"476c8f5d275a6033","type":"text","text":"**K8s**","x":260,"y":-620,"width":115,"height":60,"color":"3"},
|
||||
{"id":"329ab2c59cf6f4e7","type":"text","text":"Deployment","x":220,"y":-120,"width":150,"height":60},
|
||||
{"id":"d772e43944e83be1","type":"text","text":"Kubernetes Agent","x":213,"y":-260,"width":187,"height":60,"color":"3"},
|
||||
{"id":"d0270aff89d7d117","type":"text","text":"**Provider**","x":405,"y":-620,"width":115,"height":60,"color":"1"},
|
||||
{"id":"55a84d654d3f83c5","type":"text","text":"**Container**","x":546,"y":-620,"width":111,"height":60},
|
||||
{"id":"5336ea7cfa02ef9e","type":"text","text":"**Data**","x":405,"y":-540,"width":115,"height":60,"color":"4"},
|
||||
{"id":"4ce3abc2078a70ac","type":"text","text":"**Docker**","x":260,"y":-540,"width":115,"height":60,"color":"6"},
|
||||
{"id":"a28a0de013a4b49b","type":"text","text":"Velero","x":230,"y":360,"width":140,"height":60},
|
||||
{"id":"1c0e6a6d1c01f931","type":"text","text":"Storage","x":80,"y":600,"width":130,"height":60,"color":"1"},
|
||||
{"id":"b8e5928d7d527c9f","type":"text","text":"Kopia Server","x":240,"y":600,"width":130,"height":60,"color":"6"},
|
||||
{"id":"51772f93b21a71b8","type":"text","text":"Odoo Instance","x":-1076,"y":-245,"width":158,"height":60,"color":"3"},
|
||||
{"id":"a66edac3ddd395e2","type":"text","text":"Service Account","x":-889,"y":-245,"width":179,"height":60,"color":"3"},
|
||||
{"id":"f01f305db5c5b9d2","type":"text","text":"Git","x":-1060,"y":-95,"width":122,"height":60,"color":"4"},
|
||||
{"id":"18a3cf95414f5369","type":"text","text":"Manifest","x":-900,"y":60,"width":140,"height":60,"color":"4"},
|
||||
{"id":"5a596f91e7103d0c","type":"text","text":"Environment","x":-700,"y":60,"width":160,"height":60,"color":"4"},
|
||||
{"id":"56de67891d2468bf","type":"text","text":"Project","x":-1060,"y":60,"width":122,"height":60,"color":"4"},
|
||||
{"id":"cf45e1c4b0f1b7bf","type":"text","text":"Repo","x":-1060,"y":-20,"width":122,"height":60,"color":"4"},
|
||||
{"id":"61818d7dab75d4ed","type":"text","text":"Organisation","x":-1500,"y":-95,"width":130,"height":60,"color":"1"},
|
||||
{"id":"2d0b5156065769f7","type":"text","text":"Git Repos","x":-1345,"y":-95,"width":130,"height":60,"color":"1"}
|
||||
{"id":"cd01d999db89ac6e","type":"text","text":"Branch","x":-1058,"y":60,"width":122,"height":60,"color":"4"}
|
||||
],
|
||||
"edges":[
|
||||
{"id":"096d8510b30bed73","fromNode":"30d68aaa30e0f119","fromSide":"right","toNode":"16562f1c5a372a6f","toSide":"left","label":"manage"},
|
||||
|
||||
@@ -24,6 +24,7 @@ Die Odoo-Module für den Webshop sind hier beschrieben: [[Specification Website
|
||||
Die Git-Integration ist ein entkoppelte Odoo-Modul: [[Specification Git Kubernetes]]
|
||||
|
||||
Mit [[Mailgun]] können Absender-Domain registriert werden: <https://documentation.mailgun.com/docs/mailgun/api-reference/openapi-final/tag/Domains/#tag/Domains/operation/httpapi.(*T).CreateDomain-fm-4>.
|
||||
|
||||
### Odoo Deployment
|
||||
|
||||
Der Cluster ist auf das Deployment der Odoo Webapp ausgerichtet.
|
||||
|
||||
@@ -19,10 +19,12 @@ Für jede Softwareentwicklung wird ein [[Keep a changelog]] geführt.
|
||||
|
||||
Das Git-Branching-Model sieht folgende Benennung vor:
|
||||
|
||||
`main`: Produktiver branch\
|
||||
`int`: Integraton und Staging\
|
||||
`dev`: Entwicklung
|
||||
|
||||
- `prod`: production
|
||||
- `main`: production
|
||||
- `int`: integration
|
||||
- `test`: testing
|
||||
- `dev`: development
|
||||
- `upg`: upgrade
|
||||
## Linting
|
||||
|
||||
Wir verwenden [[pre-commit]] für das Linting.
|
||||
@@ -20,16 +20,41 @@ models:
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
User --> Repo
|
||||
|
||||
class User{
|
||||
Forge <--> User
|
||||
ForgePartnerRel --> Forge
|
||||
ForgePartnerRel --> ResPartner
|
||||
Repo --> Forge
|
||||
Branch --> Repo
|
||||
|
||||
class User {
|
||||
char name required
|
||||
many2one app_id required
|
||||
many2many git_forge_ids
|
||||
char ssh_private_key
|
||||
}
|
||||
|
||||
class Forge {
|
||||
char name required
|
||||
char hostname required
|
||||
many2many user_ids
|
||||
}
|
||||
|
||||
class ForgePartnerRel {
|
||||
forge_id many2one required
|
||||
partner_id many2one required
|
||||
char name required
|
||||
}
|
||||
|
||||
class Repo{
|
||||
char name required
|
||||
char app_name required
|
||||
many2one forge_id
|
||||
char reponame required
|
||||
one2many branch
|
||||
}
|
||||
|
||||
class Branch{
|
||||
char name required
|
||||
integer sequence required
|
||||
boolean default
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in new issue
Block a user