Prerequisites
- 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
Deployment steps
Open a command prompt from the folder that contains the YAML deployment files. Flow steps below to deploy OneList.
1. Create namespace
Run the command below to create "onelist" namespace.
kubectl create namespace onelist
2. Create ConfigMap and secret
ConfigMap and secret contains environment variables that will be used by OneList services. Open "config.yaml" in notepad and update the following fields with the correct value.
- RoleManager__MachineKey
This is a base64 string representing a bit array of 44 bytes. - 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
Save the "config.yaml" file. Run the command below.
kubectl apply -f config.yaml
3. Create docker secrete for pulling OneList containers
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
4. Create TLS secrete
Run the command below.
kubectl create secret tls tls.onelist --cert YOURCERTIFICATEFILE --key YOURKEYFILE --namespace onelist
5. Deploy OneList app containers and services
Run the 2 commands below.
kubectl appy -f onelist6-deployment.yaml
kubectl appy -f onelist6-service.yaml
6. Create Nginx ingress service
Run the 2 commands below.
kubectl create -f ingress-nginx-controller.yaml
kubectl create -f onelist6-ingress.yaml