я могу указать только coi-спецификацию, а спецификация docker-compose не отработает?
И других ключей в metadata для спецификации, кроме docker-container-declaration нет?
Работает
В metadata вы можете произвольный набор ключей передать
Не путайте metadata и ключ внутри него user-data
странно, провел тест metadata = { user-data = file("${path.module}/cloud-config.yaml") docker-container-declaration = file("${path.module}/docker-compose.yaml") } docker-compose.yaml из примера документации яндекса машина есть, а докер пуст
Прочитайте документацию внимательно. Docker-compose передается по другому ключу
я об этом в исходном сообщении и намекнул, но не нашел какой другой :)
Замените docker-container-declaration на docker-compose
волшебно просто, но догадаться не смог :) спасибо
это же зависит от обработчиков внутри ВМ, как и с ключом docker-compose - зарезервирован, отсюда вопрос: 1. есть ли где-то описание доступных служебных ключей, типа docker-compose расширяющий https://cloud.yandex.ru/docs/compute/concepts/vm-metadata? 2. обработкой собственных ключей метеданных через внутренний запрос к метаданным происходит?
1. Нет. Я же писал выше: набор ключей произвольный. Поведение вм будет зависеть от ПО на ней установленного. 2. Вообще не понял вопроса. Вы кажется какие-то слова пропустили.
1.ну если мы говорим про COI образ яндекса, то набор ПО более-менее стандартизирован :) а документация Яндекса не раскрывает, даже docker-compose ключа. 2. поправил, спасибо
1. Вот здесь ключ описан https://cloud.yandex.ru/docs/cos/tutorials/ig-with-containers
Все равно не понятно, что за собственные ключи и про что вы спрашиваете.
Иголка в яйце, яйцо в утке, но спасибо за наводку по этому ключу :) он существует в доках! :)
metadata { foo = "bar" } например, внутри ВМ я значение foo должен через внутренний запрос к метаданным получить (типа https://cloud.yandex.ru/docs/compute/operations/vm-info/get-info#gce-metadata)? или оно как переменная может быть доступно?
вы что хотите получить?
Если вы про переменные окружения — нет, там его не будет. Вашему ПО надо сходить в сервис метаданных
в случае с foo=bar изучаю концептуальную возможность передачи собственных ключей метаданных, к сожалению без практической задачи
вот спасибо, этого достаточно
нет, рассматривал без cloudinit
Практическое применение с моей точки зрения здесь может быть только одно - запустить некие приложения при старте виртуальной машины. А даже одно запущенное приложение можно рассматривать как некий контроллер для последующих операций. То есть главное запустить что-то в операционной системе.
Спасибо. Тем не менее cloudinit это тоже обеспечивает.
Так об этом и речь. Зачем дополнительные велосипеды изобретать?
если возможность передачи своих ключей указана в документации, то я хотел понять как это обрабатывать изнутри ВМ и только :)
Примерно как автозагрузка в винде например
Николай уточнил выше, для этого нужно моему ПО сходить в сервис метаданных и получить нужные значения для моих кустарных ключей
Это правильный путь. Но можно использовать своё приложение, которое при запуске раздаст всем всё, что нужно - кустарный метод.
Обсуждают сегодня