Versions Compared

Key

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

Mininum requirement for resources

...

  • 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

View file
nameonelist6-serviceingress.yaml
height250
View file
nameonelist6-ingressservice.yaml
height250
View file
nameonelist6-deployment.yaml
height250
View file
nameingress-nginx-controller.yaml
height250
View file
nameconfig.yaml
height250

...

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

kubectl create namespace onelist<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. 

  • RoleManager__MachineKeyMachineKey 
    This is a base64 string representing a bit an array of 44 bytes. Use this online tool: https://www.base64encode.org/. Input 44 characters to encode.
  • Database__ConnectionString
    The value is the SQL Server connection string. The name of the databases will be automatically specified by the services.
  • Smtp__UserName 
  • Smtp__Password
  • ASPNETCORE_ENVIRONMENT
    The value specifies the environment. It can be one of the following Production, Dev, QA.
  • Smtp__From
    This is the sender email address of notifications from OneList
  • Smtp__Host
    This is the SMTP server OneList use to send notifications.
  • Smtp__Port
    This is the port of SMTP server.
  • Smtp__UseSsl
    Define if SMTP server uses SSL connection.

...

kubectl apply -f config.yaml --namespace onelist <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 USERNAME> --docker-password=ACR<ACR_PASSWORD PASSWORD> --docker-email=YOUR<YOUR_EMAIL_ADDRESS ADDRESS> --namespace onelistnamespace <ONELIST_NAMESPACE>

4. Create the TLS secrete

Run the command below.

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

5. Deploy OneList containers for the apps and services

Run the 2 commands below.

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

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

6. Create Nginx ingress service

Run the 2 commands below.

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

kubectl create -f onelist6-ingress.yaml --namespace onelist <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 namespaceofonelistapp -v x.x.x<ONELIST_NAMESPACE> -v <IMAGE_VERSION>

Upgrade a single application

...

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

Parameters: