Skip to content

Commit

Permalink
Update config parameters (l3af-project#120)
Browse files Browse the repository at this point in the history
* Update config parameters

Signed-off-by: Santhosh Fernandes <[email protected]>
Co-authored-by: Jason Niesz <[email protected]>
  • Loading branch information
sanfern and jniesz authored Oct 26, 2022
1 parent 6412c05 commit ff0fdc7
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 126 deletions.
118 changes: 51 additions & 67 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,29 +43,20 @@ type Config struct {

SwaggerApiEnabled bool

// Admin API endpoint config for registering l3afd.
AdmindHost string
AdmindUsername string
AdmindApiKey string
AdmindGroupID int
AdmindApiEnabled bool

// XDP Root program details.
XDPRootProgramName string
XDPRootProgramArtifact string
XDPRootProgramMapName string
XDPRootProgramCommand string
XDPRootProgramVersion string
XDPRootProgramUserProgramDaemon bool
XDPRootProgramName string
XDPRootProgramArtifact string
XDPRootProgramMapName string
XDPRootProgramCommand string
XDPRootProgramVersion string

// TC Root program details.
TCRootProgramName string
TCRootProgramArtifact string
TCRootProgramIngressMapName string
TCRootProgramEgressMapName string
TCRootProgramCommand string
TCRootProgramVersion string
TCRootProgramUserProgramDaemon bool
TCRootProgramName string
TCRootProgramArtifact string
TCRootProgramIngressMapName string
TCRootProgramEgressMapName string
TCRootProgramCommand string
TCRootProgramVersion string

// ebpf chain details
EBPFChainDebugAddr string
Expand Down Expand Up @@ -102,53 +93,46 @@ func ReadConfig(configPath string) (*Config, error) {
}

return &Config{
PIDFilename: LoadConfigString(confReader, "l3afd", "pid-file"),
DataCenter: LoadConfigString(confReader, "l3afd", "datacenter"),
BPFDir: LoadConfigString(confReader, "l3afd", "bpf-dir"),
BPFLogDir: LoadConfigString(confReader, "l3afd", "bpf-log-dir"),
MinKernelMajorVer: LoadConfigInt(confReader, "l3afd", "kernel-major-version"),
MinKernelMinorVer: LoadConfigInt(confReader, "l3afd", "kernel-minor-version"),
KFRepoURL: LoadConfigString(confReader, "kf-repo", "url"),
HttpClientTimeout: LoadConfigDuration(confReader, "l3afd", "http-client-timeout"),
MaxNFReStartCount: LoadConfigInt(confReader, "l3afd", "max-nf-restart-count"),
BpfChainingEnabled: LoadOptionalConfigBool(confReader, "l3afd", "bpf-chaining-enabled", true),
MetricsAddr: LoadConfigString(confReader, "web", "metrics-addr"),
KFPollInterval: LoadOptionalConfigDuration(confReader, "web", "kf-poll-interval", 30*time.Second),
NMetricSamples: LoadOptionalConfigInt(confReader, "web", "n-metric-samples", 20),
ShutdownTimeout: LoadConfigDuration(confReader, "l3afd", "shutdown-timeout"),
SwaggerApiEnabled: LoadOptionalConfigBool(confReader, "l3afd", "swagger-api-enabled", false),
Environment: LoadOptionalConfigString(confReader, "l3afd", "environment", ENV_PROD),
BpfMapDefaultPath: LoadOptionalConfigString(confReader, "l3afd", "BpfMapDefaultPath", "/sys/fs/bpf"),
AdmindHost: LoadConfigString(confReader, "admind", "host"),
AdmindUsername: LoadConfigString(confReader, "admind", "username"),
AdmindApiKey: LoadConfigString(confReader, "admind", "api-key"),
AdmindGroupID: LoadConfigInt(confReader, "admind", "group-id"),
AdmindApiEnabled: LoadOptionalConfigBool(confReader, "admind", "api-enabled", true),
XDPRootProgramName: LoadOptionalConfigString(confReader, "xdp-root-program", "name", "xdp_root"),
XDPRootProgramArtifact: LoadOptionalConfigString(confReader, "xdp-root-program", "artifact", "l3af_xdp_root.tar.gz"),
XDPRootProgramMapName: LoadOptionalConfigString(confReader, "xdp-root-program", "ingress-map-name", "xdp_root_array"),
XDPRootProgramCommand: LoadOptionalConfigString(confReader, "xdp-root-program", "command", "xdp_root"),
XDPRootProgramVersion: LoadOptionalConfigString(confReader, "xdp-root-program", "version", "1.01"),
XDPRootProgramUserProgramDaemon: LoadOptionalConfigBool(confReader, "xdp-root-program", "user-program-daemon", false),
TCRootProgramName: LoadOptionalConfigString(confReader, "tc-root-program", "name", "tc_root"),
TCRootProgramArtifact: LoadOptionalConfigString(confReader, "tc-root-program", "artifact", "l3af_tc_root.tar.gz"),
TCRootProgramIngressMapName: LoadOptionalConfigString(confReader, "tc-root-program", "ingress-map-name", "tc/globals/tc_ingress_root_array"),
TCRootProgramEgressMapName: LoadOptionalConfigString(confReader, "tc-root-program", "egress-map-name", "tc/globals/tc_egress_root_array"),
TCRootProgramCommand: LoadOptionalConfigString(confReader, "tc-root-program", "command", "tc_root"),
TCRootProgramVersion: LoadOptionalConfigString(confReader, "tc-root-program", "version", "1.0"),
TCRootProgramUserProgramDaemon: LoadOptionalConfigBool(confReader, "tc-root-program", "user-program-daemon", false),
EBPFChainDebugAddr: LoadOptionalConfigString(confReader, "ebpf-chain-debug", "addr", "0.0.0.0:8899"),
EBPFChainDebugEnabled: LoadOptionalConfigBool(confReader, "ebpf-chain-debug", "enabled", false),
L3afConfigsRestAPIAddr: LoadOptionalConfigString(confReader, "l3af-configs", "restapi-addr", "localhost:53000"),
L3afConfigStoreFileName: LoadOptionalConfigString(confReader, "l3af-config-store", "filename", "/etc/l3afd/l3af-config.json"),
MTLSEnabled: LoadOptionalConfigBool(confReader, "mtls", "enabled", true),
MTLSMinVersion: minTLSVersion,
MTLSCertDir: LoadOptionalConfigString(confReader, "mtls", "cert-dir", "/etc/l3afd/certs"),
MTLSCACertFilename: LoadOptionalConfigString(confReader, "mtls", "cacert-filename", "ca.pem"),
MTLSServerCertFilename: LoadOptionalConfigString(confReader, "mtls", "server-cert-filename", "server.crt"),
MTLSServerKeyFilename: LoadOptionalConfigString(confReader, "mtls", "server-key-filename", "server.key"),
MTLSCertExpiryWarningDays: LoadOptionalConfigInt(confReader, "mtls", "cert-expiry-warning-days", 30),
MTLSSANMatchRules: strings.Split(LoadOptionalConfigString(confReader, "mtls", "san-match-rules", ""), ","),
PIDFilename: LoadConfigString(confReader, "l3afd", "pid-file"),
DataCenter: LoadConfigString(confReader, "l3afd", "datacenter"),
BPFDir: LoadConfigString(confReader, "l3afd", "bpf-dir"),
BPFLogDir: LoadOptionalConfigString(confReader, "l3afd", "bpf-log-dir", ""),
MinKernelMajorVer: LoadOptionalConfigInt(confReader, "l3afd", "kernel-major-version", 5),
MinKernelMinorVer: LoadOptionalConfigInt(confReader, "l3afd", "kernel-minor-version", 1),
KFRepoURL: LoadConfigString(confReader, "kf-repo", "url"),
HttpClientTimeout: LoadOptionalConfigDuration(confReader, "l3afd", "http-client-timeout", 10*time.Second),
MaxNFReStartCount: LoadOptionalConfigInt(confReader, "l3afd", "max-nf-restart-count", 3),
BpfChainingEnabled: LoadConfigBool(confReader, "l3afd", "bpf-chaining-enabled"),
MetricsAddr: LoadConfigString(confReader, "web", "metrics-addr"),
KFPollInterval: LoadOptionalConfigDuration(confReader, "web", "kf-poll-interval", 30*time.Second),
NMetricSamples: LoadOptionalConfigInt(confReader, "web", "n-metric-samples", 20),
ShutdownTimeout: LoadOptionalConfigDuration(confReader, "l3afd", "shutdown-timeout", 5*time.Second),
SwaggerApiEnabled: LoadOptionalConfigBool(confReader, "l3afd", "swagger-api-enabled", false),
Environment: LoadOptionalConfigString(confReader, "l3afd", "environment", ENV_PROD),
BpfMapDefaultPath: LoadConfigString(confReader, "l3afd", "BpfMapDefaultPath"),
XDPRootProgramName: LoadOptionalConfigString(confReader, "xdp-root-program", "name", "xdp_root"),
XDPRootProgramArtifact: LoadOptionalConfigString(confReader, "xdp-root-program", "artifact", "l3af_xdp_root.tar.gz"),
XDPRootProgramMapName: LoadOptionalConfigString(confReader, "xdp-root-program", "ingress-map-name", "xdp_root_array"),
XDPRootProgramCommand: LoadOptionalConfigString(confReader, "xdp-root-program", "command", "xdp_root"),
XDPRootProgramVersion: LoadOptionalConfigString(confReader, "xdp-root-program", "version", "1.01"),
TCRootProgramName: LoadOptionalConfigString(confReader, "tc-root-program", "name", "tc_root"),
TCRootProgramArtifact: LoadOptionalConfigString(confReader, "tc-root-program", "artifact", "l3af_tc_root.tar.gz"),
TCRootProgramIngressMapName: LoadOptionalConfigString(confReader, "tc-root-program", "ingress-map-name", "tc/globals/tc_ingress_root_array"),
TCRootProgramEgressMapName: LoadOptionalConfigString(confReader, "tc-root-program", "egress-map-name", "tc/globals/tc_egress_root_array"),
TCRootProgramCommand: LoadOptionalConfigString(confReader, "tc-root-program", "command", "tc_root"),
TCRootProgramVersion: LoadOptionalConfigString(confReader, "tc-root-program", "version", "1.0"),
EBPFChainDebugAddr: LoadOptionalConfigString(confReader, "ebpf-chain-debug", "addr", "localhost:8899"),
EBPFChainDebugEnabled: LoadOptionalConfigBool(confReader, "ebpf-chain-debug", "enabled", false),
L3afConfigsRestAPIAddr: LoadOptionalConfigString(confReader, "l3af-configs", "restapi-addr", "localhost:53000"),
L3afConfigStoreFileName: LoadConfigString(confReader, "l3af-config-store", "filename"),
MTLSEnabled: LoadOptionalConfigBool(confReader, "mtls", "enabled", true),
MTLSMinVersion: minTLSVersion,
MTLSCertDir: LoadOptionalConfigString(confReader, "mtls", "cert-dir", ""),
MTLSCACertFilename: LoadOptionalConfigString(confReader, "mtls", "cacert-filename", "ca.pem"),
MTLSServerCertFilename: LoadOptionalConfigString(confReader, "mtls", "server-cert-filename", "server.crt"),
MTLSServerKeyFilename: LoadOptionalConfigString(confReader, "mtls", "server-key-filename", "server.key"),
MTLSCertExpiryWarningDays: LoadOptionalConfigInt(confReader, "mtls", "cert-expiry-warning-days", 30),
MTLSSANMatchRules: strings.Split(LoadOptionalConfigString(confReader, "mtls", "san-match-rules", ""), ","),
}, nil
}

Expand Down
30 changes: 10 additions & 20 deletions config/l3afd.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[l3afd]
pid-file: ./l3afd.pid
datacenter: dummy
datacenter: dc
bpf-dir: /dev/shm
bpf-log-dir:
kernel-major-version: 4
Expand All @@ -14,57 +14,47 @@ bpf-chaining-enabled: true
swagger-api-enabled: false
# PROD | DEV
environment: PROD
#BpfMapDefaultPath is base path for storing maps
# BpfMapDefaultPath is base path for storing maps
BpfMapDefaultPath: /sys/fs/bpf


[kf-repo]
url:
url: http://localhost:8000/

[web]
metrics-addr: 0.0.0.0:8898
kf-poll-interval: 30s
n-metric-samples: 20

[admind]
host:
username:
api-key:
group-id: 0
api-enabled: true


[xdp-root-program]
name: xdp-root
artifact: xdp-root.tar.gz
ingress-map-name: root_array
ingress-map-name: xdp_root_array
command: xdp_root
version: 1.01
is-user-program: false
version: latest

[tc-root-program]
name: tc_root
name: tc-root
artifact: l3af_tc_root.tar.gz
ingress-map-name: tc/globals/tc_ingress_root_array
egress-map-name: tc/globals/tc_egress_root_array
command: tc_root
version: 1.0
is-user-program: false
version: latest

[ebpf-chain-debug]
addr: 0.0.0.0:8899
addr: localhost:8899
enabled: true

[l3af-configs]
restapi-addr: localhost:53000

[l3af-config-store]
filename: "/etc/l3afd/l3af-config.json"
filename: /var/l3afd/l3af-config.json

[mtls]
enabled: true
# TLS_1_2 or TLS_1_3
min-tls-version: TLS_1_2
min-tls-version: TLS_1_3
cert-dir: /etc/l3af/certs
cacert-filename: ca.pem
server-crt-filename: server.crt
Expand Down
Loading

0 comments on commit ff0fdc7

Please sign in to comment.