traffic 🚥dodo app traffic [command]
Доступные команды:
disable - отключить трафикenable - включить трафикstatus - состояние трафикаДоступные параметры:
-c, --context string - контекст, в котором будет выполнена команда-d, --deployment string - название деплоймента-n, --namespace string - название неймспейса-a, --all bool - применить ко всем деплойментамДанный код управляет ресурсами Dodoappservice, выставляя опцию disableTraffic в true или false.
{
"apiVersion": "k8s.paas.dodois.io/v1",
"kind": "DodoAppService",
"metadata": {
"name": "auth"
},
"spec": {
"workloads": {
"deployments": {
"web": {
"publicIngress": {
"disableTraffic": true,
"hosts": {
"app-sre.d.yandex.dodois.dev": [
"/"
]
}
}
}
}
}
}
}
Оператор при обнаружении этой опции добавляет в аннотацию nginx.ingress.kubernetes.io/server-snippet в ingress, которая возвращает HTTP статус код 503 при открытии любой страницы, не передавая траффик на под сервиса: location ~* ^/ { deny all; return 503; }. Обрабатывает запросы в этом случае ingress controller, трафик не доходит до подов.
Разберем управление трафиком на примере, где namespace будет sre и приложение будет auth.
на всех деплойментах
dodo app traffic enable auth -n --all sre -c d-yandex
на конкретном деплойменте
dodo app traffic enable auth -n sre -d web -c d-yandex
на всех деплойментах
dodo app traffic disable auth -n --all sre
на конкретном деплойменте
dodo app traffic disable auth -n sre -d web
на всех деплойментах
dodo app traffic status auth -n --all sre
на конкретном деплойменте
dodo app traffic status auth -n sre -d web