Skip to content

Commit 6c3e43f

Browse files
committed
This PR has the proposed API changes needed for RFE-6849. The functionality is not implemented.
1 parent 073925e commit 6c3e43f

13 files changed

+1482
-157
lines changed

.bingo/Variables.mk

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ $(GEN_CRD_API_REFERENCE_DOCS): $(BINGO_DIR)/gen-crd-api-reference-docs.mod
3535
@echo "(re)installing $(GOBIN)/gen-crd-api-reference-docs-v0.0.5"
3636
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=gen-crd-api-reference-docs.mod -o=$(GOBIN)/gen-crd-api-reference-docs-v0.0.5 "github.com/ViaQ/gen-crd-api-reference-docs"
3737

38-
GOLANGCI_LINT := $(GOBIN)/golangci-lint-v1.61.0
38+
GOLANGCI_LINT := $(GOBIN)/golangci-lint-v1.64.6
3939
$(GOLANGCI_LINT): $(BINGO_DIR)/golangci-lint.mod
4040
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
41-
@echo "(re)installing $(GOBIN)/golangci-lint-v1.61.0"
42-
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.61.0 "github.com/golangci/golangci-lint/cmd/golangci-lint"
41+
@echo "(re)installing $(GOBIN)/golangci-lint-v1.64.6"
42+
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.64.6 "github.com/golangci/golangci-lint/cmd/golangci-lint"
4343

4444
JUNITREPORT := $(GOBIN)/junitreport-v0.0.0-20220531132329-92dee95b5da2
4545
$(JUNITREPORT): $(BINGO_DIR)/junitreport.mod

.bingo/golangci-lint.mod

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
22

3-
go 1.22.1
3+
go 1.23.0
44

5-
toolchain go1.22.5
5+
toolchain go1.23.6
66

7-
require github.com/golangci/golangci-lint v1.61.0 // cmd/golangci-lint
7+
require github.com/golangci/golangci-lint v1.64.6 // cmd/golangci-lint

.bingo/golangci-lint.sum

+198
Large diffs are not rendered by default.

.bingo/variables.env

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ CONTROLLER_GEN="${GOBIN}/controller-gen-v0.16.3"
1414

1515
GEN_CRD_API_REFERENCE_DOCS="${GOBIN}/gen-crd-api-reference-docs-v0.0.5"
1616

17-
GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.61.0"
17+
GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.64.6"
1818

1919
JUNITREPORT="${GOBIN}/junitreport-v0.0.0-20220531132329-92dee95b5da2"
2020

api/observability/v1/output_types.go

+33
Original file line numberDiff line numberDiff line change
@@ -210,15 +210,41 @@ type BaseOutputTuningSpec struct {
210210

211211
// MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
212212
//
213+
// A duration string is a sequence of decimal numbers and unit suffixes,
214+
// such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
215+
//
213216
// +kubebuilder:validation:Optional
214217
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Minimum Retry Duration"
215218
MinRetryDuration *time.Duration `json:"minRetryDuration,omitempty"`
216219

217220
// MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
218221
//
222+
// A duration string is a sequence of decimal numbers and unit suffixes,
223+
// such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
224+
//
219225
// +kubebuilder:validation:Optional
220226
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Maximum Retry Duration"
221227
MaxRetryDuration *time.Duration `json:"maxRetryDuration,omitempty"`
228+
229+
// MaxBufferSize is the maximum size in bytes allowed for buffering unsent data to an output.
230+
// It is written as a [Kubernetes quantity], for example: 128974848, 129e6, 129M, 123Mi
231+
//
232+
// NOTE: It is not recommended to set this field unless you understand the disk space
233+
// requirements, and have done tests to validate performance under realistic conditions.
234+
//
235+
// The following are potential risks to bear in mind:
236+
//
237+
// - With `deliveryMode: AtLeastOnce`, buffers are created on the local node `/var` file system.
238+
// Filling up that file system can have severe consequences for the entire node.
239+
// The disk space required on each node is the sum of all persistent output buffers, for all deployed ClusterLogForwarder instances.
240+
//
241+
// - Larger buffers can increase latency and recovery times from a period of overload.
242+
// If buffers fill up under heavy load, it takes longer for logs to get to the head of the buffer to be delivered.
243+
// If logs are not sent much faster than they are collected, the buffers may take a long time to drain.
244+
//
245+
// [Kubernetes quanitity]: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity
246+
// [Kubernetes resource limits]: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory
247+
MaxBufferSize *resource.Quantity `json:"maxBufferSize,omitempty"`
222248
}
223249

