### Complete Application Environment Setup Source: https://context7.com/tagesjump/provider-postgresql/llms.txt A comprehensive example demonstrating database creation, role management, and schema policy definition. ```yaml # 1. Create the application database apiVersion: postgresql.postgresql.upbound.io/v1alpha1 kind: Database metadata: name: ecommerce-db spec: forProvider: name: ecommerce owner: postgres encoding: UTF8 lcCollate: en_US.UTF-8 lcCtype: en_US.UTF-8 providerConfigRef: name: default --- # 2. Create application roles apiVersion: postgresql.postgresql.upbound.io/v1alpha1 kind: Role metadata: name: ecommerce-admin spec: forProvider: name: ecommerce_admin login: true createDatabase: false passwordSecretRef: key: password name: ecommerce-admin-secret namespace: crossplane-system providerConfigRef: name: default --- apiVersion: postgresql.postgresql.upbound.io/v1alpha1 kind: Role metadata: name: ecommerce-app spec: forProvider: name: ecommerce_app login: true connectionLimit: 50 passwordSecretRef: key: password name: ecommerce-app-secret namespace: crossplane-system providerConfigRef: name: default --- apiVersion: postgresql.postgresql.upbound.io/v1alpha1 kind: Role metadata: name: ecommerce-readonly spec: forProvider: name: ecommerce_readonly login: true passwordSecretRef: key: password name: ecommerce-readonly-secret namespace: crossplane-system providerConfigRef: name: default --- # 3. Create application schema apiVersion: postgresql.postgresql.upbound.io/v1alpha1 kind: Schema metadata: name: ecommerce-schema spec: forProvider: name: ecommerce database: ecommerce owner: ecommerce_admin policy: - role: ecommerce_app usage: true create: false - role: ecommerce_readonly usage: true create: false - role: ecommerce_admin usageWithGrant: true createWithGrant: true providerConfigRef: name: default ``` -------------------------------- ### Install Provider via CLI Source: https://github.com/tagesjump/provider-postgresql/blob/main/README.md Use the Crossplane CLI to install the provider package. ```bash up ctp provider install xpkg.upbound.io/tages/provider-postgresql:v0.1.0 ``` -------------------------------- ### Install Provider PostgreSQL Source: https://context7.com/tagesjump/provider-postgresql/llms.txt Methods for installing the provider using the Upbound CLI or a Kubernetes manifest. ```bash # Install using the Upbound CLI up ctp provider install xpkg.upbound.io/tages/provider-postgresql:v0.1.0 ``` ```yaml # Declarative installation via Kubernetes manifest apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: name: provider-postgresql spec: package: xpkg.upbound.io/tages/provider-postgresql:v0.1.0 ``` -------------------------------- ### Install PostgreSQL Extension Source: https://context7.com/tagesjump/provider-postgresql/llms.txt Installs the 'uuid-ossp' extension on the 'ecommerce' database. Ensure the 'default' provider configuration is set up. ```yaml apiVersion: postgresql.postgresql.upbound.io/v1alpha1 kind: Extension metadata: name: ecommerce-uuid spec: forProvider: name: uuid-ossp database: ecommerce providerConfigRef: name: default ``` -------------------------------- ### Install Provider via Declarative YAML Source: https://github.com/tagesjump/provider-postgresql/blob/main/README.md Apply a Kubernetes Provider resource to install the package declaratively. ```yaml cat <