Overview

Extended the Model Registry to support PostgreSQL alongside MySQL, added SSL/TLS for secure connections, aligned deployment overlays, fixed readiness probe behavior, and implemented auto‑provisioning of a production‑ready PostgreSQL database with persistent storage via the Operator.

Key contributions

  • Added full PostgreSQL backend for EmbedMD: connector, schema migrations, and configuration options.
  • Implemented SSL/TLS for PostgreSQL connections with URL and key‑value DSN formats, including client/root certs.
  • Resolved circular dependencies by introducing a shared internal db types package and updated integration points.
  • Aligned Kubernetes kustomize overlays with MySQL equivalents and fixed readiness probe type handling.
  • Introduced auto‑provisioning of PostgreSQL with PVC, managed by the Operator when postgres.generate is enabled.
  • Enhanced CI and build: schema generation for both DBs, Makefile targets, and container management.

Technical highlights

  • PostgreSQL connector with TLSConfig, exponential backoff (25 attempts ~5 minutes), and robust DSN builders.
  • Support for verify-full and require SSL modes; client/root certificates via sslcert, sslkey, sslrootcert.
  • Controller logic to create Deployment, Service, Secret, and PVC for auto‑provisioned PostgreSQL using Red Hat images.
  • Webhook validation updates (v1alpha1/v1beta1) and RBAC permissions for Secret and PVC management.
  • GitHub Actions checks for schema struct generation across MySQL and PostgreSQL; Makefile targets for DB lifecycle.

Impact

  • Broadened database compatibility and reduced onboarding friction with out‑of‑the‑box PostgreSQL.
  • Improved security posture via TLS; increased reliability with readiness fixes and retry/backoff.
  • Simplified deployments and standardized overlays for consistent operations across environments.

Pull Requests