@startuml

frame "python-tackerclient" {
	component "tacker-client" as client 
}

frame "tacker" {
	component "tacker-server" {
		component "server" as serv
	}
	component "tacker-conductor" {
		component "conductor" as cond
		component "Kubernetes\ninfra-driver" as infra
	}
}

node "Kubernetes\nCluster\n(Master)" as k8s_m
cloud "Hardware Resources" as hw {
	node "Kubernetes\nCluster\n(Worker)" as k8s_w {
		node "Pod" as ins1
		node "Pod" as ins2
	}
}


'# Relationships
client --> serv: 1. Request\n heal VNF
serv --> cond
cond --> infra
infra -right-> k8s_m: 2. Call Kubernetes\n API
k8s_m --> ins1: 3. Re-create Pods
k8s_m --> ins2
ins1 -[hidden]right-> ins2

@enduml
