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