DevOps Bootcamp · Урок

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

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

Урок 3 из 413 шагов

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

Можно начать бесплатно

Изучай DevOps Bootcamp с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
142
Уроки
568

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

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

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

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

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

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

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

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

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

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

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

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

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