diff --git a/apis/fluentbit/v1alpha2/collector_types.go b/apis/fluentbit/v1alpha2/collector_types.go index 9452825ee..5368ad05b 100644 --- a/apis/fluentbit/v1alpha2/collector_types.go +++ b/apis/fluentbit/v1alpha2/collector_types.go @@ -79,6 +79,8 @@ type CollectorSpec struct { Service CollectorService `json:"service,omitempty"` // SchedulerName represents the desired scheduler for the Fluentbit collector pods SchedulerName string `json:"schedulerName,omitempty"` + // Replicas is the number of collector replicas to deploy + Replicas *int32 `json:"replicas,omitempty"` } // CollectorService defines the service of the FluentBit diff --git a/apis/fluentbit/v1alpha2/zz_generated.deepcopy.go b/apis/fluentbit/v1alpha2/zz_generated.deepcopy.go index 128000df0..7e61b5be9 100644 --- a/apis/fluentbit/v1alpha2/zz_generated.deepcopy.go +++ b/apis/fluentbit/v1alpha2/zz_generated.deepcopy.go @@ -562,6 +562,11 @@ func (in *CollectorSpec) DeepCopyInto(out *CollectorSpec) { copy(*out, *in) } in.Service.DeepCopyInto(&out.Service) + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + *out = new(int32) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectorSpec. diff --git a/charts/fluent-operator/charts/fluent-bit-crds/crds/fluentbit.fluent.io_collectors.yaml b/charts/fluent-operator/charts/fluent-bit-crds/crds/fluentbit.fluent.io_collectors.yaml index eb51b7129..c7c6b7a26 100644 --- a/charts/fluent-operator/charts/fluent-bit-crds/crds/fluentbit.fluent.io_collectors.yaml +++ b/charts/fluent-operator/charts/fluent-bit-crds/crds/fluentbit.fluent.io_collectors.yaml @@ -1528,6 +1528,10 @@ spec: - verbs type: object type: array + replicas: + description: Replicas is the number of collector replicas to deploy + format: int32 + type: integer resources: description: Compute Resources required by container. properties: diff --git a/config/crd/bases/fluentbit.fluent.io_collectors.yaml b/config/crd/bases/fluentbit.fluent.io_collectors.yaml index eb51b7129..c7c6b7a26 100644 --- a/config/crd/bases/fluentbit.fluent.io_collectors.yaml +++ b/config/crd/bases/fluentbit.fluent.io_collectors.yaml @@ -1528,6 +1528,10 @@ spec: - verbs type: object type: array + replicas: + description: Replicas is the number of collector replicas to deploy + format: int32 + type: integer resources: description: Compute Resources required by container. properties: diff --git a/docs/fluentbit.md b/docs/fluentbit.md index b60dedb89..36bb4b6f8 100644 --- a/docs/fluentbit.md +++ b/docs/fluentbit.md @@ -242,6 +242,7 @@ CollectorSpec defines the desired state of FluentBit | ports | Ports represents the pod's ports. | [][corev1.ContainerPort](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#containerport-v1-core) | | service | Service represents configurations on the fluent-bit service. | [CollectorService](#collectorservice) | | schedulerName | SchedulerName represents the desired scheduler for the Fluentbit collector pods | string | +| replicas | Replicas is the number of collector replicas to deploy | *int32 | [Back to TOC](#table-of-contents) # Decorder diff --git a/manifests/setup/fluent-operator-crd.yaml b/manifests/setup/fluent-operator-crd.yaml index 8a35fd6f2..52fae584f 100644 --- a/manifests/setup/fluent-operator-crd.yaml +++ b/manifests/setup/fluent-operator-crd.yaml @@ -12557,6 +12557,10 @@ spec: - verbs type: object type: array + replicas: + description: Replicas is the number of collector replicas to deploy + format: int32 + type: integer resources: description: Compute Resources required by container. properties: diff --git a/manifests/setup/setup.yaml b/manifests/setup/setup.yaml index 6e12a0dc7..fb6acd60f 100644 --- a/manifests/setup/setup.yaml +++ b/manifests/setup/setup.yaml @@ -12557,6 +12557,10 @@ spec: - verbs type: object type: array + replicas: + description: Replicas is the number of collector replicas to deploy + format: int32 + type: integer resources: description: Compute Resources required by container. properties: diff --git a/pkg/operator/collector-statefulset.go b/pkg/operator/collector-statefulset.go index 4f1cf7d29..5d484aa00 100644 --- a/pkg/operator/collector-statefulset.go +++ b/pkg/operator/collector-statefulset.go @@ -17,6 +17,11 @@ var ( ) func MakefbStatefulset(co fluentbitv1alpha2.Collector) *appsv1.StatefulSet { + replicas := int32(1) + if co.Spec.Replicas != nil { + replicas = *co.Spec.Replicas + } + statefulset := appsv1.StatefulSet{ ObjectMeta: metav1.ObjectMeta{ Name: co.Name, @@ -24,6 +29,7 @@ func MakefbStatefulset(co fluentbitv1alpha2.Collector) *appsv1.StatefulSet { Labels: co.Labels, }, Spec: appsv1.StatefulSetSpec{ + Replicas: &replicas, Selector: &metav1.LabelSelector{ MatchLabels: co.Labels, },