From 4686b6afcce0900e4e8e25f5ca91b2df1f0fb0f4 Mon Sep 17 00:00:00 2001
From: Jessica Yuen <im.jessicayuen@gmail.com>
Date: Wed, 22 Nov 2017 15:10:55 -0800
Subject: [PATCH] Use relative paths on jsonnet imports

Currently absolute paths are being used for jsonnet imports. This makes
it difficult to share the files across different systems.

Signed-off-by: Jessica Yuen <im.jessicayuen@gmail.com>
---
 metadata/environment.go      | 12 ++++++++++--
 metadata/environment_test.go |  4 ++--
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/metadata/environment.go b/metadata/environment.go
index 2d624ad6..98317f70 100644
--- a/metadata/environment.go
+++ b/metadata/environment.go
@@ -517,8 +517,12 @@ func (m *manager) generateKsonnetLibData(spec ClusterSpec) ([]byte, []byte, []by
 }
 
 func (m *manager) generateOverrideData() []byte {
+	const (
+		relBaseLibsonnetPath = "../" + baseLibsonnetFile
+	)
+
 	var buf bytes.Buffer
-	buf.WriteString(fmt.Sprintf("local base = import \"%s\";\n", m.baseLibsonnetPath))
+	buf.WriteString(fmt.Sprintf("local base = import \"%s\";\n", relBaseLibsonnetPath))
 	buf.WriteString(fmt.Sprintf("local k = import \"%s\";\n\n", extensionsLibFilename))
 	buf.WriteString("base + {\n")
 	buf.WriteString("  // Insert user-specified overrides here. For example if a component is named \"nginx-deployment\", you might have something like:\n")
@@ -528,7 +532,11 @@ func (m *manager) generateOverrideData() []byte {
 }
 
 func (m *manager) generateParamsData() []byte {
-	return []byte(`local params = import "` + m.componentParamsPath + `";
+	const (
+		relComponentParamsPath = "../../" + componentsDir + "/" + paramsFileName
+	)
+
+	return []byte(`local params = import "` + relComponentParamsPath + `";
 params + {
   components +: {
     // Insert component parameter overrides here. Ex:
diff --git a/metadata/environment_test.go b/metadata/environment_test.go
index 128a7526..8ff6b67a 100644
--- a/metadata/environment_test.go
+++ b/metadata/environment_test.go
@@ -265,7 +265,7 @@ func TestSetEnvironment(t *testing.T) {
 func TestGenerateOverrideData(t *testing.T) {
 	m := mockEnvironments(t, "test-gen-override-data")
 
-	expected := `local base = import "test-gen-override-data/environments/base.libsonnet";
+	expected := `local base = import "../base.libsonnet";
 local k = import "k.libsonnet";
 
 base + {
@@ -283,7 +283,7 @@ base + {
 func TestGenerateParamsData(t *testing.T) {
 	m := mockEnvironments(t, "test-gen-params-data")
 
-	expected := `local params = import "test-gen-params-data/components/params.libsonnet";
+	expected := `local params = import "../../components/params.libsonnet";
 params + {
   components +: {
     // Insert component parameter overrides here. Ex:
-- 
GitLab