Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Mininum requirement for resources

Kubernetes Linux cluster 2CPU, 7GB RAM. 3 node cluster is recommended for production environment.

SQL Server 2016 or later.

Prerequisites

...

  • Install Kubenetes CLI tool - kubectl. Instructions can be found here: https://kubernetes.io/docs/tasks/tools/install-kubectl/
  • SQL Server connection string
  • SSL certificate and private key without password
  • Request the container registry login from IQX for pulling OneList images
  • SMTP server login and email address if email approval channel is enabled
  • Generate the Machine key and encode it to a base64 string for each environment
  • Download these Yaml files

      ...

      ...

      ...

      ...

      ...

      ...

      ...

      Deployment steps

      Open a command prompt from the folder that contains the YAML deployment files. Flow steps below to deploy OneList.

      1. Create the Kubernetes namespace

      Run the command below to create the namespace in Kubernetes, e.g. onelist.

      kubectl create namespace <ONELIST_NAMESPACE>

      2. Create ConfigMap and Secret

      These Kubernetes ConfigMap and Secret defines the required environment variables that are used by OneList services. Open the "config.yaml" in notepad and update the following fields with the actual value. 

      ...

      kubectl apply -f config.yaml --namespace <ONELIST_NAMESPACE>

      3. Create the Secrete for pulling OneList images

      Replace placeholders in the command below and run it.

      kubectl create secret docker-registry iqx.acr --docker-server=https://iqxbusiness.azurecr.io --docker-username=<ACR_USERNAME> --docker-password=<ACR_PASSWORD> --docker-email=<YOUR_EMAIL_ADDRESS> --namespace <ONELIST_NAMESPACE>

      4. Create the TLS secrete

      Run the command below.

      kubectl create secret tls tls.onelist --cert <SSL_CERTIFICATE_FILE> --key <PRIVATE_KEY_FILE> --namespace <ONELIST_NAMESPACE>

      5. Deploy OneList containers for the apps and services

      Run the 2 commands below.

      kubectl appy -f onelist6-deployment.yaml --namespace <ONELIST_NAMESPACE>

      kubectl appy -f onelist6-service.yaml --namespace <ONELIST_NAMESPACE>

      6. Create Nginx ingress service

      Run the 2 commands below.

      kubectl create -f ingress-nginx-controller.yaml --namespace <ONELIST_NAMESPACE>

      kubectl create -f onelist6-ingress.yaml --namespace <ONELIST_NAMESPACE>

      Upgrade image version

      Upgrade all applications

      You need to know the namespace where OneList applications are deployed before proceeding with this upgrade. Download the upgrade.ps1 file. Run the command below, where the IMAGE_VERSION is in the format of x.x.x, e.g. 6.3.0:

      powershell -f upgrade.ps1 -n <ONELIST_NAMESPACE> -v <IMAGE_VERSION>

      Upgrade a single application

      If image version update is required, use the command below as a template and apply proper parameters to update image version of applications. 

      kubectl set image deployment/onelistserver onelistserver=iqxbusiness.azurecr.io/iqx.onelist.server:v<IMAGE_VERSION> -n <ONELIST_NAMESPACE>

      Parameters:

      ...