Hometutorials
odoo easy deploy

Jump toUpdate content

Installing Odoo on Kubernetes with the Scaleway Easy Deploy feature

Reviewed on 01 March 2022 • Published on 01 December 2020
  • kubernetes
  • kubernetes-kapsule
  • Odoo
  • container-registry
  • easy-deploy
  • deploy
  • containerized-application
  • docker

Odoo is a suite of open-source business apps written in Python. With a range of Odoo apps and Community apps available as part of the suite, Odoo promises to help companies address all their business needs in a single, cost-effective and modular solution. In Odoo, all the apps talk to each other, so the pain of getting different apps from different providers to communicate is gone. Odoo is designed to cover all business needs, from websites and e-commerce to manufacturing, inventory, HR and accounting, all seamlessly integrated. It’s used by more than 2 million users worldwide, by companies ranging from sole traders to those with hundreds of thousands of employees.

In this tutorial, you learn how to install Odoo on a Scaleway Kubernetes Kapsule by using the Easy-Deploy feature. Most of this can be achieved from within the Scaleway Console. The steps of this tutorial are shown in the side menu on the right.

Requirements:

Creating a Scaleway Container Registry namespace

  1. Go to the Container Registry dashboard in the Scaleway Console, and click Create a namespace.

  2. Complete the required information:

    • Namespace name: any unique name of your choice (must contain only alphanumeic characters, dots and dashes)
    • Namespace description a description for your Namespace
    • Region a geographical region for your namespace.
    • Privacy Policy: you must select Public (currently the Easy-Deploy feature only works on public images)
  3. Check the summary, then click Create a namespace.

    The following screen displays:

Using Docker to get the official Odoo image and pushing it to your Scaleway Container Registry

  1. Open a terminal window on your local machine, and log in to your namespace with Docker.

    Note:

    replace odoo-tutorial-namespace with the name of your namespace and $SCW_SECRET_KEY with the corresponding secret key.

    docker login rg.fr-par.scw.cloud/odoo-tutorial-namespace -u nologin -p $SCW_SECRET_KEY
  2. Pull the latest official Odoo image.

    docker pull odoo:latest
  3. Tag the image, ready to push it to your Container Registry.

    docker tag odoo:latest rg.fr-par.scw.cloud/odoo-tutorial-namespace/odoo:latest
  4. Push the image to your Container Registry.

    docker push rg.fr-par.scw.cloud/odoo-tutorial-namespace/odoo:latest

    This process takes some minutes to complete.

  5. Wait a minute, then go to the Container Registry dashboard to make sure the image has been successfully created.

    Now that the Odoo image is in our Container Registry, we can deploy it with Kubernetes.

Creating a Kubernetes Kapsule Cluster and deploying Odoo

  1. Go to the Kubernetes dashboard in the Scaleway console.

  2. Click Create a cluster.

  3. Enter the required information:

    • Cluster type: select one between Kapsule or Kosmos (Multi AZ)
    • Cluster name: any identifying name of your choice (must contain only alphanumeric characters and dashes)
    • Cluster description a description for your cluster
    • Region a geographical region for your cluster.
    • Node type: the type of Instance you want for your cluster
    • Node options: choose your required options, or leave at default values
  4. Check the summary, then click Create a cluster.

    A process screen displays to inform you that your cluster is being created. You may also see an additional warning that some of your pools are not yet ready. After a few minutes, your cluster should be up and running and ready to use.

  5. Click the Easy Deploy tab on the cluster information page. Select the Registry option.

  6. Select the namespace, the container and its version to deploy:

  7. Select the Deployment type for the container.

    You can leave the other settings at the default values, we will return to them later.

  8. Enter a name and a namespace for your application.

    • Container name: any identifying name of your choice for your container (must contain only alphanumeric characters and dashes)
    • Kubernetes namespace any identifying name of your choice for the Kubernetes namespace on which your container will run (must contain only alphanumeric characters and dashes)
  9. Click Deploy a container. The easy deploy overview page displays.

Installing a PostgreSQL database

The Odoo image documentation specifies that it requires a running PostgreSQL server, which we will now create:

  1. Go to the Managed Database dashboard, in the Scaleway console.

  2. Click Create an Instance.

  3. Enter your Database Instance information. Select PostgreSQL-12 as your database engine. Select your region and node type (we recommend minimum DB-DEV-L).

  4. Enter a username and password in the Credentials section. Then, enter a name for your Database Instance. Note all of these down as you will need them in a future step.

  5. Check the summary and click Create an Instance.

    A screen reports the progress of the Managed Database creation. After a minute or two, a screen similar to the following should confirm the creation of your Database Instance.

  6. Take note of the endpoint information, as you will need it in the next step.

Connecting the Odoo application to the PostgreSQL server

The Odoo image documentation tells us that by modifying the application’s environment variables HOST, PORT, USER and PASSWORD we can easily connect it to a PostgreSQL server. We will expose our Odoo application with a Load Balancer, and set these environment variables so that it can connect to our newly created database.

  1. Go to the Kubernetes dashboard in the Scaleway console and select the cluster you created and deployed your Odoo image on.

  2. Click the Easy Deploy tab. Then click > Edit next to your Odoo container.

  3. Click to Add Load Balancer.

  4. Under Container port to expose, enter 80:8069 and click Add.

    Your Load Balancer will map incoming traffic ports (80 is the default for http, and you can use 443 for https) to your exposed container port (8069 being the default Odoo port).

  5. Leave the Number of replicas option at 1 (default) to avoid session token conflicts.

  6. Click Add Variable under Environment Variables. Add four variables.

  7. Add the following information for your variables.

    • USER: the username that you set when creating your PostgreSQL database
    • PASSWORD: the password that you set when creating your PostgreSQL database
    • HOST: the first part of your database’s endpoint, which you previously noted down. If your endpoint was 123.456.78.91:1011, then the host is 123.456.78.91
    • PORT: the second part of your database’s endpoint. If your endpoint was 123.456.78.91:1011, then the port is 1011
  8. Click Update Container. The container information page displays.

  9. Click Load Balancer on the side menu of the Scaleway console. A list of your Load Balancers displays.

  10. Click the name of the Load Balancer you added. Take note of the Load Balancer IP.

Launching Odoo in a browser

  1. Enter the Load Balancer IP in a new browser window. It will take you to the Odoo landing page:

  2. Enter the required information:

    • Master Password: Odoo generates and auto-completes a master password for you (displayed at the top of the page), which you can change if you wish
    • Database Name: Your choice of name
    • Email: Your email address
    • Password: Choose a password
    • Phone Number: Your phone number
    • Language: Your choice of language
    • Country: Your country
    • Demo data: If you check this box, the application will be populated with demo data (which you can later overwrite with your own data) as a guide.

    The application may take a few minutes to launch.

You can now start installing apps, configuring your settings and using Odoo. Check out the official Odoo documentation for more help.

Note:

Please keep in mind that the Easy Deploy feature was designed to help you get started with Kubernetes: we do not recommend using this feature for production use for two reasons: First, because it requires your container image to be publicly available, i.e. without access restrictions. And second, because it does not allow you to do such things as add persistent volumes and link several containers, for example, without fine-tuning some settings yourself.