Как создать секрет для извлечения пользовательских изображений с помощью cdk8s?
У меня есть следующий класс:
import { KubeDeployment, KubeSecret, KubeService } from './imports/k8s';
import { Construct } from 'constructs';
import { App, Chart } from 'cdk8s';
import * as kplus from 'cdk8s-plus-17';
class MyChart extends Chart {
constructor(scope: Construct, name: string) {
super(scope, name);
const label = { app: 'simple-nginx-server' };
this.createDeployment(label);
this.createService(label);
this.createSecret(label);
}
createDeployment(label: any) {
new KubeDeployment(this, 'deployment', {
spec: {
replicas: 5,
selector: {
matchLabels: label
},
template: {
metadata: { labels: label },
spec: {
containers: [
{
name: 'webserver',
image: 'myrepo/myimage',
imagePullPolicy: kplus.ImagePullPolicy.IF_NOT_PRESENT,
ports: [{ containerPort: 80 }]
}
]
}
}
}
});
}
createService(label: any) {
new KubeService(this, 'service', {
spec: {
type: 'LoadBalancer',
ports: [{ port: 80, targetPort: 80 }],
selector: label
}
});
}
createSecret(label: any) {
new KubeSecret(this, 'secret', {
metadata: { labels: label }, data: { "auths": "base64auth" }, type: "kubernetes.io/dockerconfigjson"
});
}
}
const app = new App();
new MyChart(app, 'nginx-custom-server');
app.synth();
Секрет работает неправильно, потому что я не могу вытащить образ из моего частного репозитория (вытягивание докеров работает), потому что модули из сервисов выдают ошибки повсюду из-за невозможности вытащить образ. Как я могу это исправить?
Еще одна вещь, если кто-нибудь знает, можете ли вы указать мне, где я должен посмотреть, как прикрепить тома к этим модулям? Я имею в виду локальные тома, в документации CDK8S их нет.