2021-06-19 23:06:44 +00:00
|
|
|
import { CoreV1Api } from '@kubernetes/client-node';
|
2021-10-04 23:23:49 +00:00
|
|
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
2021-06-19 23:06:44 +00:00
|
|
|
import * as k8s from '@kubernetes/client-node';
|
|
|
|
|
|
|
|
|
|
class KubernetesSecret {
|
|
|
|
|
static async createSecret(
|
2021-08-17 22:13:46 +00:00
|
|
|
secrets: CloudRunnerSecret[],
|
2021-06-19 23:06:44 +00:00
|
|
|
secretName: string,
|
|
|
|
|
namespace: string,
|
|
|
|
|
kubeClient: CoreV1Api,
|
|
|
|
|
) {
|
|
|
|
|
const secret = new k8s.V1Secret();
|
|
|
|
|
secret.apiVersion = 'v1';
|
|
|
|
|
secret.kind = 'Secret';
|
|
|
|
|
secret.type = 'Opaque';
|
|
|
|
|
secret.metadata = {
|
|
|
|
|
name: secretName,
|
|
|
|
|
};
|
|
|
|
|
secret.data = {};
|
|
|
|
|
for (const buildSecret of secrets) {
|
2021-12-29 22:55:42 +00:00
|
|
|
secret.data[buildSecret.ParameterKey] = buildSecret.ParameterValue;
|
2021-06-19 23:06:44 +00:00
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
await kubeClient.createNamespacedSecret(namespace, secret);
|
|
|
|
|
} catch (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default KubernetesSecret;
|