I’ve tried to run a few tutor commands that rely on kustomize templates. So far, I’ve tried tutor k8s createuser
and tutor k8s importdemocourse
. Both times, the container for the associated job fails to create.
Edit: We’re using tutor version 14.0.1
The relevant bit of information is below:
Normal Scheduled 10m default-scheduler Successfully assigned openedx-prod/cms-job-20220726154615--1-p9thb to ip-192-168-4-24.us-east-2.compute.internal
Warning FailedMount 9m8s (x8 over 10m) kubelet MountVolume.SetUp failed for volume "settings-cms" : configmap "openedx-settings-cms-96tbh895cb" not found
Warning FailedMount 9m8s (x8 over 10m) kubelet MountVolume.SetUp failed for volume "settings-lms" : configmap "openedx-settings-lms-g95m8kkgfh" not found
Warning FailedMount 8m9s kubelet Unable to attach or mount volumes: unmounted volumes=[settings-lms settings-cms config], unattached volumes=[settings-lms settings-cms config kube-api-access-hjpg7]: timed out waiting for the condition
Warning FailedMount 4m (x11 over 10m) kubelet MountVolume.SetUp failed for volume "config" : configmap "openedx-config-4f4h797tg2" not found
Which means the config maps can’t be found. I’m not sure how to create them.
For more context, this is the complete pod description:
kubectl describe pod cms-job-20220726154615--1-p9thb --namespace=openedx-prod
Name: cms-job-20220726154615--1-p9thb
Namespace: openedx-prod
Priority: 0
Node: ip-192-168-4-24.us-east-2.compute.internal/192.168.4.24
Start Time: Tue, 26 Jul 2022 11:46:17 -0400
Labels: app.kubernetes.io/instance=openedx-ZMdtW7IbnSS61k1qgjR7en68
app.kubernetes.io/managed-by=tutor
app.kubernetes.io/part-of=openedx
controller-uid=1d5c59c2-d846-4a2f-ad4d-7e6411911be4
job-name=cms-job-20220726154615
Annotations: app.kubernetes.io/version: 14.0.1
kubernetes.io/psp: eks.privileged
Status: Pending
IP:
IPs: <none>
Controlled By: Job/cms-job-20220726154615
Containers:
cms:
Container ID:
Image: docker.io/overhangio/openedx:14.0.1
Image ID:
Port: <none>
Host Port: <none>
Args:
sh
-e
-c
echo "Loading settings $DJANGO_SETTINGS_MODULE"
# Import demo course
git clone https://github.com/openedx/edx-demo-course --branch open-release/nutmeg.1 --depth 1 ../edx-demo-course
python ./manage.py cms import ../data ../edx-demo-course
# Re-index courses
./manage.py cms reindex_course --all --setup
State: Waiting
Reason: ContainerCreating
Ready: False
Restart Count: 0
Environment:
SERVICE_VARIANT: cms
DJANGO_SETTINGS_MODULE: cms.envs.tutor.production
Mounts:
/openedx/config from config (rw)
/openedx/edx-platform/cms/envs/tutor/ from settings-cms (rw)
/openedx/edx-platform/lms/envs/tutor/ from settings-lms (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-hjpg7 (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
settings-lms:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: openedx-settings-lms-g95m8kkgfh
Optional: false
settings-cms:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: openedx-settings-cms-96tbh895cb
Optional: false
config:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: openedx-config-4f4h797tg2
Optional: false
kube-api-access-hjpg7:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
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 10m default-scheduler Successfully assigned openedx-prod/cms-job-20220726154615--1-p9thb to ip-192-168-4-24.us-east-2.compute.internal
Warning FailedMount 9m8s (x8 over 10m) kubelet MountVolume.SetUp failed for volume "settings-cms" : configmap "openedx-settings-cms-96tbh895cb" not found
Warning FailedMount 9m8s (x8 over 10m) kubelet MountVolume.SetUp failed for volume "settings-lms" : configmap "openedx-settings-lms-g95m8kkgfh" not found
Warning FailedMount 8m9s kubelet Unable to attach or mount volumes: unmounted volumes=[settings-lms settings-cms config], unattached volumes=[settings-lms settings-cms config kube-api-access-hjpg7]: timed out waiting for the condition
Warning FailedMount 4m (x11 over 10m) kubelet MountVolume.SetUp failed for volume "config" : configmap "openedx-config-4f4h797tg2" not found
And the associated job description:
kubectl describe job cms-job-20220726154615 --namespace=openedx-prod
Name: cms-job-20220726154615
Namespace: openedx-prod
Selector: controller-uid=1d5c59c2-d846-4a2f-ad4d-7e6411911be4
Labels: app.kubernetes.io/component=job
app.kubernetes.io/instance=openedx-ZMdtW7IbnSS61k1qgjR7en68
app.kubernetes.io/managed-by=tutor
app.kubernetes.io/name=cms-job-20220726154615
app.kubernetes.io/part-of=openedx
Annotations: app.kubernetes.io/version: 14.0.1
Parallelism: 1
Completions: 1
Completion Mode: NonIndexed
Start Time: Tue, 26 Jul 2022 11:46:17 -0400
Pods Statuses: 1 Running / 0 Succeeded / 0 Failed
Pod Template:
Labels: app.kubernetes.io/instance=openedx-ZMdtW7IbnSS61k1qgjR7en68
app.kubernetes.io/managed-by=tutor
app.kubernetes.io/part-of=openedx
controller-uid=1d5c59c2-d846-4a2f-ad4d-7e6411911be4
job-name=cms-job-20220726154615
Annotations: app.kubernetes.io/version: 14.0.1
Containers:
cms:
Image: docker.io/overhangio/openedx:14.0.1
Port: <none>
Host Port: <none>
Args:
sh
-e
-c
echo "Loading settings $DJANGO_SETTINGS_MODULE"
# Import demo course
git clone https://github.com/openedx/edx-demo-course --branch open-release/nutmeg.1 --depth 1 ../edx-demo-course
python ./manage.py cms import ../data ../edx-demo-course
# Re-index courses
./manage.py cms reindex_course --all --setup
Environment:
SERVICE_VARIANT: cms
DJANGO_SETTINGS_MODULE: cms.envs.tutor.production
Mounts:
/openedx/config from config (rw)
/openedx/edx-platform/cms/envs/tutor/ from settings-cms (rw)
/openedx/edx-platform/lms/envs/tutor/ from settings-lms (rw)
Volumes:
settings-lms:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: openedx-settings-lms-g95m8kkgfh
Optional: false
settings-cms:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: openedx-settings-cms-96tbh895cb
Optional: false
config:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: openedx-config-4f4h797tg2
Optional: false
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 50m job-controller Created pod: cms-job-20220726154615--1-p9thb
Finally, grepping through our configMaps using the command kubectl get configmaps --namespace=openedx-prod | grep "openedx-config-4f4h797tg2\|openedx-settings-cms-96tbh895cb\|openedx-settings-lms-g95m8kkgfh"
shows that the configmaps don’t exist.
Alternatively, I’d be open to learning how to manually import the demo corse/edit users instead.