added resources to config (#208)

This commit is contained in:
RoyUP9 2021-08-12 16:33:32 +03:00 committed by GitHub
parent 0afab6c068
commit f9677dbaa1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 25 deletions

View File

@ -182,7 +182,7 @@ func createMizuApiServer(ctx context.Context, kubernetesProvider *kubernetes.Pro
MizuApiFilteringOptions: mizuApiFilteringOptions, MizuApiFilteringOptions: mizuApiFilteringOptions,
MaxEntriesDBSizeBytes: config.Config.Tap.MaxEntriesDBSizeBytes(), MaxEntriesDBSizeBytes: config.Config.Tap.MaxEntriesDBSizeBytes(),
} }
_, err = kubernetesProvider.CreateMizuApiServerPod(ctx, opts) _, err = kubernetesProvider.CreateMizuApiServerPod(ctx, opts, config.Config.Tap.ApiServerResources)
if err != nil { if err != nil {
return err return err
} }
@ -237,6 +237,7 @@ func updateMizuTappers(ctx context.Context, kubernetesProvider *kubernetes.Provi
nodeToTappedPodIPMap, nodeToTappedPodIPMap,
serviceAccountName, serviceAccountName,
config.Config.Tap.TapOutgoing(), config.Config.Tap.TapOutgoing(),
config.Config.Tap.TapperResources,
); err != nil { ); err != nil {
return err return err
} }

View File

