Папка секретов Nomad пуста в контейнере Docker

У меня возникла проблема с Nomad'sNOMAD_SECRETS_DIRвыделение папок для контейнера Docker.

У меня есть следующееtemplateстрофа в моей должностной инструкции:

      template {
    destination = "/local/pki/certs/my_certificate.crt"
    perms = "440"
    data = <<EOF
[ CERTIFICATE CONTENT ]
EOF
}

template {
    destination = "/secrets/pki/private/my_key.key"
    perms = "400"
    data = <<EOF
[ KEY CONTENT ]
EOF
}

При этом из пользовательского интерфейса, когда я смотрю на файлы, выделенные для задачи, я вижу, что файл секретного ключа создан.

Однако в работающем Docker-контейнере папка совершенно пуста:

      # nomad alloc exec -i -t -task lb0 52a13d48 /bin/sh
/ # ls -al /secrets
total 0
drwxr-xr-x. 2 root   root    6 Feb 11 11:31 .
drwxr-xr-x. 1 root   root   70 Feb 11 11:31 ..

И если я смотрю на папку размещения в самой системе, то папка тоже пуста:

      # ls -al /srv/nomad/alloc/52a13d48-b073-39b4-4b79-10225aece50e/lb0/secrets/
total 0
drwxr-xr-x. 2 root   root    6 Feb 11 12:31 .
drwxrwxrwx. 5 nobody nobody 45 Feb 11 12:31 ..

Где Nomad находит файлы вsecretsпапка? Почему в контейнере пусто?

1 ответ

Странно, Номад не очень любит, когда я монтирую файловую систему только для чтения.

Я поместил следующее в файл модуля systemd:

      ProtectSystem=full
ProtectHome=read-only

Которые перемонтируют некоторые системные папки только для чтения перед запуском процесса. В каком-то смысле это мешало Nomad.

Другие вопросы по тегам