Ingress: Improve port opening
Update nginx replica counts and rollout strategy.
What proxy-backend configmap changes and reload auto proxy nginx.
Make ingress optional.
Use <PREFIX>.<CLUSTER_NAME>.clusters.p.<DOMAIN> addresses for remote
cluster services.
Change-Id: Ideb146a8c0275822ee5cd28311c00a817f4202aa
diff --git a/core/installer/dodo_app_test.go b/core/installer/dodo_app_test.go
index 25ce4a3..1367c65 100644
--- a/core/installer/dodo_app_test.go
+++ b/core/installer/dodo_app_test.go
@@ -331,3 +331,72 @@
}
t.Log(string(r.Raw))
}
+
+const exposeSVCRemoteCluster = `
+{
+ "cluster": "remote",
+ "service": [{
+ "name": "echo",
+ "type": "golang:1.20.0",
+ "source": {
+ "repository": "ssh://foo.bar"
+ },
+ "ports": [{
+ "name": "echo",
+ "value": 9090
+ }],
+ "expose": [{
+ "port": {
+ "name": "echo"
+ },
+ "network": "Private",
+ "subdomain": "echo"
+ }]
+ }]
+}
+`
+
+func TestExposeSVCRemoteCluster(t *testing.T) {
+ var buf bytes.Buffer
+ if _, err := buf.WriteString(exposeSVCRemoteCluster); err != nil {
+ t.Fatal(err)
+ }
+ clusters := []Cluster{{
+ Name: "remote",
+ Kubeconfig: "<KUBECONFIG>",
+ IngressClassName: "<INGRESS_CLASS_NAME>",
+ }}
+ if err := json.NewEncoder(&buf).Encode(struct {
+ Clusters []Cluster `json:"clusters"`
+ }{
+ clusters,
+ }); err != nil {
+ t.Fatal(err)
+ }
+ app, err := NewDodoApp(buf.Bytes())
+ if err != nil {
+ for _, e := range errors.Errors(err) {
+ t.Log(e)
+ }
+ t.Fatal(err)
+ }
+ release := Release{
+ Namespace: "foo",
+ AppInstanceId: "foo-bar",
+ RepoAddr: "ssh://192.168.100.210:22/config",
+ AppDir: "/foo/bar",
+ }
+ keyGen := testKeyGen{}
+ r, err := app.Render(release, env, networks, clusters, map[string]any{
+ "managerAddr": "",
+ "appId": "",
+ "sshPrivateKey": "",
+ "port_service_echo_0": 1,
+ "port_service_echo_0_cluster": 2,
+ }, nil, keyGen)
+ if err != nil {
+ t.Fatal(err)
+ }
+ t.Log(string(r.Raw))
+ t.Log(fmt.Sprintf("%+v", r.Ports))
+}