Upstream operator

Now that Postgres is running, we can deploy our Nextcloud.

But first we need to deploy the nextcloud upstream operator. This operator is low level because it would need every information about the backing services. It is a nice building block for projects like libre.sh.

Here is the version alpha we are developing. The goal is to move it’s development upstream. We think that this belongs to Nextcloud community to own this. And we’ll help bootstrap that. The same way we did with some official docker images.

Here is how the Nextcloud instance object would look like:

cat << EOF | kubectl apply -f -
apiVersion: "nextcloud.com/v1"
kind: nextcloud
metadata:
  name: cloud
  namespace: fight-marketing
spec:
  postgress:
    endpoint: nextcloud-postgres
    secret: nextcloud-postgres-secret
  volume:
    size: 1Gi
  numberOfInstances: 2
  domainNames:
    - fight.marketing
EOF

After some minutes, you’d get an up and running Nextcloud instance. behind the scene it would have provisionned the following:

  • the deployment with 2 pods with a php container with Nextcloud code
  • a cron job
  • a web container to serve static assets
  • an ingress with a Let’s Encrypt certificate
  • installed Nextcloud

Upstream operators are already nice you’d say. But keep in mind that we are discussing about 7 backing services. So for each Nextcloud instance, you’d need to do the plumbing manually of each backing service manually. Let’s go now to the libre.sh operator.