This SD-Core AMF K8s Terraform module aims to deploy the sdcore-amf-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:
sudo snap install microk8s --channel=1.27-strict/stable
sudo usermod -a -G snap_microk8s $USER
newgrp snap_microk8s
Enable dns
, storage
and metallb
plugins for Microk8s.
sudo microk8s enable hostpath-storage multus
sudo microk8s enable metallb:10.0.0.2-10.0.0.2
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 a 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 applications.
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 13:56:43+03:00
App Version Status Scale Charm Channel Rev Address Exposed Message
amf active 1 sdcore-amf-k8s 1.3/edge 17 10.152.183.163 no
mongodb-k8s active 1 mongodb-k8s 6/beta 38 10.152.183.133 no
nrf active 1 sdcore-nrf-k8s 1.3/edge 18 10.152.183.192 no
self-signed-certificates active 1 self-signed-certificates beta 57 10.152.183.179 no
Unit Workload Agent Address Ports Message
amf/0* active idle 10.1.146.2
mongodb-k8s/0* active idle 10.1.146.60
nrf/0* active idle 10.1.146.6
self-signed-certificates/0* active idle 10.1.146.9
Integration provider Requirer Interface Type Message
mongodb-k8s:database amf:database mongodb_client regular
mongodb-k8s:database nrf:database mongodb_client regular
mongodb-k8s:database-peers mongodb-k8s:database-peers mongodb-peers peer
nrf:fiveg-nrf amf:fiveg-nrf fiveg_nrf regular
self-signed-certificates:certificates amf:certificates tls-certificates regular
self-signed-certificates:certificates nrf:certificates tls-certificates regular
Remove the applications:
terraform destroy -auto-approve