Я объявил о развертывании в Kubernetes, в котором есть два контейнера. Один построен локально, другой нужно извлечь из частного реестра.
const appImage = new docker.Image("ledgerImage", {
imageName: 'us.gcr.io/qwil-build/ledger',
build: "../../",
});
const ledgerDeployment = new k8s.extensions.v1beta1.Deployment("ledger", {
spec: {
template: {
metadata: {
labels: {name: "ledger"},
name: "ledger",
},
spec: {
containers: [
{
name: "api",
image: appImage.imageName,
},
{
name: "ssl-proxy",
image: "us.gcr.io/qwil-build/monolith-ssl-proxy:latest",
}
],
}
}
}
});
Когда я запускаю pulumi up
, он зависает - это происходит из-за жалобы, что You don't have the needed permissions to perform this operation, and you may have invalid credentials
. Я вижу эту жалобу, когда я бегу kubectl describe <name of pod>
. Тем не менее, когда я запускаю docker pull us.gcr.io/qwil-build/monolith-ssl-proxy:latest
, он работает просто отлично. Я перезапустил gcloud auth configure-docker
, и это не помогло.
Я нашел https://github.com/pulumi/pulumi-cloud/issues/112, но, похоже, для docker.Image
требуется аргумент build
, который подсказывает мне, что он предназначен для локальных, а не удаленных изображений.
Как я могу извлечь изображение из частного реестра?
РЕДАКТИРОВАТЬ:
Оказывается, у меня есть локальный dockerfile для создания SSL-прокси, который мне нужен. Я объявил новый Image
с
const sslImage = new docker.Image("sslImage", {
imageName: 'us.gcr.io/qwil-build/ledger-ssl-proxy',
build: {
context: "../../",
dockerfile: "../../Dockerfile.proxy"
}
});
и правильно обновил ссылку на изображение в Deployment
. Тем не менее, у меня все еще возникают проблемы с аутентификацией.