Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changelog/3993.added.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Making hostNetwork and dnsPolicy configurable in otellogs.daemonset
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ spec:
{{- if $tolerations }}
tolerations:
{{ $tolerations | indent 8 }}
{{- end }}
{{- if $daemonset.hostNetwork }}
hostNetwork: {{ $daemonset.hostNetwork }}
{{- end }}
{{- if $daemonset.dnsPolicy }}
dnsPolicy: {{ $daemonset.dnsPolicy }}
{{- end }}
securityContext:
{{- toYaml $daemonset.securityContext | nindent 8 }}
Expand Down
5 changes: 5 additions & 0 deletions deploy/helm/sumologic/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2108,6 +2108,11 @@ otellogs:
override: {}

daemonset:
## Enable host network for the daemonset pods
hostNetwork: false
## DNS policy for the daemonset pods
dnsPolicy: ClusterFirst

## Set securityContext for containers running in pods in log collector daemonset
securityContext:
## In order to reliably read logs from mounted node logging paths, we need to run as root
Expand Down
62 changes: 62 additions & 0 deletions tests/helm/logs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -587,3 +587,65 @@ otellogs:

require.Equal(t, "50%", logsCollectorDaemonset.Spec.UpdateStrategy.RollingUpdate.MaxUnavailable)
}

func TestCollectorDaemonsetHostNetwork(t *testing.T) {
t.Parallel()

valuesYaml := `
otellogs:
daemonset:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
`
templatePath := "templates/logs/collector/otelcol/daemonset.yaml"

renderedTemplate, err := RenderTemplateFromValuesStringE(t, valuesYaml, templatePath)
require.NoError(t, err)

var logsCollectorDaemonset struct {
Spec struct {
Template struct {
Spec struct {
HostNetwork bool `yaml:"hostNetwork"`
DnsPolicy string `yaml:"dnsPolicy"`
}
}
}
}
err = yaml.Unmarshal([]byte(renderedTemplate), &logsCollectorDaemonset)
require.NoError(t, err)

require.Equal(t, true, logsCollectorDaemonset.Spec.Template.Spec.HostNetwork)
require.Equal(t, "ClusterFirstWithHostNet", logsCollectorDaemonset.Spec.Template.Spec.DnsPolicy)
}

func TestCollectorDaemonsetHostNetworkDefault(t *testing.T) {
t.Parallel()

valuesYaml := `
otellogs:
daemonset: {}
`
templatePath := "templates/logs/collector/otelcol/daemonset.yaml"

renderedTemplate, err := RenderTemplateFromValuesStringE(t, valuesYaml, templatePath)
require.NoError(t, err)

var logsCollectorDaemonset struct {
Spec struct {
Template struct {
Spec struct {
HostNetwork bool `yaml:"hostNetwork"`
DnsPolicy string `yaml:"dnsPolicy"`
}
}
}
}
err = yaml.Unmarshal([]byte(renderedTemplate), &logsCollectorDaemonset)
require.NoError(t, err)

// With default values (hostNetwork: false), the hostNetwork field should not be present
// and dnsPolicy should default to ClusterFirst
require.Equal(t, false, logsCollectorDaemonset.Spec.Template.Spec.HostNetwork)
require.Equal(t, "ClusterFirst", logsCollectorDaemonset.Spec.Template.Spec.DnsPolicy)
}
Loading