Пользовательские шаблоны#
Для изменения конфигурации Angie для ресурсов Ingress, ресурсов VirtualServer и основного файла конфигурации Angie можно использовать пользовательские шаблоны.
Пользовательские шаблоны ANIC настраиваются через ConfigMap с помощью следующих ключей:
main-template
— задает основной шаблон конфигурации Angie.ingress-template
— задает шаблон конфигурации ANIC для ресурса Ingress.virtualserver-template
— задает шаблон конфигурации ANIC для ресурса VirtualServer.
Пример#
kind: ConfigMap
apiVersion: v1
metadata:
name: angie-config
namespace: angie-ingress
data:
main-template: |
worker_processes {{.WorkerProcesses}};
...
include /etc/angie/conf.d/*.conf;
}
ingress-template: |
{{range $upstream := .Upstreams}}
upstream {{$upstream.Name}} {
{{if $upstream.LBMethod }}{{$upstream.LBMethod}};{{end}}
...
}{{end}}
virtualserver-template: |
{{ range $u := .Upstreams }}
upstream {{ $u.Name }} {
{{ if ne $u.UpstreamZoneSize "0" }}zone {{ $u.Name }} {{ $u.UpstreamZoneSize }};{{ end }}
...
}
{{ end }}
Примечание
Шаблоны в примере обрезаны для краткости.
Основные шаблоны
angie.tmpl
иangie.ingress.tmpl
находятся по путиinternal/configs/version1
. Шаблон VirtualServer (angie.virtualserver.tmpl
) расположен по путиinternal/configs/version2
.
Диагностика ошибок#
Если пользовательский шаблон содержит ошибку, ANIC не запустится. Ошибка отобразится в журнале.
Пример ошибки:
Error updating Angie main template: template: angieTemplate:98: unexpected EOF
Если некорректный пользовательский шаблон был добавлен после запуска ANIC, конфигурация не обновится. Ошибка отобразится в журнале, в событии, связанном с ConfigMap.
Пример ошибки:
Error when updating config from ConfigMap: Invalid angie configuration detected, not reloading
События ConfigMap можно просмотреть с помощью команды kubectl describe -n anic configmap angie-config
.
Пример события с ошибкой:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Updated 12s (x2 over 25s) anic Configuration from anic/angie-config was updated
Warning UpdatedWithError 10s anic Configuration from anic/angie-config was updated, but not applied: Error when parsing the main template: template: angieTemplate:98: unexpected EOF
Warning UpdatedWithError 8s anic Configuration from anic/angie-config was updated, but not applied: Error when writing main Config