0Pricing
Helm Academy · Урок

Циклический перебор файлов с помощью range и .Files.Glob

Создание ConfigMaps из каталога файлов

«Циклический перебор файлов с помощью range и .Files.Glob» — бесплатный урок Helm Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Helm Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Helm Academy содержит 4 уроков всего.

Добавление файлов в чарт

Чарты могут поставляться с дополнительными файлами вместе с шаблонами. Объект .Files предоставляет шаблонам доступ для чтения этих встроенных файлов.

Поиск файлов с помощью Glob

Метод .Files.Glob возвращает файлы, пути которых соответствуют шаблону, например все файлы в каталоге конфигурации.

{{ $files := .Files.Glob "configs/*.conf" }}

Перебор найденных файлов

Объедините Glob с range, чтобы перебрать каждый найденный файл, получая внутри цикла его путь и необработанные байты.

{{ range $path, $bytes := .Files.Glob "configs/*" }}

Создание ConfigMap

Классический вариант использования — создать один ConfigMap, в котором ключами данных будут имена файлов, а значениями — содержимое файлов.

Сокращённая запись AsConfig

Именно для этого случая AsConfig сразу преобразует результат glob-поиска в готовый блок данных для ConfigMap.

data: {{ (.Files.Glob "configs/*").AsConfig | nindent 2 }}

Секреты с помощью AsSecrets

Его парный метод, AsSecrets, кодирует каждый файл в Base64, чтобы результат glob-поиска можно было использовать для заполнения ресурса Secret.

data: {{ (.Files.Glob "secret/*").AsSecrets | nindent 2 }}

Использование базового имени

Внутри цикла часто нужен только файл в качестве ключа, поэтому примените функцию base, чтобы убрать часть пути с каталогом.

{{ base $path }}: |

Чтение содержимого каждого файла

Переменная цикла содержит необработанные байты, поэтому передайте её через toString или nindent, чтобы аккуратно разместить содержимое под соответствующим ключом.

{{ $content | toString | nindent 4 }}

Шаблоны Glob задаются относительно

Шаблоны Glob разрешаются относительно корня чарта, а скрытые файлы пропускаются, поэтому храните встроенные ресурсы в каталогах с понятными именами.

Сохранение корректности вывода

Отступы важны: используйте nindent для каждого блока, чтобы созданные ключи и содержимое правильно располагались внутри data.

Чтение одного файла

Если нужен только один файл, а не набор файлов, .Files.Get напрямую возвращает его содержимое без какого-либо перебора.

{{ .Files.Get "configs/app.conf" }}

Быстрая проверка

Быстрая проверка поиска файлов по шаблону.

Итоги

Вы научились выбирать встроенные файлы с помощью .Files.Glob, перебирать их с помощью range и создавать ConfigMaps через AsConfig или AsSecrets. 🎉

Часто задаваемые вопросы

Урок «Циклический перебор файлов с помощью range и .Files.Glob» бесплатный?

Да — полный текст урока «Циклический перебор файлов с помощью range и .Files.Glob» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Helm Academy, подпишись на CoddyKit PRO. Курс Helm Academy содержит 4 уроков всего.

Чему я научусь в уроке «Циклический перебор файлов с помощью range и .Files.Glob»?

Создание ConfigMaps из каталога файлов Ты практикуешь Helm Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Helm Academy?

Предыдущий опыт не требуется. Helm Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Циклический перебор файлов с помощью range и .Files.Glob»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Helm Academy?

Да. Каждый урок Helm Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Глубокое объединение с mergeOverwrite и dict
  2. tpl: рендеринг строк из значений
  3. Циклический перебор файлов с помощью range и .Files.Glob
  4. fail и пользовательские проверки
← Назад к Helm Academy