surfaceroster

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2026 License: AGPL-3.0 Imports: 11 Imported by: 0

Documentation

Overview

Package surfaceroster — ПЕРЕЧЕНЬ ПОВЕРХНОСТЕЙ, которые поднимает процесс, выведенный из его собственных объявлений.

Зачем отдельный производитель

О поверхностях службы утверждают ТРИ места: композиционный корень (что поднимается), чарт (куда ведёт маршрут) и документ установки (что оператор откроет и что защитит). Пока перечень выписан в каждом от руки, расхождение между ними молчит by construction: каждое место по отдельности выглядит верным. Так и вышло — чарт вёл к двум поверхностям из восьми (задача #2337), а документ называл шесть (задача #2341).

Здесь перечень ОДИН, и читают его гейты обоих мест. Разойтись с процессом он не может: он и есть процесс, прочитанный разбором.

Почему разбором, а не импортом

Поверхности объявляются ВНУТРИ функции подъёма (`serve.go`), рядом со своими обработчиками, и вынести их оттуда таблицей значило бы завести второе место об одном предмете — ровно то, против чего этот пакет написан. Разбор читает объявление там, где оно живёт.

Читается УЗЕЛ синтаксического дерева, а не текст: имя поверхности и её досягаемость встречаются и в комментариях, и в сообщениях отказа, и поиск по подстроке считал бы прозу объявлением.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IAMRoot

func IAMRoot(fromDir string) (string, error)

IAMRoot — корень дерева службы относительно каталога пробы.

Types

type Roster

type Roster struct {
	Surfaces []Surface
	// FilesRead — сколько файлов прочитано. «Ноль находок» обязано быть
	// отличимо от «ноль прочитанного».
	FilesRead int
	// DefaultsRead — сколько умолчаний адресов прочитано.
	DefaultsRead int
}

Roster — прочитанный перечень плюс объём осмотренного.

func Read

func Read(iamRoot string) (Roster, error)

Read собирает перечень из дерева службы (корень — каталог `services/iam`).

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 — одна поверхность, поднимаемая процессом.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL