Skip to content

Commit

Permalink
Merge pull request #385 from ramaro/normalise_helm_compile
Browse files Browse the repository at this point in the history
Normalise helm compile
  • Loading branch information
uberspot authored Oct 4, 2019
2 parents 3486df1 + 2a896cf commit c43f1bf
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 42 deletions.
3 changes: 2 additions & 1 deletion kapitan/inputs/helm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ def compile_file(self, file_path, compile_path, ext_vars, **kwargs):
item_path = os.path.join(compile_path, rel_file_name)
os.makedirs(os.path.dirname(item_path), exist_ok=True)
with CompiledFile(item_path, self.ref_controller, mode="w", reveal=reveal, target_name=target_name) as fp:
fp.write(f.read())
yml_obj = yaml.safe_load_all(f)
fp.write_yaml(yml_obj)
logger.debug("Wrote file %s to %s", full_file_name, item_path)

self.helm_values_file = None # reset this
Expand Down
3 changes: 2 additions & 1 deletion kapitan/inputs/helm/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ require (
github.com/huandu/xstrings v1.2.0 // indirect
github.com/imdario/mergo v0.3.7 // indirect
github.com/pkg/errors v0.8.1 // indirect
k8s.io/apimachinery v0.0.0-20190727130956-f97a4e5b4abc // indirect
golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc // indirect
k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655 // indirect
k8s.io/helm v2.14.2+incompatible // indirect
)
80 changes: 40 additions & 40 deletions tests/test_binary.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,19 @@
from kapitan.cli import main
from kapitan.utils import directory_hash

SECRETS_PATH = tempfile.mkdtemp()
BINARY_PATH = 'dist/kapitan'
REFS_PATH = tempfile.mkdtemp()
BINARY_PATH = 'bindist/kapitan-linux-amd64'


