Commit Graph

8 Commits

Author SHA1 Message Date
claude
e33abed59b Add QA and feature-branch environments
env create/delete/gc/list manage a namespace per environment, labelled
zero-scale.io/env, with a ResourceQuota, its own gateway and an optional
wildcard route. A zero-scale-env ConfigMap records the env and may override
the platform's database clusters. Hosts use ${ENV_SUFFIX}; databases in a
non-primary env are named db_<env>_<app>_<hash> and carry an owner comment,
so env delete drops only what the env owns. oauth-setup --auth-host serves
every app's login from one callback host. deploy/ manifests no longer
hardcode a namespace; deploy/kustomization.yaml sets it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016uKdmp7tLySXvQXALz2x9V
2026-10-27 06:44:55 -04:00
claude
49f4a11bcc Add doctor and init; provision databases from the platform ConfigMap
- internal/platform: detect and grade storage classes (Longhorn, Ceph, Mayastor,
  LINSTOR, Portworx, GKE/Azure/AWS, NFS, local), Postgres operators (CNPG,
  Zalando, Crunchy, Percona, StackGres), MySQL operators (InnoDB Cluster, PXC,
  MariaDB, legacy shared-mysql), ingress classes, gateways and Redis
- Choose picks HA candidates (default class wins, ambiguity is an error with
  the flag to resolve it) and stores them as flat zero-scale-platform keys
- zero-scale-ctl doctor (read-only) and init (diff, confirm or --yes)
- DB provisioning goes through per-operator adapters; SQL travels on stdin,
  the MySQL admin password is read from a Secret and sent on stdin, and
  identifiers and passwords are validated
- Postgres endpoint now names the namespace the cluster is in (was the app's)
- Redis service, ingress class and config-file DB hosts come from the platform
- Legacy fallback with a warning when no platform ConfigMap exists
2026-10-27 06:44:55 -04:00
Stephen Schuresko
82307ce625 feat: make deployment cluster-neutral, add operator detection with docs links, and clean up hardcoded domains 2026-10-20 18:29:52 -04:00
Stephen Schuresko
1387848297 feat: add shared OAuth2 setup for ingress-nginx
- Introduced GatewayConfig struct to hold OAuth2 configuration in AppConfig.
- Implemented OAuthSetupName method to resolve shared OAuth2 profile name.
- Enhanced LoadConfig function to parse gateway configuration from the config file.
- Added oauth-setup command to create or update shared ingress-nginx OAuth2 setup profiles.
- Implemented ReconcileOAuthSetup function to provision/update OAuth2 credentials and resources.
- Created OAuth2 proxy deployment and service for shared OAuth2 setup.
- Added Ingress configuration for OAuth2 callback routing.
- Updated DeployBinary function to check and upload binaries based on SHA256 hash.
- Enhanced secret management in ProvisionDataLayer to support cross-service references.
- Updated ingress creation to support OAuth2 authentication.
2026-10-19 13:48:09 -04:00
Stephen Schuresko
0c5b1eba04 feat: Add support for managed secrets in application configuration and provisioning 2026-10-12 16:04:18 -04:00
Stephen Schuresko
303196f6ea feat: Add support for auxiliary config files and enhance deployment process with variable expansion 2026-10-12 10:28:55 -04:00
Stephen Schuresko
c57ed49839 feat: Implement auto-generation of MySQL root password and update shared-mysql-admin secret example 2026-10-11 23:55:09 -04:00
Stephen Schuresko
4cc8733d1b feat: Add Zero-Scale Platform Management CLI with database provisioning and Kubernetes integration
- Implemented `database.go` for MySQL and PostgreSQL provisioning, including password generation and secret management.
- Created `k8s.go` for Kubernetes command execution, resource checks, and secret/configmap management.
- Developed `main.go` to handle CLI commands for applying configurations, checking status, logging, and managing applications.
- Added `storage.go` for binary deployment to the gateway pod and symlink configuration for application entrypoints.
- Enhanced CLI with commands for application management, including listing, deleting, and uploading binaries.
2026-10-11 23:31:54 -04:00