Versions Compared

Key

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

...

  • Install Kubernetes CLI tool - kubectl. Instructions can be found here: https://kubernetes.io/docs/tasks/tools/install-kubectl/

  • Install the command-line tool of the Kubernetes hosting system:

  • Install Helm package manager

  • SQL Server connection string.

    • The SQL connection user account must have permission to create new databases and db_owner of the databases.

  • SSL certificate with all intermediate certificates and private key without passwordin PFX or PEM format

  • 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 for each environment. This is a Base64 string representing an array of 50 bytes.

  • Define the Kubernetes namespace for the OneList environment to be deployed. E.g. onelist-dev, onelist-qa, onelist-prod. It may be required to follow your company's naming standard for these namespaces.

    • Use this value to  replace the <ONELIST_NAMESPACE> placeholder in the instructions below.

  • Define the label for the OneList environment to be deployed. This is a short label, e.g. dev, qa, prod. The first letter must be unique in all the environments planned and it is used as the suffix of the database names.

    • Use this value to replace the <environment> placeholder in the instructions below.

  • Download the below two files and put them in the same directory

...

Recommended Configuration

Enviroment

AKS

SQL

Production

Cluster nodes:3;

Cluster node size: 2 vCPU, 16GB RAM

Minimum subnet size: /24

Elastic pool: Standard,

eDTU: 100,

Data size: 100GB

Firewall settings: Allow Azure services and resources to access this server = ON

Database collation: SQL_Latin1_General_CP1_CI_AS

Databases: 

  • OneList_p

  • RoleManager_p

  • Comms_p

Non-production

Cluster nodes:3;

Cluster node size: 2 vCPU,

7GB

16GB RAM

Minimum subnet size: /24

Elastic pool: Standard,

eDTU: 50,

Data size: 50GB

Firewall settings: Allow Azure services and resources to access this server = ON

Database collation: SQL_Latin1_General_CP1_CI_AS

Databases: the "x" represents the environment tag, e.g. d for Development, q for QA.

  • OneList_x

  • RoleManager_x

  • Comms_x

Log on to Azure Kubernetes Service (AKS)

  1. Log on to Azure by executing this command: az login
    Tip: Specify the tenant if there are multiple tenants. E.g. az login --tenant <tenant>

  2. Setup the Azure log in with kubectl by executing this command: az aks get-credentials --resource-group <Azure_Resource_Group> --name <AKS_Cluster_Name>

Deployment steps

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

...

  • Config

    • RoleManager__MachineKey 
      The value is the generated machine key.

    • Database__ConnectionString
      The value is the SQL Server connection string. The name of the databases will be automatically specified by the services.

    • ASPNETCORE_ENVIRONMENT
      The value is <environment>.

    • Smtp__UserName 

    • Smtp__Password

    • 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. For Office365 SMTP service, the value is always false. 

    • RootUrl
      Root URL of the OneList site.

    • Localization__DefaultCulture
      The default culture. Use the code from: Supported Languages

    • Localization__DefaultTimeZone
      The default time zone. The time zone id is the “TZ database name” from this page: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

    • supportedCultures

      • Localization__SupportedCultures__0
        The other supported cultures. Use the code from: Supported Languages. When there is more than one supported culture, add another Localization__SupportedCultures__n entry and increase the trailing number n by 1. E.g. Localization__SupportedCultures__1

  • imageCredentials

    • username
      Login username of IQX container registry.

    • password
      Login password of IQX container registry.

    • email
      Your email address.

  • ingress

    • host
      The DNS host name of the OneList application.

  • image

    • tag
      Tag name of the images that are going to be deployed.

...

helm install onelist-dev -n onelist-dev -f .\values.yaml onelist.tgz

5.

...

Run the command below to create the secret. 

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

For example: 

...

Configure SSL connection

Follow step 1 to 4 in this document. Migrate to use Azure Key Vault to host SSL certificate

6. Get the OneList public IP address

...