moodle.yml
moodle_state
'{{ state }}'
moodle_appname
'{{ meta_name }}-moodle'
moodle_image
quay.io/krestomatio/moodle:4.1@sha256:0a336e976620a7a478753e052b91805f57d8953ec1c1f6a339dd25902c67da08
...
moodle_image_pull_policy
IfNotPresent
...
moodle_image_pull_secret
'{{ image_pull_secret }}'
moodle_container
moodle-php-fpm
...
moodle_container_group
'{{ moodle_container.replace(''-'', ''_'') }}'
moodle_startup_command
'[''{{ moodle_php_fpm_check_container_script }}'', ''-s'']'
moodle_readiness_command
'[''{{ moodle_php_fpm_check_container_script }}'', ''-r'']'
moodle_liveness_command
'[''{{ moodle_php_fpm_check_container_script }}'', ''-l'']'
moodle_php_fpm_check_container_script
/usr/libexec/check-container-php-moodle
...
moodle_nginx_check_container_script
/usr/libexec/check-container-nginx-moodle
...
moodle_service
'{{ moodle_appname }}-service'
moodle_service_spec
"type: {{ moodle_service_type | default('ClusterIP') }}\nsessionAffinity: {{ moodle_service_session_affinity\
\ | default('None') }}\n{% if moodle_service_session_affinity_timeout is defined\
\ %}\nsessionAffinityConfig:\n clientIP:\n timeoutSeconds: {{ moodle_service_session_affinity_timeout\
\ }}\n{% endif %}\nports:\n- name: php-fpm\n port: 9000\n protocol: TCP\n targetPort:\
\ 9000\nselector:\n app: '{{ moodle_appname }}'\n"
moodle_app
/var/www/html
...
moodle_config_path
/config
...
moodle_scripts_path
'{{ moodle_config_path }}/scripts'
moodle_local_dir
/var/moodlelocal
...
moodle_host
m4e.krestomat.io
...
moodle_port
false
...
moodle_subpath
false
...
moodle_protocol
http
...
moodle_healthcheck_subpath
/login/index.php
...
moodle_healthcheck_path
'{{ moodle_subpath | default('''',true) + moodle_healthcheck_subpath }}'
moodle_config_autosync
true
...
moodle_new_adminpass_hash
$2b$10$zbRuwPil1wNWQUkvlkchwe3/rOljJvoheydndKH1X0bdIIigy0xim
...
moodle_new_instance
true
...
moodle_new_instance_fullname
Demo site
...
moodle_new_instance_shortname
demo
...
moodle_new_instance_summary
A demo site
...
moodle_new_instance_adminuser
admin
...
moodle_new_instance_adminmail
admin@example.com
...
moodle_new_instance_lang
en
...
moodle_new_instance_agree_license
false
...
moodle_new_instance_job
'{{ moodle_appname }}-new-instance-job'
moodle_new_instance_job_ttl_seconds_after_finished
604800
...
moodle_new_instance_job_active_deadline_seconds
3600
...
moodle_new_instance_job_resource_requests
true
...
moodle_new_instance_job_resource_requests_cpu
15m
...
moodle_new_instance_job_resource_requests_memory
32Mi
...
moodle_new_instance_job_resource_limits
false
...
moodle_new_instance_job_resource_limits_cpu
1
...
moodle_new_instance_job_resource_limits_memory
1Gi
...
moodle_new_instance_job_php_fpm_config_process_control_timeout
'{{ php_fpm_config_process_control_timeout }}'
moodle_new_instance_command
- /bin/bash
- -c
- 'container-entrypoint
{{ moodle_scripts_path }}/moodle-instance -i
{% if moodle_new_instance_job_command_snippet | default(false) %}
{{ moodle_new_instance_job_command_snippet }}
{% endif %}
'
moodle_new_instance_job_php_max_memory
'{{ moodle_new_instance_job_resource_limits_memory | regex_search(''^\d+[MmGgKk]'')
if moodle_new_instance_job_resource_limits_memory is defined and moodle_new_instance_job_resource_limits
else '''' }}'
moodle_new_instance_job_tolerations
false
...
moodle_new_instance_job_node_selector
false
...
moodle_new_instance_job_affinity
false
...
moodle_new_instance_job_php_fpm_database_check_socket
'{{ moodle_php_fpm_database_check_socket }}'
moodle_new_instance_startup_probe
true
...
moodle_new_instance_startup_command
'[''{{ moodle_php_fpm_check_container_script }}'', ''-d'']'
moodle_new_instance_startup_initial
0
...
moodle_new_instance_startup_period
10
...
moodle_new_instance_startup_timeout
3
...
moodle_new_instance_startup_success
1
...
moodle_new_instance_startup_failure
12
...
moodle_update_allow_pending_types
- Other
- Minor
moodle_update_job
'{{ moodle_appname }}-update-{{ moodle_status_version.allVersionsHash[:10] | default(now(utc=True).timestamp()
| int) }}-job'
moodle_update_job_ttl_seconds_after_finished
604800
...
moodle_update_job_active_deadline_seconds
'{{ 21600 if moodle_status_version.pendingType | default(''Other'') == ''Major'' else
10800 }}'
moodle_update_job_resource_requests
true
...
moodle_update_job_resource_requests_cpu
15m
...
moodle_update_job_resource_requests_memory
32Mi
...
moodle_update_job_resource_limits
false
...
moodle_update_job_resource_limits_cpu
1
...
moodle_update_job_resource_limits_memory
1Gi
...
moodle_update_job_command
- /bin/bash
- -c
- 'container-entrypoint
{{ moodle_scripts_path }}/moodle-instance -u
{% if moodle_update_job_command_snippet | default(false) %}
{{ moodle_update_job_command_snippet }}
{% endif %}
'
moodle_update_job_php_max_memory
'{{ moodle_update_job_resource_limits_memory | regex_search(''^\d+[MmGgKk]'') if moodle_update_job_resource_limits_memory
is defined and moodle_update_job_resource_limits else '''' }}'
moodle_update_job_php_fpm_config_process_control_timeout
'{{ php_fpm_config_process_control_timeout }}'
moodle_update_job_tolerations
false
...
moodle_update_job_node_selector
false
...
moodle_update_job_affinity
false
...
moodle_update_job_php_fpm_database_check_socket
'{{ moodle_php_fpm_database_check_socket }}'
moodle_cronjob
'{{ moodle_appname }}-cronjob'
moodle_cronjob_schedule
'*/1 * * * *'
moodle_cronjob_success_limit
3
...
moodle_cronjob_starting_deadline_seconds
45
...
moodle_cronjob_failed_limit
1
...
moodle_cronjob_completions
1
...
moodle_cronjob_parallelism
1
...
moodle_cronjob_backoff_limit
1
...
moodle_cronjob_active_deadline_seconds
86400
...
moodle_cronjob_suspend
false
...
moodle_cronjob_concurrency_policy
Allow
...
moodle_cronjob_command
- /bin/bash
- -c
- 'container-entrypoint
php {{ ''-d memory_limit='' + moodle_cronjob_php_max_memory if
moodle_cronjob_php_max_memory else '''' }} ${MOODLE_APP}/admin/cli/cron.php
{% if moodle_cronjob_command_snippet | default(false) %}
{{ moodle_cronjob_command_snippet }}
{% endif %}
'
moodle_cronjob_php_max_memory
'{{ moodle_cronjob_resource_limits_memory | regex_search(''^\d+[MmGgKk]'') if moodle_cronjob_resource_limits_memory
is defined and moodle_cronjob_resource_limits else '''' }}'
moodle_cronjob_resource_requests
true
...
moodle_cronjob_resource_requests_cpu
15m
...
moodle_cronjob_resource_requests_memory
32Mi
...
moodle_cronjob_resource_limits
false
...
moodle_cronjob_resource_limits_cpu
1
...
moodle_cronjob_resource_limits_memory
1Gi
...
moodle_cronjob_php_fpm_config_process_control_timeout
'{{ php_fpm_config_process_control_timeout }}'
moodle_cronjob_tolerations
false
...
moodle_cronjob_node_selector
false
...
moodle_cronjob_affinity
false
...
moodle_cronjob_vpa
'{{ moodle_cronjob }}-vpa'
moodle_cronjob_vpa_spec
false
...
moodle_cronjob_php_fpm_database_check_socket
'{{ moodle_php_fpm_database_check_socket }}'
moodle_cronjob_ttl_seconds_after_finished
604800
...
moodle_pvc_data
'{{ moodle_appname }}-moodledata-pvc'
moodle_pvc_data_storage_access_mode
ReadWriteOnce
...
moodle_pvc_data_storage_class_name
false
...
moodle_pvc_data_path
/var/moodledata
...
moodle_pvc_data_spec
"{% if moodle_pvc_data_storage_class_name is defined and moodle_pvc_data_storage_class_name\
\ %}\nstorageClassName: {{ moodle_pvc_data_storage_class_name }}\n{% endif %}\n\
accessModes:\n - '{{ moodle_pvc_data_storage_access_mode }}'\nresources:\n requests:\n\
\ storage: '{{ moodle_pvc_data_size }}'\n"
moodle_pvc_data_source
"persistentVolumeClaim:\n claimName: \"{{ moodle_pvc_data }}\""
moodle_pvc_data_current_size
'{{ lookup(''k8s'', api_version=''v1'', kind=''PersistentVolumeClaim'', namespace=meta_namespace,resource_name=moodle_pvc_data).spec.resources.requests.storage
| default('''') }}'
moodle_pvc_data_size
'{{ moodle_pvc_data_size_gib | string + ''Gi'' if moodle_pvc_data_autoexpansion else
moodle_pvc_data_current_size | default(''1Gi'', true) }}'
moodle_pvc_data_size_gib
'{{ cr_status_properties[routine_pvc_autoexpand_info_keyname].autoexpandSizeGib |
default(moodle_pvc_data_autoexpansion_increment_gib) }}'
moodle_pvc_data_autoexpansion
false
...
moodle_pvc_data_autoexpansion_increment_gib
1
...
moodle_pvc_data_autoexpansion_cap_gib
5
...
moodle_nfs_meta_name
false
...
moodle_nfs_service
'{{ moodle_nfs_meta_name + ''-nfs-service'' if moodle_nfs_meta_name else '''' }}'
moodle_nfs_namespace
'{{ meta_namespace }}'
moodle_nfs_parent_domain
false
...
moodle_nfs_domain
'{{ moodle_nfs_namespace + ( ''.'' + moodle_nfs_parent_domain if moodle_nfs_parent_domain
else '''') }}'
moodle_nfs_data_server
'{{ moodle_nfs_service + ''.'' + moodle_nfs_domain if moodle_nfs_meta_name else ''''
}}'
moodle_nfs_data_share
/
...
moodle_nfs_data_source
"csi:\n driver: nfs.csi.k8s.io\n volumeAttributes:\n server: \"{{ moodle_nfs_data_server\
\ }}\" # required\n share: \"{{ moodle_nfs_data_share }}\" # required\n{% if\
\ moodle_nfs_data_mount_options is defined and moodle_nfs_data_mount_options %}\n\
\ mountOptions: \"{{ moodle_nfs_data_mount_options }}\" # optional\n{% endif\
\ %}\n{% if moodle_nfs_data_mount_permissions is defined and moodle_nfs_data_mount_permissions\
\ %}\n mountPermissions: \"{{ moodle_nfs_data_mount_permissions }}\" # optional\n\
{% endif %}"
moodle_volume_moodledata
mount_path: '{{ moodle_pvc_data_path }}'
name: moodledata
source: '{{ moodle_nfs_data_source if moodle_nfs_meta_name else moodle_pvc_data_source
}}'
moodle_secret_config
'{{ moodle_appname }}-secret-config'
moodle_secret_config_data
'config.php: ''{{ lookup(''template'', moodle_config_template) | b64encode }}''
muc-config.json: ''{{ lookup(''template'', moodle_muc_config_template) | to_json
| b64encode }}''
'
moodle_secret_admin
'{{ moodle_appname }}-secret-admin'
moodle_secret_admin_data
'password_hash: ''{{ moodle_new_adminpass_hash | b64encode }}''
'
moodle_cm_scripts
'{{ moodle_appname }}-cm-scripts'
moodle_cm_scripts_data
"muc-config.php: |\n {{ lookup('template', moodle_script_muc_config_template) | indent(2)\
\ }}\nstatus.php: |\n {{ lookup('template', moodle_script_status_template) | indent(2)\
\ }}\nmoodle-instance: |\n {{ lookup('template', moodle_instance_template) | indent(2)\
\ }}\n"
moodle_postgres_meta_name
false
...
moodle_database_service
'{{ moodle_postgres_meta_name + ''-pgbouncer-service'' if moodle_postgres_meta_name
else '''' }}'
moodle_database_secret
'{{ moodle_postgres_meta_name + ''-postgres-secret'' if moodle_postgres_meta_name
else '''' }}'
moodle_database_secret_dbname_key
database_name
...
moodle_database_secret_dbuser_key
database_user
...
moodle_database_secret_dbpass_key
database_password
...
moodle_keydb_meta_name
false
...
moodle_redis_service
'{{ moodle_keydb_meta_name + ''-keydb-service'' if moodle_keydb_meta_name else ''''
}}'
moodle_redis_secret
'{{ moodle_keydb_meta_name + ''-keydb-secret'' if moodle_keydb_meta_name else ''''
}}'
moodle_redis_secret_auth_key
keydb_password
...
moodle_redis_host
'{{ moodle_redis_service }}'
moodle_redis_session_store
'{{ true if moodle_keydb_meta_name else false }}'
moodle_redis_password
'{{ '''' if not moodle_redis_secret else lookup(''k8s'', api_version=''v1'', kind=''Secret'',
namespace=meta_namespace, resource_name=moodle_redis_secret).data [moodle_redis_secret_auth_key
| default(''redis_password'')] | default('''') | b64decode }}'
moodle_redis_muc_config
'{{ true if moodle_keydb_meta_name else false }}'
moodle_redis_muc_config_prefix
muc_
...
moodle_redis_muc_config_serializer
2
...
moodle_redis_muc_config_compressor
1
...
moodle_muc_config
'{{ moodle_redis_muc_config }}'
moodle_muc_config_script
php -d apc.enable_cli=1 {{ moodle_scripts_path }}/muc-config.php {% if moodle_muc_config_reset
%} -r {% endif %} -f='{{moodle_muc_config_json_file }}'
...
moodle_muc_config_reset
false
...
moodle_muc_config_json_file
'{{ moodle_config_path }}/muc-config.json'
moodle_config_dbhost
'{{ moodle_database_service }}'
moodle_config_dbname
'{{ '''' if not moodle_database_secret else lookup(''k8s'', api_version=''v1'', kind=''Secret'',
namespace=meta_namespace, resource_name=moodle_database_secret).data[moodle_database_secret_dbname_key]
| default('''') | b64decode }}'
moodle_config_dbuser
'{{ '''' if not moodle_database_secret else lookup(''k8s'', api_version=''v1'', kind=''Secret'',
namespace=meta_namespace, resource_name=moodle_database_secret).data[moodle_database_secret_dbuser_key]
| default('''') | b64decode }}'
moodle_config_dbpass
'{{ '''' if not moodle_database_secret else lookup(''k8s'', api_version=''v1'', kind=''Secret'',
namespace=meta_namespace, resource_name=moodle_database_secret).data[moodle_database_secret_dbpass_key]
| default('''') | b64decode }}'
moodle_config_wwwroot
'{{ moodle_protocol }}://{{ moodle_host + ( '':'' + moodle_port | string if moodle_port
else '''' ) + ( moodle_subpath if moodle_subpath else '''' ) }}'
moodle_config_dataroot
'{{ moodle_pvc_data_path }}'
moodle_config_dbhandlesoptions
'{{ moodle_database_service is search(''pgbouncer'') if moodle_postgres_meta_name
else false }}'
moodle_config_session_redis
'{{ moodle_redis_session_store }}'
moodle_config_session_redis_host
'{{ moodle_redis_host }}'
moodle_config_session_redis_auth
'{{ moodle_redis_password }}'
moodle_config_session_redis_acquire_lock_timeout
120
...
moodle_config_session_redis_lock_expire
7200
...
moodle_config_sslproxy
'{{ true if moodle_protocol == ''https'' else false }}'
moodle_config_localcachedir
'{{ moodle_local_dir }}/cache'
moodle_config_disableupdateautodeploy
true
...