Minimum requirements for running Squidex in Kubernetes


#1

Hi,

Been playing with the k8s yml deployment manifests from the squidex docker repo in minikube and was wondering about a couple of things:

Regarding the mongodb configuration/manifest:

  1. Number of replicas:
    Currently, the default value for the number of replicas is set to 3. My understanding is that this is for the mongodb three member replica set; for redundancy. If availability and redundancy is not a concern in a simple website and low budget scenario, can Squidex CMS still be fully operational and behave exactly the same by instead using only one pod for mongodb?

  2. Image version:
    The mongodb/image version is set to 3.4 in the manifest.
    Is there any particular reason 3.4 is used and not the latest version?

  3. The mongod command:
    How would you configure the mongodb pod section in the manifest file if you instead use only one pod? Can the “command” section be removed?

  4. mongo-sidecar:
    Can this section be removed as well, if you instead use only one pod? My understanding is that this container is only there for the replica set stuff.

Regarding the squidex configuration/manifest:

  1. Number of replicas:
    Basically the same reasoning as above.
    Can Squidex CMS still be fully operational and behave exactly the same by instead using only one pod for the Squidex application?

  2. Environment variable ASSETSTORE__TYPE:
    - name: ASSETSTORE__TYPE
    value: YOUR_CONFIG

What value options are there for ASSETSSTORE__TYPE?

  1. Environment variables IDENTITY__ADMINEMAIL and IDENTITY__ADMINPASSWORD:

         - name: IDENTITY__ADMINEMAIL
           value: ""
         - name: IDENTITY__ADMINPASSWORD 
           value: ""
    

These seem to be missing in the yaml manifest?
What is the minimum set of variables required in the manifest?


#2

Hi spacecat,

Regarding the mongodb configuration/manifest:

You should be able to find a configuration for kubernetes with a simple member.

  1. If you use kubernetes you typically want to have replication and fault tolerance. Therefore it is set to 3, which is the minimum number of members for a mongodb replica set.

  2. It just has not been updated.

  3. I think so.

  4. Yes, the sidecar is only needed for replica sets.

Regarding the squidex configuration/manifest:

  1. Yes, it can run with a single instance.

  2. You an check the config: https://raw.githubusercontent.com/Squidex/squidex/master/src/Squidex/appsettings.json. Each level is separated by ‘__’ in the environment variables. The supported config values are Folder (local folder), GoogleCloud (hosted in Google Cloud only), AzureBlob.

  3. It depends if you want to use an external identity provider like google or not. If you use google auth, the first user that logs in will become the administrator automatically. If you manage users manually you have to define the admin credentials.