@unittest.skipIf(not os.path.exists(BINARY_PATH), 'kapitan binary not found')
class BinaryTest(unittest.TestCase):
def test_cli_secret_validate_targets(self):
"""
run $ kapitan secrets --validate-targets
run $ kapitan refs --validate-targets
expect 0 (success) exit status code
"""
argv = ["kapitan", "secrets", "--validate-targets",
"--secrets-path", "examples/kubernetes/secrets/targets/",
argv = ["kapitan", "refs", "--validate-targets",
"--refs-path", "examples/kubernetes/refs/targets/",
"--inventory-path", "examples/kubernetes/inventory/"]
with self.assertRaises(SystemExit) as cm:
sys.argv = argv
Expand All @@ -52,28 +52,28 @@ def test_cli_secret_validate_targets(self):

def test_cli_secret_write_reveal_gkms(self):
"""
run $ kapitan secrets --write gkms:test_secret
and $ kapitan secrets --reveal
run $ kapitan refs --write gkms:test_secret
and $ kapitan refs --reveal
using mock KMS key
"""
test_secret_content = "mock"
test_secret_file = tempfile.mktemp()
with open(test_secret_file, "w") as fp:
fp.write(test_secret_content)

argv = [BINARY_PATH, "secrets", "--write", "gkms:test_secret",
argv = [BINARY_PATH, "refs", "--write", "gkms:test_secret",
"-f", test_secret_file,
"--secrets-path", SECRETS_PATH,
"--refs-path", REFS_PATH,
"--key", "mock"]
subprocess.run(argv)

test_tag_content = "revealing: ?{gkms:test_secret}"
test_tag_file = tempfile.mktemp()
with open(test_tag_file, "w") as fp:
fp.write(test_tag_content)
argv = [BINARY_PATH, "secrets", "--reveal",
argv = [BINARY_PATH, "refs", "--reveal",
"-f", test_tag_file,
"--secrets-path", SECRETS_PATH]
"--refs-path", REFS_PATH]

result = subprocess.run(argv, stdout=subprocess.PIPE)
self.assertEqual("revealing: {}".format(test_secret_content),
Expand All @@ -83,28 +83,28 @@ def test_cli_secret_write_reveal_gkms(self):

def test_cli_secret_write_reveal_awskms(self):
"""
run $ kapitan secrets --write awskms:test_secret
and $ kapitan secrets --reveal
run $ kapitan refs --write awskms:test_secret
and $ kapitan refs --reveal
using mock KMS key
"""
test_secret_content = "mock"
test_secret_file = tempfile.mktemp()
with open(test_secret_file, "w") as fp:
fp.write(test_secret_content)

argv = [BINARY_PATH, "secrets", "--write", "awskms:test_secret",
argv = [BINARY_PATH, "refs", "--write", "awskms:test_secret",
"-f", test_secret_file,
"--secrets-path", SECRETS_PATH,
"--refs-path", REFS_PATH,
"--key", "mock"]
subprocess.run(argv)

test_tag_content = "revealing: ?{awskms:test_secret}"
test_tag_file = tempfile.mktemp()
with open(test_tag_file, "w") as fp:
fp.write(test_tag_content)
argv = [BINARY_PATH, "secrets", "--reveal",
argv = [BINARY_PATH, "refs", "--reveal",
"-f", test_tag_file,
"--secrets-path", SECRETS_PATH]
"--refs-path", REFS_PATH]
result = subprocess.run(argv, stdout=subprocess.PIPE)
self.assertEqual("revealing: {}".format(test_secret_content),
result.stdout.decode('utf-8'))
Expand All @@ -113,25 +113,25 @@ def test_cli_secret_write_reveal_awskms(self):

def test_cli_secret_write_ref(self):
"""
run $ kapitan secrets --write ref:test_secret
and $ kapitan secrets --reveal -f sometest_file
run $ kapitan refs --write base64:test_secret
and $ kapitan refs --reveal -f sometest_file
"""
test_secret_content = "secret_value!"
test_secret_file = tempfile.mktemp()
with open(test_secret_file, "w") as fp:
fp.write(test_secret_content)

argv = [BINARY_PATH, "secrets", "--write", "ref:test_secret",
argv = [BINARY_PATH, "refs", "--write", "base64:test_secret",
"-f", test_secret_file,
"--secrets-path", SECRETS_PATH]
"--refs-path", REFS_PATH]
subprocess.run(argv)
test_tag_content = "revealing: ?{ref:test_secret}"
test_tag_content = "revealing: ?{base64:test_secret}"
test_tag_file = tempfile.mktemp()
with open(test_tag_file, "w") as fp:
fp.write(test_tag_content)
argv = [BINARY_PATH, "secrets", "--reveal",
argv = [BINARY_PATH, "refs", "--reveal",
"-f", test_tag_file,
"--secrets-path", SECRETS_PATH]
"--refs-path", REFS_PATH]
result = subprocess.run(argv, stdout=subprocess.PIPE)
self.assertEqual("revealing: {}".format(test_secret_content),
result.stdout.decode('utf-8'))
Expand All @@ -140,27 +140,27 @@ def test_cli_secret_write_ref(self):

def test_cli_secret_write_base64_ref(self):
"""
run $ kapitan secrets --write ref:test_secret --base64
and $ kapitan secrets --reveal -f sometest_file
run $ kapitan refs --write base64:test_secret --base64
and $ kapitan refs --reveal -f sometest_file
"""
test_secret_content = "secret_value!"
test_secret_content_b64 = base64.b64encode(test_secret_content.encode())
test_secret_file = tempfile.mktemp()
with open(test_secret_file, "w") as fp:
fp.write(test_secret_content)

argv = [BINARY_PATH, "secrets", "--write", "ref:test_secret",
argv = [BINARY_PATH, "refs", "--write", "base64:test_secret",
"--base64", "-f", test_secret_file,
"--secrets-path", SECRETS_PATH]
"--refs-path", REFS_PATH]
subprocess.run(argv)

test_tag_content = "revealing: ?{ref:test_secret}"
test_tag_content = "revealing: ?{base64:test_secret}"
test_tag_file = tempfile.mktemp()
with open(test_tag_file, "w") as fp:
fp.write(test_tag_content)
argv = [BINARY_PATH, "secrets", "--reveal",
argv = [BINARY_PATH, "refs", "--reveal",
"-f", test_tag_file,
"--secrets-path", SECRETS_PATH]
"--refs-path", REFS_PATH]

result = subprocess.run(argv, stdout=subprocess.PIPE)
self.assertEqual("revealing: {}".format(test_secret_content_b64.decode()),
Expand All @@ -170,8 +170,8 @@ def test_cli_secret_write_base64_ref(self):

def test_cli_secret_subvar_ref(self):
"""
run $ kapitan secrets --write ref:test_secret
and $ kapitan secrets --reveal -f sometest_file
run $ kapitan refs --write base64:test_secret
and $ kapitan refs --reveal -f sometest_file
"""
test_secret_content = """
var1:
Expand All @@ -183,20 +183,20 @@ def test_cli_secret_subvar_ref(self):
with open(test_secret_file, "w") as fp:
fp.write(test_secret_content)

argv = [BINARY_PATH, "secrets", "--write", "ref:test_secret_subvar",
argv = [BINARY_PATH, "refs", "--write", "base64:test_secret_subvar",
"-f", test_secret_file,
"--secrets-path", SECRETS_PATH]
"--refs-path", REFS_PATH]
subprocess.run(argv)
test_tag_content = """
revealing1: ?{ref:[email protected]}
revealing2: ?{ref:[email protected]}
revealing1: ?{base64:[email protected]}
revealing2: ?{base64:[email protected]}
"""
test_tag_file = tempfile.mktemp()
with open(test_tag_file, "w") as fp:
fp.write(test_tag_content)
argv = [BINARY_PATH, "secrets", "--reveal",
argv = [BINARY_PATH, "refs", "--reveal",
"-f", test_tag_file,
"--secrets-path", SECRETS_PATH]
"--refs-path", REFS_PATH]

result = subprocess.run(argv, stdout=subprocess.PIPE)
expected = """
Expand Down Expand Up @@ -242,7 +242,7 @@ def test_cli_inventory(self):
stdout.getvalue())

def tearDown(self):
shutil.rmtree(SECRETS_PATH, ignore_errors=True)
shutil.rmtree(REFS_PATH, ignore_errors=True)


@unittest.skipIf(not os.path.exists(BINARY_PATH), 'kapitan binary not found')
Expand Down

0 comments on commit c43f1bf

Please sign in to comment.