@ -23,20 +23,29 @@ const (
) )
type TapConfig struct { type TapConfig struct {
AnalysisDestination string `yaml:"dest" default:"up9.app"` AnalysisDestination string `yaml:"dest" default:"up9.app"`
SleepIntervalSec int `yaml:"upload-interval" default:"10"` SleepIntervalSec int `yaml:"upload-interval" default:"10"`
PodRegexStr string `yaml:"regex" default:".*"` PodRegexStr string `yaml:"regex" default:".*"`
GuiPort uint16 `yaml:"gui-port" default:"8899"` GuiPort uint16 `yaml:"gui-port" default:"8899"`
Namespaces []string `yaml:"namespaces"` Namespaces []string `yaml:"namespaces"`
Analysis bool `yaml:"analysis" default:"false"` Analysis bool `yaml:"analysis" default:"false"`
AllNamespaces bool `yaml:"all-namespaces" default:"false"` AllNamespaces bool `yaml:"all-namespaces" default:"false"`
PlainTextFilterRegexes []string `yaml:"regex-masking"` PlainTextFilterRegexes []string `yaml:"regex-masking"`
HealthChecksUserAgentHeaders []string `yaml:"ignored-user-agents"` HealthChecksUserAgentHeaders []string `yaml:"ignored-user-agents"`
DisableRedaction bool `yaml:"no-redact" default:"false"` DisableRedaction bool `yaml:"no-redact" default:"false"`
HumanMaxEntriesDBSize string `yaml:"max-entries-db-size" default:"200MB"` HumanMaxEntriesDBSize string `yaml:"max-entries-db-size" default:"200MB"`
Direction string `yaml:"direction" default:"in"` Direction string `yaml:"direction" default:"in"`
DryRun bool `yaml:"dry-run" default:"false"` DryRun bool `yaml:"dry-run" default:"false"`
EnforcePolicyFile string `yaml:"test-rules"` EnforcePolicyFile string `yaml:"test-rules"`
ApiServerResources Resources `yaml:"api-server-resources"`
TapperResources Resources `yaml:"tapper-resources"`
}
type Resources struct {
CpuLimit string `yaml:"cpu-limit" default:"750m"`
MemoryLimit string `yaml:"memory-limit" default:"1Gi"`
CpuRequests string `yaml:"cpu-requests" default:"50m"`
MemoryRequests string `yaml:"memory-requests" default:"50Mi"`
} }
func (config *TapConfig) PodRegex() *regexp.Regexp { func (config *TapConfig) PodRegex() *regexp.Regexp {

View File

@ -7,6 +7,7 @@ import (
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
"github.com/up9inc/mizu/cli/config/configStructs"
"github.com/up9inc/mizu/cli/logger" "github.com/up9inc/mizu/cli/logger"
"os" "os"
"path/filepath" "path/filepath"
@ -143,7 +144,7 @@ type ApiServerOptions struct {
MaxEntriesDBSizeBytes int64 MaxEntriesDBSizeBytes int64
} }
func (provider *Provider) CreateMizuApiServerPod(ctx context.Context, opts *ApiServerOptions) (*core.Pod, error) { func (provider *Provider) CreateMizuApiServerPod(ctx context.Context, opts *ApiServerOptions, resources configStructs.Resources) (*core.Pod, error) {
marshaledFilteringOptions, err := json.Marshal(opts.MizuApiFilteringOptions) marshaledFilteringOptions, err := json.Marshal(opts.MizuApiFilteringOptions)
if err != nil { if err != nil {
return nil, err return nil, err
@ -153,19 +154,19 @@ func (provider *Provider) CreateMizuApiServerPod(ctx context.Context, opts *ApiS
configMapOptional := true configMapOptional := true
configMapVolumeName.Optional = &configMapOptional configMapVolumeName.Optional = &configMapOptional
cpuLimit, err := resource.ParseQuantity("750m") cpuLimit, err := resource.ParseQuantity(resources.CpuLimit)
if err != nil { if err != nil {
return nil, errors.New(fmt.Sprintf("invalid cpu limit for %s container", opts.PodName)) return nil, errors.New(fmt.Sprintf("invalid cpu limit for %s container", opts.PodName))
} }
memLimit, err := resource.ParseQuantity("512Mi") memLimit, err := resource.ParseQuantity(resources.MemoryLimit)
if err != nil { if err != nil {
return nil, errors.New(fmt.Sprintf("invalid memory limit for %s container", opts.PodName)) return nil, errors.New(fmt.Sprintf("invalid memory limit for %s container", opts.PodName))
} }
cpuRequests, err := resource.ParseQuantity("50m") cpuRequests, err := resource.ParseQuantity(resources.CpuRequests)
if err != nil { if err != nil {
return nil, errors.New(fmt.Sprintf("invalid cpu request for %s container", opts.PodName)) return nil, errors.New(fmt.Sprintf("invalid cpu request for %s container", opts.PodName))
} }
memRequests, err := resource.ParseQuantity("50Mi") memRequests, err := resource.ParseQuantity(resources.MemoryRequests)
if err != nil { if err != nil {
return nil, errors.New(fmt.Sprintf("invalid memory request for %s container", opts.PodName)) return nil, errors.New(fmt.Sprintf("invalid memory request for %s container", opts.PodName))
} }
@ -562,7 +563,7 @@ func (provider *Provider) CreateConfigMap(ctx context.Context, namespace string,
return nil return nil
} }
func (provider *Provider) ApplyMizuTapperDaemonSet(ctx context.Context, namespace string, daemonSetName string, podImage string, tapperPodName string, apiServerPodIp string, nodeToTappedPodIPMap map[string][]string, serviceAccountName string, tapOutgoing bool) error { func (provider *Provider) ApplyMizuTapperDaemonSet(ctx context.Context, namespace string, daemonSetName string, podImage string, tapperPodName string, apiServerPodIp string, nodeToTappedPodIPMap map[string][]string, serviceAccountName string, tapOutgoing bool, resources configStructs.Resources) error {
logger.Log.Debugf("Applying %d tapper deamonsets, ns: %s, daemonSetName: %s, podImage: %s, tapperPodName: %s", len(nodeToTappedPodIPMap), namespace, daemonSetName, podImage, tapperPodName) logger.Log.Debugf("Applying %d tapper deamonsets, ns: %s, daemonSetName: %s, podImage: %s, tapperPodName: %s", len(nodeToTappedPodIPMap), namespace, daemonSetName, podImage, tapperPodName)
if len(nodeToTappedPodIPMap) == 0 { if len(nodeToTappedPodIPMap) == 0 {
@ -601,19 +602,19 @@ func (provider *Provider) ApplyMizuTapperDaemonSet(ctx context.Context, namespac
), ),
), ),
) )
cpuLimit, err := resource.ParseQuantity("500m") cpuLimit, err := resource.ParseQuantity(resources.CpuLimit)
if err != nil { if err != nil {
return errors.New(fmt.Sprintf("invalid cpu limit for %s container", tapperPodName)) return errors.New(fmt.Sprintf("invalid cpu limit for %s container", tapperPodName))
} }
memLimit, err := resource.ParseQuantity("1Gi") memLimit, err := resource.ParseQuantity(resources.MemoryLimit)
if err != nil { if err != nil {
return errors.New(fmt.Sprintf("invalid memory limit for %s container", tapperPodName)) return errors.New(fmt.Sprintf("invalid memory limit for %s container", tapperPodName))
} }
cpuRequests, err := resource.ParseQuantity("50m") cpuRequests, err := resource.ParseQuantity(resources.CpuRequests)
if err != nil { if err != nil {
return errors.New(fmt.Sprintf("invalid cpu request for %s container", tapperPodName)) return errors.New(fmt.Sprintf("invalid cpu request for %s container", tapperPodName))
} }
memRequests, err := resource.ParseQuantity("50Mi") memRequests, err := resource.ParseQuantity(resources.MemoryRequests)
if err != nil { if err != nil {
return errors.New(fmt.Sprintf("invalid memory request for %s container", tapperPodName)) return errors.New(fmt.Sprintf("invalid memory request for %s container", tapperPodName))
} }