appcat-cli
appcat-cli generates yaml files for custom kubernetes resources from command line arguments.
Warning: This tool is currently under heavy development. Stuff may change & break between releases!
Goal & Purpose
appcat-cli is developed as a converter tool for k8ify.
It's purpose is to generate yaml files for custom kubernetes resources to be processed by k8ify into kubernetes manifests.
Non-Goals
Out of scope(for now) of this project are:
- Checking scope and availability of custom resources on target cluster
Mode of Operation
Command Line Arguments
appcatcli expects input in the form of:
appcatcli ServiceName --kind ServiceKind [Options]
Defaults:
Global:
| Key |
Value |
Spec.WriteConnectionSecretToRef.Name |
ServiceName+refSlug |
Exoscale:
| ServiceKind |
Key |
Value |
| ExoscalePostgreSQL |
Spec.Parameters.Service.MajorVersion |
14 |
| ExoscalePostgreSQL |
Spec.Parameters.Service.Zone |
ch-dk-2 |
| ExoscalePostgreSQL |
Spec.Parameters.Size.Plan |
hobbyist-2 |
| ExoscalePostgreSQL |
Spec.Parameters.Backup.TimeOfDay |
12:00:00 |
| ExoscalePostgreSQL |
Spec.Parameters.Maintenance.DayOfWeek |
sunday |
| ExoscalePostgreSQL |
Spec.Parameters.Maintenance.TimeOfDaye |
00:00:00 |
| ExoscaleRedis |
Spec.Parameters.Maintenance.DayOfWeek |
sunday |
| ExoscaleRedis |
Spec.Parameters.Maintenance.TimeOfDay |
00:00:00 |
| ExoscaleRedis |
Spec.Parameters.Service.Zone |
ch-dk-2 |
| ExoscaleKafka |
Spec.Parameters.Service.Version |
3.4.0 |
| ExoscaleKafka |
Spec.Parameters.Service.Zone |
ch-dk-2 |
| ExoscaleKafka |
Spec.Parameters.Size.Plan |
startup-2 |
| ExoscaleKafka |
Spec.Parameters.Maintenance.DayOfWeek |
sunday |
| ExoscaleKafka |
Spec.Parameters.Maintenance.TimeOfDay |
00:00:00 |
| ExoscaleMySQL |
Spec.Parameters.Service.MajorVersion |
8 |
| ExoscaleMySQL |
Spec.Parameters.Service.Zone |
ch-dk-2 |
| ExoscaleMySQL |
Spec.Parameters.Size.Plan |
hobbyist-2 |
| ExoscaleMySQL |
Spec.Parameters.Backup.TimeOfDay |
12:00:00 |
| ExoscaleMySQL |
Spec.Parameters.Maintenance.DayOfWeek |
sunday |
| ExoscaleMySQL |
Spec.Parameters.Maintenance.TimeOfDay |
00:00:00 |
| ExoscaleOpenSearch |
Spec.Parameters.Service.MajorVersion |
2 |
| ExoscaleOpenSearch |
Spec.Parameters.Service.Zone |
ch-dk-2 |
| ExoscaleOpenSearch |
Spec.Parameters.Size.Plan |
hobbyist-2 |
| ExoscaleOpenSearch |
Spec.Parameters.Backup.TimeOfDay |
12:00:00 |
| ExoscaleOpenSearch |
Spec.Parameters.Maintenance.DayOfWeek |
sunday |
| ExoscaleOpenSearch |
Spec.Parameters.Maintenance.TimeOfDay |
00:00:00 |
VSHN:
| ServiceKind |
Key |
Value |
| VSHNPostgreSQL |
Spec.Parameters.Service.MajorVersion |
14 |
| VSHNPostgreSQL |
Spec.Parameters.Size.CPU |
600m |
| VSHNPostgreSQL |
Spec.Parameters.Size.Disk |
80Gi |
| VSHNPostgreSQL |
Spec.Parameters.Size.Memory |
3500Mi |
| VSHNPostgreSQL |
Spec.Parameters.Size.Requests.CPU |
300m |
| VSHNPostgreSQL |
Spec.Parameters.Size.Requests.Memory |
1000Mi |
| VSHNPostgreSQL |
Spec.Parameters.Backup.Schedule |
|
| VSHNPostgreSQL |
Spec.Parameters.Backup.Retention |
12 |
| VSHNPostgreSQL |
Spec.Parameters.Scheduling.NodeSelector |
{"appuio.io/node-class": "plus"} |
| VSHNRedis |
Spec.Parameters.TLS.TLSAuthClients |
true |
| VSHNRedis |
Spec.Parameters.TLS.TLSEnabled |
true |
| VSHNRedis |
Spec.Parameters.Service.Version |
7.0 |
| VSHNRedis |
Spec.Parameters.Service.RedisSettings |
|
| VSHNRedis |
Spec.Parameters.Size.Disk |
80Gi |
| VSHNRedis |
Spec.Parameters.Size.CPULimits |
1000m |
| VSHNRedis |
Spec.Parameters.Size.CPURequests |
500m |
| VSHNRedis |
Spec.Parameters.Size.MemoryRequests |
500Mi |
| VSHNRedis |
Spec.Parameters.Size.MemoryLimits |
1Gi |
Testing
For testing we use unit test as well as golden tests both can be run via:
go test .
License
This project is licensed under the BSD 3-Clause License