use @kubernetes/client-node to generate default config (#51)
This commit is contained in:
11424
package-lock.json
generated
11424
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
14
package.json
14
package.json
@ -18,16 +18,16 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.2.6",
|
"@actions/core": "^1.2.6",
|
||||||
"@actions/exec": "^1.0.0",
|
"@actions/exec": "^1.0.0",
|
||||||
"@actions/tool-cache": "^1.0.0",
|
"@actions/io": "^1.1.2",
|
||||||
"@kubernetes/client-node": "^0.16.0",
|
"@kubernetes/client-node": "^0.16.0",
|
||||||
"js-yaml": "^3.13.1"
|
"js-yaml": "^4.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^25.2.2",
|
"@types/jest": "^28.1.2",
|
||||||
"@types/js-yaml": "^4.0.4",
|
"@types/js-yaml": "^4.0.4",
|
||||||
"@types/node": "^12.0.4",
|
"@types/node": "^16.0.0",
|
||||||
"jest": "^26.6.3",
|
"jest": "^28.1.1",
|
||||||
"ts-jest": "^25.5.1",
|
"ts-jest": "^28.0.5",
|
||||||
"typescript": "3.9.2"
|
"typescript": "4.7.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,19 +14,27 @@ describe("Default kubeconfig", () => {
|
|||||||
kind: "Config",
|
kind: "Config",
|
||||||
clusters: [
|
clusters: [
|
||||||
{
|
{
|
||||||
|
name: "default",
|
||||||
cluster: {
|
cluster: {
|
||||||
"certificate-authority-data": certAuth,
|
|
||||||
server: clusterUrl,
|
server: clusterUrl,
|
||||||
|
"certificate-authority-data": certAuth,
|
||||||
|
"insecure-skip-tls-verify": false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
users: [
|
users: [{ name: "default-user", user: { token } }],
|
||||||
|
contexts: [
|
||||||
{
|
{
|
||||||
user: {
|
name: "loaded-context",
|
||||||
token: token,
|
context: {
|
||||||
|
cluster: "default",
|
||||||
|
user: "default-user",
|
||||||
|
name: "loaded-context",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
preferences: {},
|
||||||
|
"current-context": "loaded-context",
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(kc).toBe(expected);
|
expect(kc).toBe(expected);
|
||||||
@ -108,20 +116,34 @@ describe("Default kubeconfig", () => {
|
|||||||
kind: "Config",
|
kind: "Config",
|
||||||
clusters: [
|
clusters: [
|
||||||
{
|
{
|
||||||
|
name: "default",
|
||||||
cluster: {
|
cluster: {
|
||||||
"certificate-authority-data": cert,
|
|
||||||
server: k8sUrl,
|
server: k8sUrl,
|
||||||
|
"certificate-authority-data": cert,
|
||||||
|
"insecure-skip-tls-verify": false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
users: [
|
users: [
|
||||||
{
|
{
|
||||||
user: {
|
name: "default-user",
|
||||||
token: Buffer.from(token, "base64").toString(),
|
user: { token: Buffer.from(token, "base64").toString() },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
contexts: [
|
||||||
|
{
|
||||||
|
name: "loaded-context",
|
||||||
|
context: {
|
||||||
|
cluster: "default",
|
||||||
|
user: "default-user",
|
||||||
|
name: "loaded-context",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
preferences: {},
|
||||||
|
"current-context": "loaded-context",
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(getDefaultKubeconfig()).toBe(expectedConfig);
|
expect(getDefaultKubeconfig()).toBe(expectedConfig);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
import * as jsyaml from "js-yaml";
|
import * as jsyaml from "js-yaml";
|
||||||
|
import { KubeConfig } from "@kubernetes/client-node";
|
||||||
import { K8sSecret, parseK8sSecret } from "../types/k8sSecret";
|
import { K8sSecret, parseK8sSecret } from "../types/k8sSecret";
|
||||||
import { Method, parseMethod } from "../types/method";
|
import { Method, parseMethod } from "../types/method";
|
||||||
|
|
||||||
@ -58,25 +59,18 @@ export function createKubeconfig(
|
|||||||
token: string,
|
token: string,
|
||||||
clusterUrl: string
|
clusterUrl: string
|
||||||
): string {
|
): string {
|
||||||
const kubeconfig = {
|
const kc = new KubeConfig();
|
||||||
apiVersion: "v1",
|
kc.loadFromClusterAndUser(
|
||||||
kind: "Config",
|
|
||||||
clusters: [
|
|
||||||
{
|
{
|
||||||
cluster: {
|
name: "default",
|
||||||
"certificate-authority-data": certAuth,
|
|
||||||
server: clusterUrl,
|
server: clusterUrl,
|
||||||
|
caData: certAuth,
|
||||||
|
skipTLSVerify: false,
|
||||||
},
|
},
|
||||||
},
|
|
||||||
],
|
|
||||||
users: [
|
|
||||||
{
|
{
|
||||||
user: {
|
name: "default-user",
|
||||||
token: token,
|
token,
|
||||||
},
|
}
|
||||||
},
|
);
|
||||||
],
|
return kc.exportConfig();
|
||||||
};
|
|
||||||
|
|
||||||
return JSON.stringify(kubeconfig);
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user