mirror of
https://github.com/Azure/k8s-deploy.git
synced 2026-06-25 05:59:26 +08:00
Fixes multiple namespaces bug (#276)
* fix ns bug * add tests * rename some variables * rename ns to namespace * fix delete + correctly type * add typing to input obj parser
This commit is contained in:
+176
-1
@@ -3,7 +3,6 @@ import * as exec from '@actions/exec'
|
||||
import * as io from '@actions/io'
|
||||
import * as core from '@actions/core'
|
||||
import * as toolCache from '@actions/tool-cache'
|
||||
import {config} from 'process'
|
||||
|
||||
describe('Kubectl path', () => {
|
||||
const version = '1.1'
|
||||
@@ -38,6 +37,7 @@ describe('Kubectl path', () => {
|
||||
const kubectlPath = 'kubectlPath'
|
||||
const testNamespace = 'testNamespace'
|
||||
const defaultNamespace = 'default'
|
||||
const otherNamespace = 'otherns'
|
||||
describe('Kubectl class', () => {
|
||||
describe('default namespace behavior', () => {
|
||||
const kubectl = new Kubectl(kubectlPath, defaultNamespace)
|
||||
@@ -122,6 +122,26 @@ describe('Kubectl class', () => {
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
// overrided ns
|
||||
const silent = false
|
||||
await kubectl.describe(
|
||||
resourceType,
|
||||
resourceName,
|
||||
silent,
|
||||
otherNamespace
|
||||
)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
[
|
||||
'describe',
|
||||
resourceType,
|
||||
resourceName,
|
||||
'--namespace',
|
||||
otherNamespace
|
||||
],
|
||||
{silent}
|
||||
)
|
||||
})
|
||||
|
||||
it('describes a resource silently', async () => {
|
||||
@@ -140,6 +160,26 @@ describe('Kubectl class', () => {
|
||||
],
|
||||
{silent: true}
|
||||
)
|
||||
|
||||
// overrided ns
|
||||
const silent = false
|
||||
await kubectl.describe(
|
||||
resourceType,
|
||||
resourceName,
|
||||
silent,
|
||||
otherNamespace
|
||||
)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
[
|
||||
'describe',
|
||||
resourceType,
|
||||
resourceName,
|
||||
'--namespace',
|
||||
otherNamespace
|
||||
],
|
||||
{silent}
|
||||
)
|
||||
})
|
||||
|
||||
it('annotates resource', async () => {
|
||||
@@ -165,6 +205,27 @@ describe('Kubectl class', () => {
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
// override ns
|
||||
await kubectl.annotate(
|
||||
resourceType,
|
||||
resourceName,
|
||||
annotation,
|
||||
otherNamespace
|
||||
)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
[
|
||||
'annotate',
|
||||
resourceType,
|
||||
resourceName,
|
||||
annotation,
|
||||
'--overwrite',
|
||||
'--namespace',
|
||||
otherNamespace
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
})
|
||||
|
||||
it('annotates files with single file', async () => {
|
||||
@@ -185,6 +246,22 @@ describe('Kubectl class', () => {
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
// override ns
|
||||
await kubectl.annotateFiles(file, annotation, otherNamespace)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
[
|
||||
'annotate',
|
||||
'-f',
|
||||
file,
|
||||
annotation,
|
||||
'--overwrite',
|
||||
'--namespace',
|
||||
otherNamespace
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
})
|
||||
|
||||
it('annotates files with mulitple files', async () => {
|
||||
@@ -205,6 +282,22 @@ describe('Kubectl class', () => {
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
// override ns
|
||||
await kubectl.annotateFiles(files, annotation, otherNamespace)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
[
|
||||
'annotate',
|
||||
'-f',
|
||||
files.join(','),
|
||||
annotation,
|
||||
'--overwrite',
|
||||
'--namespace',
|
||||
otherNamespace
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
})
|
||||
|
||||
it('labels files with single file', async () => {
|
||||
@@ -225,6 +318,21 @@ describe('Kubectl class', () => {
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
await kubectl.labelFiles(file, labels, otherNamespace)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
[
|
||||
'label',
|
||||
'-f',
|
||||
file,
|
||||
...labels,
|
||||
'--overwrite',
|
||||
'--namespace',
|
||||
otherNamespace
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
})
|
||||
|
||||
it('labels files with multiple files', async () => {
|
||||
@@ -245,6 +353,21 @@ describe('Kubectl class', () => {
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
await kubectl.labelFiles(files, labels, otherNamespace)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
[
|
||||
'label',
|
||||
'-f',
|
||||
files.join(','),
|
||||
...labels,
|
||||
'--overwrite',
|
||||
'--namespace',
|
||||
otherNamespace
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
})
|
||||
|
||||
it('gets all pods', async () => {
|
||||
@@ -273,6 +396,20 @@ describe('Kubectl class', () => {
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
// override ns
|
||||
await kubectl.checkRolloutStatus(resourceType, name, otherNamespace)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
[
|
||||
'rollout',
|
||||
'status',
|
||||
`${resourceType}/${name}`,
|
||||
'--namespace',
|
||||
otherNamespace
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
})
|
||||
|
||||
it('gets resource', async () => {
|
||||
@@ -291,6 +428,22 @@ describe('Kubectl class', () => {
|
||||
],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
// override ns
|
||||
const silent = true
|
||||
await kubectl.getResource(resourceType, name, silent, otherNamespace)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
[
|
||||
'get',
|
||||
`${resourceType}/${name}`,
|
||||
'-o',
|
||||
'json',
|
||||
'--namespace',
|
||||
otherNamespace
|
||||
],
|
||||
{silent}
|
||||
)
|
||||
})
|
||||
|
||||
it('executes a command', async () => {
|
||||
@@ -321,6 +474,14 @@ describe('Kubectl class', () => {
|
||||
['delete', arg, '--namespace', testNamespace],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
// override ns
|
||||
await kubectl.delete(arg, otherNamespace)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
['delete', arg, '--namespace', otherNamespace],
|
||||
{silent: false}
|
||||
)
|
||||
})
|
||||
|
||||
it('deletes with multiple arguments', async () => {
|
||||
@@ -331,6 +492,14 @@ describe('Kubectl class', () => {
|
||||
['delete', ...args, '--namespace', testNamespace],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
// override ns
|
||||
await kubectl.delete(args, otherNamespace)
|
||||
expect(exec.getExecOutput).toBeCalledWith(
|
||||
kubectlPath,
|
||||
['delete', ...args, '--namespace', otherNamespace],
|
||||
{silent: false}
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -369,5 +538,11 @@ describe('Kubectl class', () => {
|
||||
[command, '--insecure-skip-tls-verify', '--namespace', testNamespace],
|
||||
{silent: false}
|
||||
)
|
||||
|
||||
const kubectlNoFlags = new Kubectl(kubectlPath)
|
||||
kubectlNoFlags.executeCommand(command)
|
||||
expect(exec.getExecOutput).toBeCalledWith(kubectlPath, [command], {
|
||||
silent: false
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user