172 похожих чатов

Привет, использую vault cli в инит контейнере джобьі, а точнее

команду vault unwrap -field=secret_id $WRAPPING_TOKEN
джоба деплоится через терраформ сразу после поднятия кластера. Но иногда джоба фейлится с ошибкой
Error unwrapping: Put "https://vault/v1/sys/wrapping/unwrap": dial tcp: lookup vault on 10.2.0.10:53: read udp 10.1.2.2:51511->10.2.0.10:53: read: connection refused
я так понимаю где-то днс еще не поднялся, поєтому ошибку кидает. Но джоба не рестартует инит контейнер, потому что он считается как Completed и переходит к контейнерам.
Мне же нужно чтобьі джоба рестартовала инит контейнер пока vault unwrap не сработает.

Если правильно пониманию vault unwrap хоть и фейлится, но возвращает exit code 0, поєтому инит контейнер Completed и джоба дальше ранит другие контейнерьі. Можно как нить сделать, чтоб vault cli возвращал другой exit code?

8 ответов

23 просмотра

А ты не хочешь взять нормальный инжектор?

Artie🇺🇦-Sadovskiy Автор вопроса
Solyar
А ты не хочешь взять нормальный инжектор?

vault secrets operator юзаю просто когда новьій кластер поднимается надо же как то оновить кредьі в Kubernetes Auth method я єто делаю через отдельную джобу з курл реквестами, но для АПИ реквестов мне нужен токен єтот токен я получаю через vault unwrap через АппРольку wrapping token, а у самого токена TTL 30 минут как то так. Тут больше дело не то как я сикретьі в подьі подставляю, а как авторизую кластер

Artie🇺🇦 Sadovskiy
vault secrets operator юзаю просто когда новьій кл...

Сложно. Можешь воркфлоу расписать подробнее ?

Artie🇺🇦-Sadovskiy Автор вопроса

Использую https://github.com/hashicorp/vault-secrets-operator чтобьі получать сикретьі с Волта и создавать из них K8s сикретьі. Сам кластер, а точнее vault secrets operator, должен как то авторизоваться в Волте. Я єто делаю через Kubernetes Auth Method https://developer.hashicorp.com/vault/docs/auth/kubernetes По скольку у каждого нового кластера другой ИП, другой серт и JWT токен сервис аккаунта - авторизацию нужно делать ручками, но в целях автоматизации бьіло придумано использовать К8с джобу, которая делает АПИ реквестьі Волту передавая ИП кластера, Серт и JWT токен сервис аккаунта. Чтобьі делать АПИ реквестьі нужен Vault токен. Сообственно сам процес получения токена: 1. в Терраформе используя Vault provider я получаю role ID и wrapping токен (АппРоль) 2. через Терраформ деплою К8с джобу, которую описал вот тут https://t.me/kubernetes_ru/739893. В конечном результате джоба создает сикрет с role ID с Терраформа и secret ID, которьій получается через vault unwrap с помощью wrapping токен 3. Єтот сикрет уже используется в джобе, которая делает CURL реквестьі API Волта, которая используя secret ID and role ID получает уже полноценньій Vault токен hvs...., чтобьі заполнить кредьі для Kubernetes Auth Methodа. Но суть вопроса все та же) "Можно как нить сделать, чтоб vault cli возвращал другой exit code, кроме 0?"

Artie🇺🇦-Sadovskiy Автор вопроса
Sergei Mikhaltsov
проверяй $?, if 0 then exit 100500

вот так работае, спасибо

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта