Pass every config through environment variables and don't make HTTP calls in first tap command

This commit is contained in:
M. Mert Yildiran 2023-04-18 03:21:23 +03:00
parent 26d75da588
commit 5ce10b626f
No known key found for this signature in database
GPG Key ID: DA5D6DCBB758A461
3 changed files with 54 additions and 20 deletions

View File

@ -331,6 +331,11 @@ func pcap(tarPath string) {
connector = connect.NewConnector(kubernetes.GetLocalhostOnPort(config.Config.Tap.Proxy.Hub.SrcPort), connect.DefaultRetries, connect.DefaultTimeout)
connector.PostWorkerPodToHub(workerPod)
// License
if config.Config.License != "" {
connector.PostLicense(config.Config.License)
}
log.Info().
Str("url", kubernetes.GetLocalhostOnPort(config.Config.Tap.Proxy.Hub.SrcPort)).
Msg(fmt.Sprintf(utils.Green, "Hub is available at:"))

View File

@ -435,35 +435,36 @@ func postHubStarted(ctx context.Context, kubernetesProvider *kubernetes.Provider
// Grace period
log.Info().Msg("Waiting for worker containers...")
time.Sleep(5 * time.Second)
}
} else {
// Storage limit
connector.PostStorageLimitToHub(config.Config.Tap.StorageLimitBytes())
// Storage limit
connector.PostStorageLimitToHub(config.Config.Tap.StorageLimitBytes())
// Pod regex
connector.PostRegexToHub(config.Config.Tap.PodRegexStr, state.targetNamespaces)
// Pod regex
connector.PostRegexToHub(config.Config.Tap.PodRegexStr, state.targetNamespaces)
// License
if config.Config.License != "" {
connector.PostLicense(config.Config.License)
}
// License
if config.Config.License != "" {
connector.PostLicense(config.Config.License)
}
// Scripting
connector.PostEnv(config.Config.Scripting.Env)
// Scripting
connector.PostEnv(config.Config.Scripting.Env)
scripts, err := config.Config.Scripting.GetScripts()
if err != nil {
log.Error().Err(err).Send()
}
for _, script := range scripts {
_, err = connector.PostScript(script)
scripts, err := config.Config.Scripting.GetScripts()
if err != nil {
log.Error().Err(err).Send()
}
}
connector.PostScriptDone()
for _, script := range scripts {
_, err = connector.PostScript(script)
if err != nil {
log.Error().Err(err).Send()
}
}
connector.PostScriptDone()
}
if !update {
// Hub proxy URL

View File

@ -3,6 +3,7 @@ package kubernetes
import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"io"
@ -212,6 +213,25 @@ func (provider *Provider) BuildHubPod(opts *PodOptions) (*core.Pod, error) {
command = append(command, "-debug")
}
// Scripting environment variables
scriptingEnvMarshalled, err := json.Marshal(config.Config.Scripting.Env)
if err != nil {
return nil, err
}
// Scripting scripts
scripts, err := config.Config.Scripting.GetScripts()
if err != nil {
return nil, err
}
if scripts == nil {
scripts = []*misc.Script{}
}
scriptsMarshalled, err := json.Marshal(scripts)
if err != nil {
return nil, err
}
containers := []core.Container{
{
Name: opts.PodName,
@ -245,6 +265,14 @@ func (provider *Provider) BuildHubPod(opts *PodOptions) (*core.Pod, error) {
Name: "LICENSE",
Value: "",
},
{
Name: "SCRIPTING_ENV",
Value: string(scriptingEnvMarshalled),
},
{
Name: "SCRIPTING_SCRIPTS",
Value: string(scriptsMarshalled),
},
},
},
}