224250
// DeliveryMode sets the delivery mode for log forwarding.
@@ -650,6 +676,13 @@ type KafkaTuningSpec struct {
650676
// +kubebuilder:validation:Enum:=none;snappy;zstd;lz4
651677
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Compression"
652678
Compression string `json:"compression,omitempty"`
679+
680+
// MessageTimeout messages that are waiting to be sent are dropped after this timeout.
681+
// Used to ensure that newer messages are not blocked indefinitely by older ones.
682+
//
683+
// A duration string is a sequence of decimal numbers and a unit suffix,
684+
// such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
685+
MessageTimeout *time.Duration `json:"messageTimeout,omitempty"`
653686
}
654687

655688
// KafkaAuthentication contains configuration for authenticating requests to a Kafka output.

api/observability/v1/zz_generated.deepcopy.go

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bundle/manifests/cluster-logging.clusterserviceversion.yaml

+109-37
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ spec:
384384
Format is the format of incoming log data.
385385
386386
387-
The current supported format is `kubeAPIAudit`.
387+
The only currently supported format is `kubeAPIAudit`.
388388
displayName: Data Format
389389
path: inputs[0].receiver.http.format
390390
- description: Port the Receiver listens on. It must be a value between 1024
@@ -481,16 +481,24 @@ spec:
481481
path: outputs[0].azureMonitor.tuning
482482
- displayName: Delivery Mode
483483
path: outputs[0].azureMonitor.tuning.deliveryMode
484-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
485-
after a delivery failure.
484+
- description: |-
485+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
486+
487+
488+
A duration string is a sequence of decimal numbers and unit suffixes,
489+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
486490
displayName: Maximum Retry Duration
487491
path: outputs[0].azureMonitor.tuning.maxRetryDuration
488492
- description: MaxWrite limits the maximum payload in terms of bytes of a single
489493
"send" to the output.
490494
displayName: Batch Size
491495
path: outputs[0].azureMonitor.tuning.maxWrite
492-
- description: MinRetryDuration is the minimum time to wait between attempts
493-
to retry after delivery a failure.
496+
- description: |-
497+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
498+
499+
500+
A duration string is a sequence of decimal numbers and unit suffixes,
501+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
494502
displayName: Minimum Retry Duration
495503
path: outputs[0].azureMonitor.tuning.minRetryDuration
496504
- description: Cloudwatch configures forwarding log events to AWS Cloudwatch
@@ -620,16 +628,24 @@ spec:
620628
path: outputs[0].cloudwatch.tuning.compression
621629
- displayName: Delivery Mode
622630
path: outputs[0].cloudwatch.tuning.deliveryMode
623-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
624-
after a delivery failure.
631+
- description: |-
632+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
633+
634+
635+
A duration string is a sequence of decimal numbers and unit suffixes,
636+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
625637
displayName: Maximum Retry Duration
626638
path: outputs[0].cloudwatch.tuning.maxRetryDuration
627639
- description: MaxWrite limits the maximum payload in terms of bytes of a single
628640
"send" to the output.
629641
displayName: Batch Size
630642
path: outputs[0].cloudwatch.tuning.maxWrite
631-
- description: MinRetryDuration is the minimum time to wait between attempts
632-
to retry after delivery a failure.
643+
- description: |-
644+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
645+
646+
647+
A duration string is a sequence of decimal numbers and unit suffixes,
648+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
633649
displayName: Minimum Retry Duration
634650
path: outputs[0].cloudwatch.tuning.minRetryDuration
635651
- description: |-
@@ -738,16 +754,24 @@ spec:
738754
path: outputs[0].elasticsearch.tuning.compression
739755
- displayName: Delivery Mode
740756
path: outputs[0].elasticsearch.tuning.deliveryMode
741-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
742-
after a delivery failure.
757+
- description: |-
758+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
759+
760+
761+
A duration string is a sequence of decimal numbers and unit suffixes,
762+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
743763
displayName: Maximum Retry Duration
744764
path: outputs[0].elasticsearch.tuning.maxRetryDuration
745765
- description: MaxWrite limits the maximum payload in terms of bytes of a single
746766
"send" to the output.
747767
displayName: Batch Size
748768
path: outputs[0].elasticsearch.tuning.maxWrite
749-
- description: MinRetryDuration is the minimum time to wait between attempts
750-
to retry after delivery a failure.
769+
- description: |-
770+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
771+
772+
773+
A duration string is a sequence of decimal numbers and unit suffixes,
774+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
751775
displayName: Minimum Retry Duration
752776
path: outputs[0].elasticsearch.tuning.minRetryDuration
753777
- description: |-
@@ -829,16 +853,24 @@ spec:
829853
path: outputs[0].googleCloudLogging.tuning
830854
- displayName: Delivery Mode
831855
path: outputs[0].googleCloudLogging.tuning.deliveryMode
832-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
833-
after a delivery failure.
856+
- description: |-
857+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
858+
859+
860+
A duration string is a sequence of decimal numbers and unit suffixes,
861+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
834862
displayName: Maximum Retry Duration
835863
path: outputs[0].googleCloudLogging.tuning.maxRetryDuration
836864
- description: MaxWrite limits the maximum payload in terms of bytes of a single
837865
"send" to the output.
838866
displayName: Batch Size
839867
path: outputs[0].googleCloudLogging.tuning.maxWrite
840-
- description: MinRetryDuration is the minimum time to wait between attempts
841-
to retry after delivery a failure.
868+
- description: |-
869+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
870+
871+
872+
A duration string is a sequence of decimal numbers and unit suffixes,
873+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
842874
displayName: Minimum Retry Duration
843875
path: outputs[0].googleCloudLogging.tuning.minRetryDuration
844876
- description: HTTP configures forwarding log events to an HTTP server
@@ -918,16 +950,24 @@ spec:
918950
path: outputs[0].http.tuning.compression
919951
- displayName: Delivery Mode
920952
path: outputs[0].http.tuning.deliveryMode
921-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
922-
after a delivery failure.
953+
- description: |-
954+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
955+
956+
957+
A duration string is a sequence of decimal numbers and unit suffixes,
958+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
923959
displayName: Maximum Retry Duration
924960
path: outputs[0].http.tuning.maxRetryDuration
925961
- description: MaxWrite limits the maximum payload in terms of bytes of a single
926962
"send" to the output.
927963
displayName: Batch Size
928964
path: outputs[0].http.tuning.maxWrite
929-
- description: MinRetryDuration is the minimum time to wait between attempts
930-
to retry after delivery a failure.
965+
- description: |-
966+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
967+
968+
969+
A duration string is a sequence of decimal numbers and unit suffixes,
970+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
931971
displayName: Minimum Retry Duration
932972
path: outputs[0].http.tuning.minRetryDuration
933973
- description: |-
@@ -1180,16 +1220,24 @@ spec:
11801220
path: outputs[0].loki.tuning.compression
11811221
- displayName: Delivery Mode
11821222
path: outputs[0].loki.tuning.deliveryMode
1183-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
1184-
after a delivery failure.
1223+
- description: |-
1224+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
1225+
1226+
1227+
A duration string is a sequence of decimal numbers and unit suffixes,
1228+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
11851229
displayName: Maximum Retry Duration
11861230
path: outputs[0].loki.tuning.maxRetryDuration
11871231
- description: MaxWrite limits the maximum payload in terms of bytes of a single
11881232
"send" to the output.
11891233
displayName: Batch Size
11901234
path: outputs[0].loki.tuning.maxWrite
1191-
- description: MinRetryDuration is the minimum time to wait between attempts
1192-
to retry after delivery a failure.
1235+
- description: |-
1236+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
1237+
1238+
1239+
A duration string is a sequence of decimal numbers and unit suffixes,
1240+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
11931241
displayName: Minimum Retry Duration
11941242
path: outputs[0].loki.tuning.minRetryDuration
11951243
- description: |-
@@ -1374,16 +1422,24 @@ spec:
13741422
path: outputs[0].lokiStack.tuning.compression
13751423
- displayName: Delivery Mode
13761424
path: outputs[0].lokiStack.tuning.deliveryMode
1377-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
1378-
after a delivery failure.
1425+
- description: |-
1426+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
1427+
1428+
1429+
A duration string is a sequence of decimal numbers and unit suffixes,
1430+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
13791431
displayName: Maximum Retry Duration
13801432
path: outputs[0].lokiStack.tuning.maxRetryDuration
13811433
- description: MaxWrite limits the maximum payload in terms of bytes of a single
13821434
"send" to the output.
13831435
displayName: Batch Size
13841436
path: outputs[0].lokiStack.tuning.maxWrite
1385-
- description: MinRetryDuration is the minimum time to wait between attempts
1386-
to retry after delivery a failure.
1437+
- description: |-
1438+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
1439+
1440+
1441+
A duration string is a sequence of decimal numbers and unit suffixes,
1442+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
13871443
displayName: Minimum Retry Duration
13881444
path: outputs[0].lokiStack.tuning.minRetryDuration
13891445
- description: Name used to refer to the output from a `pipeline`.
@@ -1458,16 +1514,24 @@ spec:
14581514
- urn:alm:descriptor:com.tectonic.ui:text
14591515
- displayName: Delivery Mode
14601516
path: outputs[0].otlp.tuning.deliveryMode
1461-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
1462-
after a delivery failure.
1517+
- description: |-
1518+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
1519+
1520+
1521+
A duration string is a sequence of decimal numbers and unit suffixes,
1522+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
14631523
displayName: Maximum Retry Duration
14641524
path: outputs[0].otlp.tuning.maxRetryDuration
14651525
- description: MaxWrite limits the maximum payload in terms of bytes of a single
14661526
"send" to the output.
14671527
displayName: Batch Size
14681528
path: outputs[0].otlp.tuning.maxWrite
1469-
- description: MinRetryDuration is the minimum time to wait between attempts
1470-
to retry after delivery a failure.
1529+
- description: |-
1530+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
1531+
1532+
1533+
A duration string is a sequence of decimal numbers and unit suffixes,
1534+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
14711535
displayName: Minimum Retry Duration
14721536
path: outputs[0].otlp.tuning.minRetryDuration
14731537
- description: |-
@@ -1555,16 +1619,24 @@ spec:
15551619
path: outputs[0].splunk.tuning.compression
15561620
- displayName: Delivery Mode
15571621
path: outputs[0].splunk.tuning.deliveryMode
1558-
- description: MaxRetryDuration is the maximum time to wait between retry attempts
1559-
after a delivery failure.
1622+
- description: |-
1623+
MaxRetryDuration is the maximum time to wait between retry attempts after a delivery failure.
1624+
1625+
1626+
A duration string is a sequence of decimal numbers and unit suffixes,
1627+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
15601628
displayName: Maximum Retry Duration
15611629
path: outputs[0].splunk.tuning.maxRetryDuration
15621630
- description: MaxWrite limits the maximum payload in terms of bytes of a single
15631631
"send" to the output.
15641632
displayName: Batch Size
15651633
path: outputs[0].splunk.tuning.maxWrite
1566-
- description: MinRetryDuration is the minimum time to wait between attempts
1567-
to retry after delivery a failure.
1634+
- description: |-
1635+
MinRetryDuration is the minimum time to wait between attempts to retry after delivery a failure.
1636+
1637+
1638+
A duration string is a sequence of decimal numbers and unit suffixes,
1639+
such as "300ms" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
15681640
displayName: Minimum Retry Duration
15691641
path: outputs[0].splunk.tuning.minRetryDuration
15701642
- description: |-

0 commit comments

Comments
 (0)