During the process of bootstrapping controller on microk8s, it hung.
Simple payload works on microk8s (logs below the report)
dasm@dell:~/git/charm-opensearch-k8s$ snap list | grep -E "juju|microk8s"
juju 2.9.5 16559 latest/stable canonical* classic
microk8s v1.20.7 2264 1.20/stable canonical* classic
[...]
07:58:57 DEBUG juju.kubernetes.provider rbac.go:220 service account "controller" created
07:58:57 DEBUG juju.kubernetes.provider bootstrap.go:828 creating controller statefulset:
&StatefulSet{ObjectMeta:{controller controller-majkro 0 0001-01-01 00:00:00 +0000 UTC <nil> <nil> map[app.kubernetes.io/managed-by:juju app.kubernetes.io/name:controller model.juju.is/disable-webhook:true] map[controller.juju.is/id:1041ee35-2562-460f-803f-ee182d31b5ec] [] [] []},Spec:StatefulSetSpec{Replicas:*1,Selector:&v1.LabelSelector{MatchLabels:map[string]string{app.kubernetes.io/name: controller,},MatchExpressions:[]LabelSelectorRequirement{},},Template:{{controller-0 controller-majkro 0 0001-01-01 00:00:00 +0000 UTC <nil> <nil> map[app.kubernetes.io/name:controller model.juju.is/disable-webhook:true] map[controller.juju.is/id:1041ee35-2562-460f-803f-ee182d31b5ec] [] [] []} {[{controller-server-pem {nil nil nil nil nil SecretVolumeSource{SecretName:controller-secret,Items:[]KeyToPath{KeyToPath{Key:server.pem,Path:template-server.pem,Mode:nil,},},DefaultMode:*256,Optional:nil,} nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil}} {controller-shared-secret {nil nil nil nil nil &SecretVolumeSource{SecretName:controller-secret,Items:[]KeyToPath{KeyToPath{Key:shared-secret,Path:shared-secret,Mode:nil,},},DefaultMode:*256,Optional:nil,} nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil}} {controller-agent-conf {nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil &ConfigMapVolumeSource{LocalObjectReference:LocalObjectReference{Name:controller-configmap,},Items:[]KeyToPath{KeyToPath{Key:agent.conf,Path:template-agent.conf,Mode:nil,},},DefaultMode:nil,Optional:nil,} nil nil nil nil nil nil nil nil nil nil}} {controller-bootstrap-params {nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil &ConfigMapVolumeSource{LocalObjectReference:LocalObjectReference{Name:controller-configmap,},Items:[]KeyToPath{KeyToPath{Key:bootstrap-params,Path:bootstrap-params,Mode:nil,},},DefaultMode:nil,Optional:nil,} nil nil nil nil nil nil nil nil nil nil}}] [] [{mongodb jujusolutions/juju-db:4.0 [mongod] [--dbpath=/var/lib/juju/db --sslPEMKeyFile=/var/lib/juju/server.pem --sslPEMKeyPassword=ignored --sslMode=requireSSL --port=37017 --journal --replSet=juju --quiet --oplogSize=1024 --ipv6 --auth --keyFile=/var/lib/juju/shared-secret --storageEngine=wiredTiger --bind_ip_all] [{mongodb 0 37017 TCP }] [] [] {map[memory:{{1610612736 0} {<nil>} BinarySI}] map[]} [{storage false /var/lib/juju <nil> } {storage false /var/lib/juju/db db <nil> } {controller-server-pem true /var/lib/juju/template-server.pem template-server.pem <nil> } {controller-shared-secret true /var/lib/juju/shared-secret shared-secret <nil> }] [] &Probe{Handler:Handler{Exec:&ExecAction{Command:[mongo --port=37017 --ssl --sslAllowInvalidHostnames --sslAllowInvalidCertificates --sslPEMKeyFile=/var/lib/juju/server.pem --eval db.adminCommand('ping')],},HTTPGet:nil,TCPSocket:nil,},InitialDelaySeconds:30,TimeoutSeconds:5,PeriodSeconds:10,SuccessThreshold:1,FailureThreshold:3,} &Probe{Handler:Handler{Exec:&ExecAction{Command:[mongo --port=37017 --ssl --sslAllowInvalidHostnames --sslAllowInvalidCertificates --sslPEMKeyFile=/var/lib/juju/server.pem --eval db.adminCommand('ping')],},HTTPGet:nil,TCPSocket:nil,},InitialDelaySeconds:5,TimeoutSeconds:1,PeriodSeconds:10,SuccessThreshold:1,FailureThreshold:3,} nil nil IfNotPresent nil false false false} {api-server jujusolutions/jujud-operator:2.9.5 [/bin/sh] [-c export JUJU_DATA_DIR=/var/lib/juju
export JUJU_TOOLS_DIR=$JUJU_DATA_DIR/tools
mkdir -p $JUJU_TOOLS_DIR
cp /opt/jujud $JUJU_TOOLS_DIR/jujud
echo Installing Dashboard...
export gui='/var/lib/juju/gui'
mkdir -p $gui
curl -sSf -o $gui/gui.tar.bz2 --retry 10 --noproxy 127.0.0.1,localhost,::1 'https://streams.canonical.com/juju/gui/gui/0.7.1/juju-dashboard-0.7.1.tar.bz2' || echo Unable to retrieve Juju Dashboard
[ -f $gui/gui.tar.bz2 ] && sha256sum $gui/gui.tar.bz2 > $gui/jujugui.sha256
[ -f $gui/jujugui.sha256 ] && (grep '514734ad8eaf3d1aaad9600a84253cac6e504dbdf8e1eb610d9a1155c1c9d516' $gui/jujugui.sha256 && printf %s '{"version":"0.7.1","url":"https://streams.canonical.com/juju/gui/gui/0.7.1/juju-dashboard-0.7.1.tar.bz2","sha256":"514734ad8eaf3d1aaad9600a84253cac6e504dbdf8e1eb610d9a1155c1c9d516","size":1770516}' > $gui/downloaded-gui.txt || echo Juju GUI checksum mismatch)
test -e $JUJU_DATA_DIR/agents/controller-0/agent.conf || $JUJU_TOOLS_DIR/jujud bootstrap-state $JUJU_DATA_DIR/bootstrap-params --data-dir $JUJU_DATA_DIR --debug --timeout 20m0s
$JUJU_TOOLS_DIR/jujud machine --data-dir $JUJU_DATA_DIR --controller-id 0 --log-to-stderr --debug
] /var/lib/juju [] [] [] {map[memory:{{1610612736 0} {<nil>} BinarySI}] map[]} [{storage false /var/lib/juju <nil> } {controller-agent-conf false /var/lib/juju/agents/controller-0/template-agent.conf template-agent.conf <nil> } {controller-server-pem true /var/lib/juju/template-server.pem template-server.pem <nil> } {controller-shared-secret true /var/lib/juju/shared-secret shared-secret <nil> } {controller-bootstrap-params true /var/lib/juju/bootstrap-params bootstrap-params <nil> }] [] nil nil nil nil IfNotPresent nil false false false}] [] Always <nil> <nil> map[] controller 0xc000ade4bc false false false <nil> nil [] nil [] [] <nil> nil [] <nil> <nil> <nil> map[] [] <nil>}},VolumeClaimTemplates:[]PersistentVolumeClaim{{{ } {storage 0 0001-01-01 00:00:00 +0000 UTC <nil> <nil> map[app.kubernetes.io/managed-by:juju app.kubernetes.io/name:controller] map[controller.juju.is/id:1041ee35-2562-460f-803f-ee182d31b5ec] [] [] []} {[ReadWriteOnce] nil {map[] map[storage:{{21474836480 0} {<nil>} 20Gi BinarySI}]} 0xc00000b6e0 <nil> nil} { [] map[] []}},},ServiceName:controller-service,PodManagementPolicy:,UpdateStrategy:StatefulSetUpdateStrategy{Type:,RollingUpdate:nil,},RevisionHistoryLimit:nil,},Status:StatefulSetStatus{ObservedGeneration:0,Replicas:0,ReadyReplicas:0,CurrentReplicas:0,UpdatedReplicas:0,CurrentRevision:,UpdateRevision:,CollisionCount:nil,Conditions:[]StatefulSetCondition{},},}
07:58:57 DEBUG juju.kubernetes.provider k8s.go:2142 selecting units "app.kubernetes.io/name=controller" to watch
07:58:57 DEBUG juju.kubernetes.provider events.go:52 getting the latest event for "involvedObject.name=controller-0,involvedObject.kind=Pod"
07:58:58 DEBUG juju.kubernetes.provider events.go:52 getting the latest event for "involvedObject.name=controller-0,involvedObject.kind=Pod"
07:58:58 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:115 fire notify watcher for controller
07:58:58 DEBUG juju.kubernetes.provider events.go:52 getting the latest event for "involvedObject.name=controller-0,involvedObject.kind=Pod"
07:58:58 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:115 fire notify watcher for controller-0
08:00:13 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:115 fire notify watcher for controller-0
08:00:13 DEBUG juju.kubernetes.provider events.go:52 getting the latest event for "involvedObject.name=controller-0,involvedObject.kind=Pod"
08:01:13 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:115 fire notify watcher for controller-0
08:01:13 DEBUG juju.kubernetes.provider events.go:52 getting the latest event for "involvedObject.name=controller-0,involvedObject.kind=Pod"
08:02:43 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:115 fire notify watcher for controller-0
08:02:43 DEBUG juju.kubernetes.provider events.go:52 getting the latest event for "involvedObject.name=controller-0,involvedObject.kind=Pod"
08:03:43 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:115 fire notify watcher for controller-0
08:03:43 DEBUG juju.kubernetes.provider events.go:52 getting the latest event for "involvedObject.name=controller-0,involvedObject.kind=Pod"
08:04:43 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:115 fire notify watcher for controller-0
08:04:43 DEBUG juju.kubernetes.provider events.go:52 getting the latest event for "involvedObject.name=controller-0,involvedObject.kind=Pod"
08:05:43 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:115 fire notify watcher for controller-0
08:05:43 DEBUG juju.kubernetes.provider events.go:52 getting the latest event for "involvedObject.name=controller-0,involvedObject.kind=Pod"
-----
microk8s payload
dasm@dell:~/git/charm-opensearch-k8s$ microk8s kubectl get all
NAME READY STATUS RESTARTS AGE
pod/microbot-5f5499d479-59xns 1/1 Running 0 10m
pod/microbot-5f5499d479-8v52f 1/1 Running 0 10m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 13m
service/microbot-service NodePort 10.152.183.242 <none> 80:32011/TCP 10m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/microbot 2/2 2 2 10m
NAME DESIRED CURRENT READY AGE
replicaset.apps/microbot-5f5499d479 2 2 2 10m
dasm@dell:~/git/charm-opensearch-k8s$ curl 10.152.183.242
<!DOCTYPE html>
<html>
<style type="text/css">
.centered
{
text-align:center;
margin-top:0px;
margin-bottom:0px;
padding:0px;
}
</style>
<body>
<p class="centered"><img src="microbot.png" alt="microbot"/></p>
<p class="centered">Container hostname: microbot-5f5499d479-8v52f</p>
</body>
</html>
After a while it continues with
08:18:57 DEBUG juju.kubernetes .provider events.go:52 getting the latest event for "involvedObject .name=storage- controller- 0,involvedObjec t.kind= PersistentVolum eClaim" .provider bootstrap.go:367 bootstrap failed, removing 8 resources. .provider bootstrap.go:594 deleting "controller- service" .provider bootstrap.go:648 deleting "controller-secret" shared-secret .provider bootstrap.go:669 deleting "controller-secret" server.pem .provider bootstrap.go:696 deleting "controller- configmap" bootstrap-params .provider bootstrap.go:718 deleting "controller- configmap" template-agent.conf .provider bootstrap.go:741 deleting "controller" service account .provider bootstrap.go:772 deleting "controller-majkro" cluster role binding .provider bootstrap.go:830 deleting "controller" statefulset juju.commands bootstrap.go:883 failed to bootstrap model: creating controller stack: creating statefulset for controller: timed out waiting for controller pod: unschedulable: pvc storage- controller- 0 pending due to ExternalProvisi oning - waiting for a volume to be created, either by external provisioner "microk8s. io/hostpath" or manually created by system administrator juju.commands bootstrap.go:884 (error details: [{/build/ snapcraft- juju-35d6cf/ parts/juju/ src/cmd/ juju/commands/ bootstrap. go:983: failed to bootstrap model} {/build/ snapcraft- juju-35d6cf/ parts/juju/ src/environs/ bootstrap/ bootstrap. go:667: } {/build/ snapcraft- juju-35d6cf/ parts/juju/ src/environs/ bootstrap/ bootstrap. go:298: } {/build/ snapcraft- juju-35d6cf/ parts/juju/ src/caas/ kubernetes/ provider/ k8s.go: 436: creating controller stack} {/build/ snapcraft- juju-35d6cf/ parts/juju/ src/caas/ kubernetes/ provider/ bootstrap. go:465: creating statefulset for controller} {/build/ snapcraft- juju-35d6cf/ parts/juju/ src/caas/ kubernetes/ provider/ bootstrap. go:846: } {/build/ snapcraft- juju-35d6cf/ parts/juju/ src/caas/ kubernetes/ provider/ bootstrap. go:980: timed out waiting for controller pod} {/build/ snapcraft- juju-35d6cf/ parts/juju/ src/caas/ kubernetes/ provider/ bootstrap. go:930: unschedulable} {/build/ snapcraft- juju-35d6cf/ parts/juju/ src/caas/ kubernetes/ provider/ bootstrap. go:910: pvc storage- controller- 0 pending due to ExternalProvisi oning - waiting for a volume to be created, either by external provisioner "microk8s. io/hostpath" or manually created by system administrator}]) juju.commands bootstrap.go:1634 cleaning up after failed bootstrap .provider. watcher k8swatcher.go:115 fire notify watcher for controller-majkro .provider teardown.go:282 namespace "controller-majkro" is still been terminating .provider. watcher k8swatcher.go:115 fire notify watcher for controller-majkro .provider teardown.go:282 namespace "controller-majkro" is still been termina...
08:18:57 DEBUG juju.kubernetes
08:18:57 DEBUG juju.kubernetes
08:18:57 DEBUG juju.kubernetes
08:18:57 DEBUG juju.kubernetes
08:18:57 DEBUG juju.kubernetes
08:18:57 DEBUG juju.kubernetes
08:18:57 DEBUG juju.kubernetes
08:18:57 DEBUG juju.kubernetes
08:18:57 DEBUG juju.kubernetes
08:18:57 ERROR juju.cmd.
08:18:57 DEBUG juju.cmd.
08:18:57 DEBUG juju.cmd.
08:18:58 DEBUG juju.kubernetes
08:18:58 DEBUG juju.kubernetes
08:18:59 DEBUG juju.kubernetes
08:18:59 DEBUG juju.kubernetes