Skip to content

Commit df685f1

Browse files
committed
Expose rsyslog template format in Logging CRD
Add RsyslogTemplate field to LoggingSpec with enum validation restricting values to RSYSLOG_TraditionalFileFormat (default) and RSYSLOG_SyslogProtocol23Format. This allows users to configure the syslog message format used by the rsyslog forwarding action on dataplane nodes. Closes: OSPRH-29473
1 parent dcf3d0f commit df685f1

9 files changed

Lines changed: 50 additions & 0 deletions

File tree

api/bases/telemetry.openstack.org_loggings.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,13 @@ spec:
8484
description: The number of retries rsyslog will attempt before abandoning
8585
format: int32
8686
type: integer
87+
rsyslogTemplate:
88+
default: RSYSLOG_TraditionalFileFormat
89+
description: The template format for rsyslog forwarding actions
90+
enum:
91+
- RSYSLOG_TraditionalFileFormat
92+
- RSYSLOG_SyslogProtocol23Format
93+
type: string
8794
targetPort:
8895
default: 10514
8996
description: TargetPort is the port where the logging syslog receiver

api/bases/telemetry.openstack.org_telemetries.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1414,6 +1414,13 @@ spec:
14141414
abandoning
14151415
format: int32
14161416
type: integer
1417+
rsyslogTemplate:
1418+
default: RSYSLOG_TraditionalFileFormat
1419+
description: The template format for rsyslog forwarding actions
1420+
enum:
1421+
- RSYSLOG_TraditionalFileFormat
1422+
- RSYSLOG_SyslogProtocol23Format
1423+
type: string
14171424
targetPort:
14181425
default: 10514
14191426
description: TargetPort is the port where the logging syslog receiver

api/v1beta1/logging_types.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ type LoggingSpec struct {
5858
// +kubebuilder:validation:Optional
5959
// +kubebuilder:default=10000
6060
RsyslogQueueSize int32 `json:"rsyslogQueueSize"`
61+
62+
// The template format for rsyslog forwarding actions
63+
// +kubebuilder:validation:Optional
64+
// +kubebuilder:default=RSYSLOG_TraditionalFileFormat
65+
// +kubebuilder:validation:Enum=RSYSLOG_TraditionalFileFormat;RSYSLOG_SyslogProtocol23Format
66+
RsyslogTemplate string `json:"rsyslogTemplate"`
6167
}
6268

6369
// LoggingStatus defines the observed state of Logging

config/crd/bases/telemetry.openstack.org_loggings.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,13 @@ spec:
8484
description: The number of retries rsyslog will attempt before abandoning
8585
format: int32
8686
type: integer
87+
rsyslogTemplate:
88+
default: RSYSLOG_TraditionalFileFormat
89+
description: The template format for rsyslog forwarding actions
90+
enum:
91+
- RSYSLOG_TraditionalFileFormat
92+
- RSYSLOG_SyslogProtocol23Format
93+
type: string
8794
targetPort:
8895
default: 10514
8996
description: TargetPort is the port where the logging syslog receiver

config/crd/bases/telemetry.openstack.org_telemetries.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1414,6 +1414,13 @@ spec:
14141414
abandoning
14151415
format: int32
14161416
type: integer
1417+
rsyslogTemplate:
1418+
default: RSYSLOG_TraditionalFileFormat
1419+
description: The template format for rsyslog forwarding actions
1420+
enum:
1421+
- RSYSLOG_TraditionalFileFormat
1422+
- RSYSLOG_SyslogProtocol23Format
1423+
type: string
14171424
targetPort:
14181425
default: 10514
14191426
description: TargetPort is the port where the logging syslog receiver

internal/controller/logging_controller.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,7 @@ func (r *LoggingReconciler) generateComputeServiceConfig(
300300
"RsyslogRetries": instance.Spec.RsyslogRetries,
301301
"RsyslogQueueType": instance.Spec.RsyslogQueueType,
302302
"RsyslogQueueSize": instance.Spec.RsyslogQueueSize,
303+
"RsyslogTemplate": instance.Spec.RsyslogTemplate,
303304
}
304305

305306
customData := map[string]string{}

templates/logging/config/10-telemetry.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ action(type="omfwd"
22
target="{{ .RsyslogAddress }}"
33
port="{{ .RsyslogPort }}"
44
protocol="tcp"
5+
template="{{ .RsyslogTemplate }}"
56
action.resumeRetryCount="{{ .RsyslogRetries }}"
67
queue.type="{{ .RsyslogQueueType }}"
78
queue.size="{{ .RsyslogQueueSize }}"
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
commands:
4+
- script: >
5+
secret_data=$(oc -n $NAMESPACE get secret logging-compute-config-data -o jsonpath='{.data.10-telemetry\.conf}' | base64 -d) &&
6+
echo "$secret_data" | grep -q 'template="RSYSLOG_SyslogProtocol23Format"'
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
apiVersion: telemetry.openstack.org/v1beta1
2+
kind: Logging
3+
metadata:
4+
name: telemetry-kuttl-logging
5+
spec:
6+
port: 10514
7+
cloNamespace: telemetry-kuttl-tests
8+
rsyslogTemplate: RSYSLOG_SyslogProtocol23Format

0 commit comments

Comments
 (0)