Installer: Separate infrastructure and environment apps.
Have two separate application managers, one for installing apps on the
dodo infra, and nother installing on individual environments.
Change-Id: I1b24f008e30c5533c48c22ea92328bc4bb7abc54
diff --git a/core/installer/app_test.go b/core/installer/app_test.go
index 4524a30..a979342 100644
--- a/core/installer/app_test.go
+++ b/core/installer/app_test.go
@@ -1,47 +1,41 @@
package installer
import (
+ "net"
"testing"
)
func TestAuthProxyEnabled(t *testing.T) {
r := NewInMemoryAppRepository(CreateAllApps())
for _, app := range []string{"rpuppy", "Pi-hole", "url-shortener"} {
- a, err := r.Find(app)
+ a, err := FindEnvApp(r, app)
if err != nil {
t.Fatal(err)
}
if a == nil {
t.Fatal("returned app is nil")
}
- d := Derived{
- Release: Release{
- Namespace: "foo",
- },
- Global: Values{
- PCloudEnvName: "dodo",
- Id: "id",
- ContactEmail: "foo@bar.ge",
- Domain: "bar.ge",
- PrivateDomain: "p.bar.ge",
- PublicIP: "1.2.3.4",
- NamespacePrefix: "id-",
- },
- Values: map[string]any{
- "network": map[string]any{
- "name": "Public",
- "ingressClass": "dodo-ingress-public",
- "certificateIssuer": "id-public",
- "domain": "bar.ge",
- },
- "subdomain": "woof",
- "auth": map[string]any{
- "enabled": true,
- "groups": "a,b",
- },
+ release := Release{
+ Namespace: "foo",
+ }
+ env := AppEnvConfig{
+ InfraName: "dodo",
+ Id: "id",
+ ContactEmail: "foo@bar.ge",
+ Domain: "bar.ge",
+ PrivateDomain: "p.bar.ge",
+ PublicIP: []net.IP{net.ParseIP("1.2.3.4")},
+ NamespacePrefix: "id-",
+ }
+ values := map[string]any{
+ "network": "Public",
+ "subdomain": "woof",
+ "auth": map[string]any{
+ "enabled": true,
+ "groups": "a,b",
},
}
- rendered, err := a.Render(d)
+ rendered, err := a.Render(release, env, values)
if err != nil {
t.Fatal(err)
}
@@ -54,40 +48,33 @@
func TestAuthProxyDisabled(t *testing.T) {
r := NewInMemoryAppRepository(CreateAllApps())
for _, app := range []string{"rpuppy", "Pi-hole", "url-shortener"} {
- a, err := r.Find(app)
+ a, err := FindEnvApp(r, app)
if err != nil {
t.Fatal(err)
}
if a == nil {
t.Fatal("returned app is nil")
}
- d := Derived{
- Release: Release{
- Namespace: "foo",
- },
- Global: Values{
- PCloudEnvName: "dodo",
- Id: "id",
- ContactEmail: "foo@bar.ge",
- Domain: "bar.ge",
- PrivateDomain: "p.bar.ge",
- PublicIP: "1.2.3.4",
- NamespacePrefix: "id-",
- },
- Values: map[string]any{
- "network": map[string]any{
- "name": "Public",
- "ingressClass": "dodo-ingress-public",
- "certificateIssuer": "id-public",
- "domain": "bar.ge",
- },
- "subdomain": "woof",
- "auth": map[string]any{
- "enabled": false,
- },
+ release := Release{
+ Namespace: "foo",
+ }
+ env := AppEnvConfig{
+ InfraName: "dodo",
+ Id: "id",
+ ContactEmail: "foo@bar.ge",
+ Domain: "bar.ge",
+ PrivateDomain: "p.bar.ge",
+ PublicIP: []net.IP{net.ParseIP("1.2.3.4")},
+ NamespacePrefix: "id-",
+ }
+ values := map[string]any{
+ "network": "Public",
+ "subdomain": "woof",
+ "auth": map[string]any{
+ "enabled": false,
},
}
- rendered, err := a.Render(d)
+ rendered, err := a.Render(release, env, values)
if err != nil {
t.Fatal(err)
}
@@ -99,29 +86,27 @@
func TestGroupMemberships(t *testing.T) {
r := NewInMemoryAppRepository(CreateAllApps())
- a, err := r.Find("memberships")
+ a, err := FindEnvApp(r, "memberships")
if err != nil {
t.Fatal(err)
}
if a == nil {
t.Fatal("returned app is nil")
}
- d := Derived{
- Release: Release{
- Namespace: "foo",
- },
- Global: Values{
- PCloudEnvName: "dodo",
- Id: "id",
- ContactEmail: "foo@bar.ge",
- Domain: "bar.ge",
- PrivateDomain: "p.bar.ge",
- PublicIP: "1.2.3.4",
- NamespacePrefix: "id-",
- },
- Values: map[string]any{},
+ release := Release{
+ Namespace: "foo",
}
- rendered, err := a.Render(d)
+ env := AppEnvConfig{
+ InfraName: "dodo",
+ Id: "id",
+ ContactEmail: "foo@bar.ge",
+ Domain: "bar.ge",
+ PrivateDomain: "p.bar.ge",
+ PublicIP: []net.IP{net.ParseIP("1.2.3.4")},
+ NamespacePrefix: "id-",
+ }
+ values := map[string]any{}
+ rendered, err := a.Render(release, env, values)
if err != nil {
t.Fatal(err)
}
@@ -132,42 +117,35 @@
func TestGerrit(t *testing.T) {
r := NewInMemoryAppRepository(CreateAllApps())
- a, err := r.Find("gerrit")
+ a, err := FindEnvApp(r, "gerrit")
if err != nil {
t.Fatal(err)
}
if a == nil {
t.Fatal("returned app is nil")
}
- d := Derived{
- Release: Release{
- Namespace: "foo",
- },
- Global: Values{
- PCloudEnvName: "dodo",
- Id: "id",
- ContactEmail: "foo@bar.ge",
- Domain: "bar.ge",
- PrivateDomain: "p.bar.ge",
- PublicIP: "1.2.3.4",
- NamespacePrefix: "id-",
- },
- Values: map[string]any{
- "subdomain": "gerrit",
- "network": map[string]any{
- "name": "Private",
- "ingressClass": "id-ingress-private",
- "domain": "p.bar.ge",
- "allocatePortAddr": "http://foo.bar/api/allocate",
- },
- "key": map[string]any{
- "public": "foo",
- "private": "bar",
- },
- "sshPort": 22,
- },
+ release := Release{
+ Namespace: "foo",
}
- rendered, err := a.Render(d)
+ env := AppEnvConfig{
+ InfraName: "dodo",
+ Id: "id",
+ ContactEmail: "foo@bar.ge",
+ Domain: "bar.ge",
+ PrivateDomain: "p.bar.ge",
+ PublicIP: []net.IP{net.ParseIP("1.2.3.4")},
+ NamespacePrefix: "id-",
+ }
+ values := map[string]any{
+ "subdomain": "gerrit",
+ "network": "Private",
+ "key": map[string]any{
+ "public": "foo",
+ "private": "bar",
+ },
+ "sshPort": 22,
+ }
+ rendered, err := a.Render(release, env, values)
if err != nil {
t.Fatal(err)
}
@@ -178,37 +156,30 @@
func TestJenkins(t *testing.T) {
r := NewInMemoryAppRepository(CreateAllApps())
- a, err := r.Find("jenkins")
+ a, err := FindEnvApp(r, "jenkins")
if err != nil {
t.Fatal(err)
}
if a == nil {
t.Fatal("returned app is nil")
}
- d := Derived{
- Release: Release{
- Namespace: "foo",
- },
- Global: Values{
- PCloudEnvName: "dodo",
- Id: "id",
- ContactEmail: "foo@bar.ge",
- Domain: "bar.ge",
- PrivateDomain: "p.bar.ge",
- PublicIP: "1.2.3.4",
- NamespacePrefix: "id-",
- },
- Values: map[string]any{
- "subdomain": "jenkins",
- "network": map[string]any{
- "name": "Private",
- "ingressClass": "id-ingress-private",
- "domain": "p.bar.ge",
- "allocatePortAddr": "http://foo.bar/api/allocate",
- },
- },
+ release := Release{
+ Namespace: "foo",
}
- rendered, err := a.Render(d)
+ env := AppEnvConfig{
+ InfraName: "dodo",
+ Id: "id",
+ ContactEmail: "foo@bar.ge",
+ Domain: "bar.ge",
+ PrivateDomain: "p.bar.ge",
+ PublicIP: []net.IP{net.ParseIP("1.2.3.4")},
+ NamespacePrefix: "id-",
+ }
+ values := map[string]any{
+ "subdomain": "jenkins",
+ "network": "Private",
+ }
+ rendered, err := a.Render(release, env, values)
if err != nil {
t.Fatal(err)
}