Issues with running argo against microk8s on Ubunte

Asking for help? Comment out what you need so we can get more information to help you!

Cluster information:

Kubernetes version: Server Version: version.Info{Major:“1”, Minor:“19+”, GitVersion:“v1.19.2-34+1b3fa60b402c1c”, GitCommit:“1b3fa60b402c1c4cb0df8a99b733ad41141a2eb7”, GitTreeState:“clean”, BuildDate:“2020-09-16T21:36:35Z”, GoVersion:“go1.15.2”, Compiler:“gc”, Platform:“linux/amd64”}

Cloud being used: bare-metal
Installation method: Ubuntu snap
Host OS: Ubuntu
PRETTY_NAME=“Ubuntu 20.04.1 LTS”

When submitting a whalesay test against argo:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: hello-world-
spec:
entrypoint: whalesay
templates:

  • name: whalesay
    container:
    image: docker/whalesay:latest
    command: [cowsay]
    args: [“hello world”]

it fails with this:

Type Reason Age From Message


Warning FailedMount 18m (x1602 over 4d8h) kubelet Unable to attach or mount volumes: unmounted volumes=[docker-sock], unattached volumes=[podmetadata docker-sock argo-sa-token-q47jq]: timed out waiting for the condition
Warning FailedMount 8m5s (x3073 over 4d8h) kubelet MountVolume.SetUp failed for volume “docker-sock” : hostPath type check failed: /var/run/docker.sock is not a socket file
Warning FailedMount 2m30s (x585 over 4d7h) kubelet Unable to attach or mount volumes: unmounted volumes=[docker-sock], unattached volumes=[docker-sock argo-sa-token-q47jq podmetadata]: timed out waiting for the condition

I am at a loss why this happens - changing the
containerRuntimeExecutor: k8sapi

in the argo workflow-controller-configmap did not give any changes ( yes I restarted the workflow controller)

Any help highly appreciated - microk8s seems cool but it would be worthless without a working Argo to us.

can you help please ?

MicroK8s doesn’t use docker but instead containerd, thats why its failing. You may want to use the PNS executor.

uh–the last time I did that the workflow controller did not restart.

Can you point me to instructions on how to properly switch to PNS please?

I promise to try and come back in the morning

Based on the link i pasted above, it mentions the only change to do is the containerRuntimeExecutor in the workflow-controller-condigmap.yaml

changed it to pns:

kind: ConfigMap
apiVersion: v1
metadata:
name: workflow-controller-configmap
namespace: argo
selfLink: /api/v1/namespaces/argo/configmaps/workflow-controller-configmap
uid: 560661a7-fcd2-452d-ad7c-c30fa8841b35
resourceVersion: ‘2422831’
creationTimestamp: ‘2020-10-24T17:59:31Z’
managedFields:
- manager: kubectl
operation: Update
apiVersion: v1
time: ‘2020-10-24T17:59:31Z’
fieldsType: FieldsV1
fieldsV1:
‘f:data’: {}
- manager: dashboard
operation: Update
apiVersion: v1
time: ‘2020-11-03T08:37:17Z’
fieldsType: FieldsV1
fieldsV1:
‘f:data’:
‘f:workflowDefaults’: {}
data:
workflowDefaults: |
containerRuntimeExecutor: pns
metadata:
annotations:
argo: workflows
spec:
# Delete workflows after this timeout if not set differently in the workflow yaml
ttlStrategy:
# 6 days
secondsAfterCompletion: 518400


Still get this error:

docker-sock:
Type: HostPath (bare host directory volume)
Path: /var/run/docker.sock
HostPathType: Socket
argo-sa-token-q47jq:
Type: Secret (a volume populated by a Secret)
SecretName: argo-sa-token-q47jq
Optional: false
QoS Class: BestEffort
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message


Normal Scheduled 20s default-scheduler Successfully assigned mynamespace/hello-world-qstqq to viemicrok8s1
Warning FailedMount 4s (x6 over 20s) kubelet MountVolume.SetUp failed for volume “docker-sock” : hostPath type check failed: /var/run/docker.sock is not a socket file

It is marked as running but it never completes:

NAME STATUS AGE DURATION PRIORITY
hello-world-qstqq Running 2m 2m 0

Did you restart all argo workflow controllers?

yes, BUT
something was not correct with the Syntax

I changed it to :
---------------snip------------
data:
config: |
containerRuntimeExecutor: pns
workflowDefaults:
metadata:
---------------snip------------
and now it works.

Syntax Syntax Syntax…