Skip to content

Provision and manage Aiven Services from your Kubernetes cluster.

License

Notifications You must be signed in to change notification settings

aiven/aiven-operator

Repository files navigation

Aiven Operator

Provision and manage Aiven Services from your Kubernetes cluster.

See the full documentation here.

Installation

To install the Operator, please follow the installation instructions.

Deploying PostgreSQL at Aiven

Now let's create a PostgreSQL resource with the following YAML – please fill in your project name under in the project field:

apiVersion: aiven.io/v1alpha1
kind: PostgreSQL
metadata:
  name: aiven-pg
spec:
  # reads the authentication token
  authSecretRef:
    name: aiven-token
    key: token

  # stores the PostgreSQL connection information on the specified Secret
  connInfoSecretTarget:
    name: pg-connection

  project: PROJECT_NAME
  cloudName: google-europe-west1
  plan: hobbyist
  maintenanceWindowDow: friday
  maintenanceWindowTime: 23:00:00
  userConfig:
    pg_version: "15"

Watch the resource being created and wait until its status is RUNNING:

watch kubectl get postgresql.aiven.io aiven-pg

After created, the Operator will create a Kubernetes Secret containing the PostgreSQL connection information:

kubectl describe secret pg-connection

Use the following jq command to decode the Secret:

kubectl get secret pg-connection -o json | jq '.data | map_values(@base64d)'

Connecting to PostgreSQL

Let's run a psql command to test the database connection using the generated Secret:

apiVersion: v1
kind: Pod
metadata:
  name: psql-test-connection
spec:
  restartPolicy: Never
  containers:
    - image: postgres:11
      name: postgres
      command: ["psql", "$(DATABASE_URI)", "-c", "SELECT version();"]
      envFrom:
        - secretRef:
            name: pg-connection

The Pod should the PostgreSQL version. You can verify with the following command:

$ kubectl logs psql-test-connection
                                           version
---------------------------------------------------------------------------------------------
 PostgreSQL 11.12 on x86_64-pc-linux-gnu, compiled by gcc, a 68c5366192 p 6b9244f01a, 64-bit
(1 row)

Contributing

We welcome and encourage contributions to this project. Please take a look at our Contribution guide line.

License

Apache 2.