This SD-Core WEBUI K8s Terraform module aims to deploy the sdcore-webui-k8s charm via Terraform.
The following software and tools needs to be installed and should be running in the local environment.
microk8s
juju 3.x
terrafom
Install Microk8s and enable storage add-on:
sudo snap install microk8s --channel=1.27-strict/stable
sudo usermod -a -G snap_microk8s $USER
newgrp snap_microk8s
sudo microk8s enable hostpath-storage
Install Juju:
sudo snap install juju --channel=3.1/stable
Install Terraform:
sudo snap install --classic terraform
Bootstrap Juju Controller:
juju bootstrap microk8s
Initialise the provider:
terraform init
Customize the configuration inputs under terraform.tfvars
file according to requirement.
Sample contents of terraform.tfvars
file:
model_name ="test"
Run Terraform plan by providing var-file:
terraform plan -var-file="terraform.tfvars"
Deploy the resources, skip the approval.
terraform apply -auto-approve
After running above command, if you get the error below, run the `terraform apply -auto-approve` again.
`Unable to create application, got error: model "<model_name>" not found`
Run juju switch <juju model>
to switch to the target Juju model and observe the status of the application.
juju status --relations
The output should be similar to the following:
Model Controller Cloud/Region Version SLA Timestamp
test microk8s-localhost microk8s/localhost 3.1.7 unsupported 11:54:07+03:00
App Version Status Scale Charm Channel Rev Address Exposed Message
mongodb-k8s active 1 mongodb-k8s 6/beta 38 10.152.183.119 no
webui active 1 sdcore-webui-k8s 1.3/edge 10 10.152.183.130 no
self-signed-certificates active 1 self-signed-certificates beta 57 10.152.183.65 no
Unit Workload Agent Address Ports Message
mongodb-k8s/0* active idle 10.1.146.47
webui/0* active idle 10.1.146.58
self-signed-certificates/0* active idle 10.1.146.56
Integration provider Requirer Interface Type Message
mongodb-k8s:database webui:database mongodb_client regular
mongodb-k8s:database-peers mongodb-k8s:database-peers mongodb-peers peer
Remove the application:
terraform destroy -auto-approve