fixing defaulting to docker hub on private registry, and b64 encoding

This commit is contained in:
Nikola Jokic
2022-07-29 13:27:17 +02:00
parent e2033b29c7
commit 6ef042836f
2 changed files with 8 additions and 8 deletions

View File

@@ -46,7 +46,7 @@ export async function prepareJob(
} }
let createdPod: k8s.V1Pod | undefined = undefined let createdPod: k8s.V1Pod | undefined = undefined
try { try {
createdPod = await createPod(container, services, args.registry) createdPod = await createPod(container, services, args.container.registry)
} catch (err) { } catch (err) {
await prunePods() await prunePods()
throw new Error(`failed to create job pod: ${err}`) throw new Error(`failed to create job pod: ${err}`)

View File

@@ -233,13 +233,12 @@ export async function createDockerSecret(
): Promise<k8s.V1Secret> { ): Promise<k8s.V1Secret> {
const authContent = { const authContent = {
auths: { auths: {
[registry.serverUrl]: { [registry.serverUrl || 'https://index.docker.io/v1/']: {
username: registry.username, username: registry.username,
password: registry.password, password: registry.password,
auth: Buffer.from( auth: Buffer.from(`${registry.username}:${registry.password}`).toString(
`${registry.username}:${registry.password}`,
'base64' 'base64'
).toString() )
} }
} }
} }
@@ -252,15 +251,16 @@ export async function createDockerSecret(
secret.apiVersion = 'v1' secret.apiVersion = 'v1'
secret.metadata = new k8s.V1ObjectMeta() secret.metadata = new k8s.V1ObjectMeta()
secret.metadata.name = secretName secret.metadata.name = secretName
secret.metadata.namespace = namespace()
secret.metadata.labels = { secret.metadata.labels = {
[runnerInstanceLabel.key]: runnerInstanceLabel.value [runnerInstanceLabel.key]: runnerInstanceLabel.value
} }
secret.type = 'kubernetes.io/dockerconfigjson'
secret.kind = 'Secret' secret.kind = 'Secret'
secret.data = { secret.data = {
'.dockerconfigjson': Buffer.from( '.dockerconfigjson': Buffer.from(JSON.stringify(authContent)).toString(
JSON.stringify(authContent),
'base64' 'base64'
).toString() )
} }
const { body } = await k8sApi.createNamespacedSecret(namespace(), secret) const { body } = await k8sApi.createNamespacedSecret(namespace(), secret)