Documentation
¶
Overview ¶
Package surfaceroster — ПЕРЕЧЕНЬ ПОВЕРХНОСТЕЙ, которые поднимает процесс, выведенный из его собственных объявлений.
Зачем отдельный производитель ¶
О поверхностях службы утверждают ТРИ места: композиционный корень (что поднимается), чарт (куда ведёт маршрут) и документ установки (что оператор откроет и что защитит). Пока перечень выписан в каждом от руки, расхождение между ними молчит by construction: каждое место по отдельности выглядит верным. Так и вышло — чарт вёл к двум поверхностям из восьми (задача #2337), а документ называл шесть (задача #2341).
Здесь перечень ОДИН, и читают его гейты обоих мест. Разойтись с процессом он не может: он и есть процесс, прочитанный разбором.
Почему разбором, а не импортом ¶
Поверхности объявляются ВНУТРИ функции подъёма (`serve.go`), рядом со своими обработчиками, и вынести их оттуда таблицей значило бы завести второе место об одном предмете — ровно то, против чего этот пакет написан. Разбор читает объявление там, где оно живёт.
Читается УЗЕЛ синтаксического дерева, а не текст: имя поверхности и её досягаемость встречаются и в комментариях, и в сообщениях отказа, и поиск по подстроке считал бы прозу объявлением.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Roster ¶
type Roster struct {
Surfaces []Surface
// FilesRead — сколько файлов прочитано. «Ноль находок» обязано быть
// отличимо от «ноль прочитанного».
FilesRead int
// DefaultsRead — сколько умолчаний адресов прочитано.
DefaultsRead int
}
Roster — прочитанный перечень плюс объём осмотренного.
type Surface ¶
type Surface struct {
// Name — имя, которым процесс называет её сам (журнал, текст отказа).
Name string
// Reach — досягаемость: "external" либо "cluster-internal".
Reach string
// ReachFromProcess — досягаемость объявлена САМИМ ПРОЦЕССОМ (ось
// `Surface.Reach`), а не названа здесь.
//
// Различать обязательно. У gRPC-ног оси досягаемости не существует вовсе,
// поэтому их значение ниже — утверждение ЭТОГО пакета. Сверять чужой
// документ с собственным утверждением значит проверять себя собой: такой
// гейт краснеет на верном тексте и молчит на неверном ровно тогда, когда
// ошибётся автор перечня.
ReachFromProcess bool
// SettingKey — ключ конфигурации, задающий её адрес.
SettingKey string
// DefaultAddr — адрес по умолчанию. Пустой означает «умолчания нет»:
// поверхность поднимается, только если посадка назвала адрес.
DefaultAddr string
// DefaultPort — порт из DefaultAddr. Пустой, если умолчания нет.
DefaultPort string
// GRPC — поверхность является gRPC-слушателем.
GRPC bool
// PostureAddr — адрес, который объявляет ПОСТАВЛЯЕМЫЙ боевой профиль.
// Заполняется у поверхностей без умолчания: их поднимает посадка, и вне
// профиля порт у них не определён ничем.
PostureAddr string
// PosturePort — порт из [Surface.PostureAddr].
PosturePort string
}
Surface — одна поверхность, поднимаемая процессом.