From 99d8d2d6a3997b2fafc87f3ac84b6793e4ceefce Mon Sep 17 00:00:00 2001 From: Ansuman Satapathy Date: Tue, 13 Aug 2024 11:42:01 +0000 Subject: [PATCH] feat: [CDE-192]: make hosts and ports in gitspace infrastructure more verbose (#2496) * feat: [CDE-192]: make hosts and ports in gitspace infrastructure more verbose --- app/gitspace/infrastructure/provision.go | 6 +++--- .../infrastructure/provisioner_impl.go | 6 +++--- .../orchestrator/orchestrator_impl.go | 9 +++++---- infraprovider/docker_provider.go | 9 +++++---- types/infrastructure.go | 19 +++++++++++++++---- 5 files changed, 31 insertions(+), 18 deletions(-) diff --git a/app/gitspace/infrastructure/provision.go b/app/gitspace/infrastructure/provision.go index a2a844d53..f577459a9 100644 --- a/app/gitspace/infrastructure/provision.go +++ b/app/gitspace/infrastructure/provision.go @@ -209,10 +209,10 @@ func (i infraProvisioner) resumeProvisionForNewProvisioning( } infraProvisionedLatest.InfraStatus = provisionedInfra.Status - infraProvisionedLatest.ServerHostIP = provisionedInfra.Host + infraProvisionedLatest.ServerHostIP = provisionedInfra.AgentHost infraProvisionedLatest.ServerHostPort = strconv.Itoa(provisionedInfra.AgentPort) - infraProvisionedLatest.ProxyHost = provisionedInfra.ProxyHost - infraProvisionedLatest.ProxyPort = int32(provisionedInfra.ProxyPort) + infraProvisionedLatest.ProxyHost = provisionedInfra.ProxyAgentHost + infraProvisionedLatest.ProxyPort = int32(provisionedInfra.ProxyAgentPort) infraProvisionedLatest.ResponseMetadata = &responseMetadata infraProvisionedLatest.Updated = time.Now().UnixMilli() diff --git a/app/gitspace/infrastructure/provisioner_impl.go b/app/gitspace/infrastructure/provisioner_impl.go index 502350f4b..9187e66fe 100644 --- a/app/gitspace/infrastructure/provisioner_impl.go +++ b/app/gitspace/infrastructure/provisioner_impl.go @@ -204,10 +204,10 @@ func (i infraProvisioner) updateInfraProvisionedRecord( } infraProvisionedLatest.InfraStatus = deprovisionedInfra.Status - infraProvisionedLatest.ServerHostIP = deprovisionedInfra.Host + infraProvisionedLatest.ServerHostIP = deprovisionedInfra.AgentHost infraProvisionedLatest.ServerHostPort = strconv.Itoa(deprovisionedInfra.AgentPort) - infraProvisionedLatest.ProxyHost = deprovisionedInfra.ProxyHost - infraProvisionedLatest.ProxyPort = int32(deprovisionedInfra.ProxyPort) + infraProvisionedLatest.ProxyHost = deprovisionedInfra.ProxyAgentHost + infraProvisionedLatest.ProxyPort = int32(deprovisionedInfra.ProxyAgentPort) infraProvisionedLatest.ResponseMetadata = &responseMetadata infraProvisionedLatest.Updated = time.Now().UnixMilli() diff --git a/app/gitspace/orchestrator/orchestrator_impl.go b/app/gitspace/orchestrator/orchestrator_impl.go index 798948c13..176ec2ecd 100644 --- a/app/gitspace/orchestrator/orchestrator_impl.go +++ b/app/gitspace/orchestrator/orchestrator_impl.go @@ -374,16 +374,17 @@ func (o orchestrator) ResumeStartGitspace( forwardedPort = strconv.Itoa(provisionedInfra.GitspacePortMappings[idePort].ForwardedPort) } - host := provisionedInfra.Host - if provisionedInfra.ProxyHost != "" { - host = provisionedInfra.ProxyHost + scheme := provisionedInfra.GitspaceScheme + host := provisionedInfra.GitspaceHost + if provisionedInfra.ProxyGitspaceHost != "" { + host = provisionedInfra.ProxyGitspaceHost } relativeRepoPath := strings.TrimPrefix(startResponse.AbsoluteRepoPath, "/") if gitspaceConfig.IDE == enum.IDETypeVSCodeWeb { ideURL = url.URL{ - Scheme: "http", + Scheme: scheme, Host: host + ":" + forwardedPort, RawQuery: filepath.Join("folder=", relativeRepoPath), } diff --git a/infraprovider/docker_provider.go b/infraprovider/docker_provider.go index bb2d8ce4c..5e297cdce 100644 --- a/infraprovider/docker_provider.go +++ b/infraprovider/docker_provider.go @@ -239,10 +239,11 @@ func (d DockerProvider) dockerHostInfo( return nil, fmt.Errorf("unable to connect to docker engine: %w", err) } return &types.Infrastructure{ - Identifier: info.ID, - ProviderType: enum.InfraProviderTypeDocker, - Status: enum.InfraStatusProvisioned, - Host: d.config.DockerMachineHostName, + Identifier: info.ID, + ProviderType: enum.InfraProviderTypeDocker, + Status: enum.InfraStatusProvisioned, + GitspaceHost: d.config.DockerMachineHostName, + GitspaceScheme: "http", }, nil } diff --git a/types/infrastructure.go b/types/infrastructure.go index 950a5cf2c..2a84fea65 100644 --- a/types/infrastructure.go +++ b/types/infrastructure.go @@ -54,12 +54,23 @@ type Infrastructure struct { InputParameters []InfraProviderParameter // Status of the infra. Status enum.InfraStatus - // Host through which the infra can be accessed. - Host string - ProxyHost string + + // AgentHost through which the infra can be accessed. + AgentHost string // AgentPort on which the agent can be accessed to orchestrate containers. AgentPort int - ProxyPort int + // ProxyAgentHost on which to connect to agent incase a proxy is used. + ProxyAgentHost string + ProxyAgentPort int + // HostScheme is scheme to connect to the host e.g. https + HostScheme string + + // GitspaceHost on which gitspace is accessible directly, without proxy being configured. + GitspaceHost string + // ProxyGitspaceHost on which gitspace is accessible through a proxy. + ProxyGitspaceHost string + GitspaceScheme string + // Storage is the name of the volume or disk created for the resource. Storage string // GitspacePortMappings contains the ports assigned for every requested port.