Skip to content

Commit 13b8f4f

Browse files
committed
Merge branch 'feature/CSPL-3551-ingestion-cr-todos' into feature/CSPL-3558-integ-tests
2 parents a7ae40f + 3325113 commit 13b8f4f

File tree

79 files changed

+6178
-826
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+6178
-826
lines changed

.env

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
OPERATOR_SDK_VERSION=v1.39.0
2-
REVIEWERS=vivekr-splunk,rlieberman-splunk,patrykw-splunk,Igor-splunk,kasiakoziol
2+
REVIEWERS=vivekr-splunk,rlieberman-splunk,patrykw-splunk,Igor-splunk,kasiakoziol,kubabuczak
33
GO_VERSION=1.23.0
44
AWSCLI_URL=https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.8.6.zip
55
KUBECTL_VERSION=v1.29.1
@@ -8,4 +8,4 @@ EKSCTL_VERSION=v0.191.0
88
EKS_CLUSTER_K8_VERSION=1.31
99
EKS_INSTANCE_TYPE=m5.2xlarge
1010
EKS_INSTANCE_TYPE_ARM64=c6g.4xlarge
11-
SPLUNK_ENTERPRISE_RELEASE_IMAGE=splunk/splunk:9.4.3
11+
SPLUNK_ENTERPRISE_RELEASE_IMAGE=splunk/splunk:10.0.0

.github/workflows/automated-release-workflow.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ jobs:
9090
- name: Create Release
9191
uses: ncipollo/release-action@40bb172bd05f266cf9ba4ff965cb61e9ee5f6d01
9292
with:
93-
artifacts: "release-${{ github.event.inputs.release_version }}/splunk-operator-cluster.yaml,release-${{ github.event.inputs.release_version }}/splunk-operator-namespace.yaml"
93+
artifacts: "release-${{ github.event.inputs.release_version }}/splunk-operator-cluster.yaml,release-${{ github.event.inputs.release_version }}/splunk-operator-namespace.yaml,release-${{ github.event.inputs.release_version }}/splunk-operator-crds.yaml"
9494
bodyFile: "docs/ReleaseNotes.md"
9595
tag: "${{ github.event.inputs.release_version }}"
9696
draft: true

.github/workflows/distroless-build-test-push-workflow.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,9 @@ jobs:
9494
uses: aws-actions/amazon-ecr-login@v1
9595
- name: Build and push Splunk Operator Image
9696
run: |
97-
make docker-buildx IMG=${{ secrets.ECR_REPOSITORY }}/${{ env.SPLUNK_OPERATOR_IMAGE_NAME }}:$GITHUB_SHA-distroless
97+
export BASE_IMAGE=gcr.io/distroless/static-debian12
98+
export BASE_IMAGE_VERSION=latest
99+
make docker-buildx BASE_IMAGE=$BASE_IMAGE BASE_IMAGE_VERSION=$BASE_IMAGE_VERSION IMG=${{ secrets.ECR_REPOSITORY }}/${{ env.SPLUNK_OPERATOR_IMAGE_NAME }}:$GITHUB_SHA-distroless
98100
- name: Sign Splunk Operator image with a key
99101
run: |
100102
cosign sign --yes --key env://COSIGN_PRIVATE_KEY ${{ secrets.ECR_REPOSITORY }}/${{ env.SPLUNK_OPERATOR_IMAGE_NAME }}:${{ github.sha }}-distroless

.github/workflows/merge-develop-to-main-workflow.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ jobs:
100100
# Build and push Distroless image
101101
- name: Build and push Distroless Image
102102
run: |
103-
make docker-buildx IMG=${{ secrets.PUBLIC_ECR_REPOSITORY }}/${{ env.SPLUNK_OPERATOR_RC_IMAGE_NAME }}:${{ github.event.inputs.release_version }}-RC${{ github.event.inputs.release_candiate_version }} BASE_IMAGE=gcr.io/distroless/static BASE_IMAGE_VERSION=latest
103+
make docker-buildx IMG=${{ secrets.PUBLIC_ECR_REPOSITORY }}/${{ env.SPLUNK_OPERATOR_RC_IMAGE_NAME }}:${{ github.event.inputs.release_version }}-RC${{ github.event.inputs.release_candiate_version }}-distroless BASE_IMAGE=gcr.io/distroless/static BASE_IMAGE_VERSION=latest
104104
105105
- name: Tag and Push Default UBI RC Image
106106
run: |

.github/workflows/pre-release-workflow.yml

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,15 @@ jobs:
9696
exclude: "ChangeLog.md"
9797
include: "helm-chart/splunk-enterprise/**.yaml"
9898
99+
- name: Update Operator Version in Makefile
100+
if: github.event.inputs.old_operator_version != github.event.inputs.new_operator_version
101+
uses: jacobtomlinson/gha-find-replace@v3
102+
with:
103+
find: "${{ github.event.inputs.old_operator_version }}"
104+
replace: "${{ github.event.inputs.new_operator_version }}"
105+
exclude: "ChangeLog.md"
106+
include: "Makefile"
107+
99108
- name: Update Operator Image name in DOCS
100109
if: github.event.inputs.old_operator_version != github.event.inputs.new_operator_version
101110
uses: jacobtomlinson/gha-find-replace@v3
@@ -114,15 +123,6 @@ jobs:
114123
exclude: "ChangeLog.md"
115124
include: "**.md"
116125
117-
- name: Update Splunk Operator VERSION in DOCS
118-
if: github.event.inputs.old_operator_version != github.event.inputs.new_operator_version
119-
uses: jacobtomlinson/gha-find-replace@v3
120-
with:
121-
find: "${{ github.event.inputs.old_operator_version }} or later"
122-
replace: "${{ github.event.inputs.new_operator_version }} or later"
123-
exclude: "ChangeLog.md"
124-
include: "**.md"
125-
126126
- name: Update Splunk Operator upgrade string in DOCS
127127
if: github.event.inputs.old_operator_version != github.event.inputs.new_operator_version
128128
uses: jacobtomlinson/gha-find-replace@v3
@@ -172,15 +172,6 @@ jobs:
172172
replace: "${{ github.event.inputs.new_enterprise_version }}"
173173
include: "**values.yaml"
174174
175-
- name: Update Splunk Enterprise image in DOCS
176-
if: github.event.inputs.old_enterprise_version != github.event.inputs.new_enterprise_version
177-
uses: jacobtomlinson/gha-find-replace@v3
178-
with:
179-
find: "${{ github.event.inputs.old_enterprise_version }} or later"
180-
replace: "${{ github.event.inputs.new_enterprise_version }} or later"
181-
exclude: "ChangeLog.md"
182-
include: "**.md"
183-
184175
- name: Install Operator SDK
185176
run: |
186177
export ARCH=$(case $(uname -m) in x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo -n $(uname -m) ;; esac)
@@ -194,6 +185,10 @@ jobs:
194185
run: |
195186
make bundle IMAGE_TAG_BASE=docker.io/splunk/splunk-operator VERSION=${{ github.event.inputs.release_version }} IMG=docker.io/splunk/splunk-operator:${{ github.event.inputs.release_version }} SPLUNK_ENTERPRISE_IMAGE=docker.io/splunk/splunk:${{ github.event.inputs.new_enterprise_version }}
196187
188+
- name: Remove old helm chart dependencies
189+
run: |
190+
rm -rf helm-chart/splunk-enterprise/charts/splunk-operator-*
191+
197192
- name: Run helm chart package creation
198193
run: |
199194
helm package helm-chart/splunk-operator

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ ARG PLATFORMS=linux/amd64,linux/arm64
33

44
# Use distroless as minimal base image to package the manager binary
55
# Refer to https://github.com/GoogleContainerTools/distroless for more details
6-
# This sha relates to ubi minimal version 8.10-1755105495, which is tagged as 8.10 and latest as of Aug 17, 2025
6+
# This sha relates to ubi minimal version 8.10-1756195339, which is tagged as 8.10 and latest as of Sep 3, 2025
77
ARG BASE_IMAGE=registry.access.redhat.com/ubi8/ubi-minimal
8-
ARG BASE_IMAGE_VERSION=8.10-1755105495
8+
ARG BASE_IMAGE_VERSION=8.10-1756195339
99

1010
# Build the manager binary
1111
FROM golang:1.24.2 AS builder
@@ -73,7 +73,7 @@ RUN if grep -q 'Ubuntu' /etc/os-release; then \
7373
LABEL name="splunk" \
7474
maintainer="[email protected]" \
7575
vendor="splunk" \
76-
version="2.8.1" \
76+
version="3.0.0" \
7777
release="1" \
7878
summary="Simplify the Deployment & Management of Splunk Products on Kubernetes" \
7979
description="The Splunk Operator for Kubernetes (SOK) makes it easy for Splunk Administrators to deploy and operate Enterprise deployments in a Kubernetes infrastructure. Packaged as a container, it uses the operator pattern to manage Splunk-specific custom resources, following best practices to manage all the underlying Kubernetes objects for you."

Makefile

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,12 @@ docker-push: ## Push docker image with the manager.
158158
# Defaults:
159159
# Build Platform: linux/amd64,linux/arm64
160160
# Build Base OS: registry.access.redhat.com/ubi8/ubi-minimal
161-
# Build Base OS Version: 8.10-1755105495
161+
# Build Base OS Version: 8.10-1756195339
162162
# Pass only what is required, the rest will be defaulted
163163
# Setup defaults for build arguments
164164
PLATFORMS ?= linux/amd64,linux/arm64
165165
BASE_IMAGE ?= registry.access.redhat.com/ubi8/ubi-minimal
166-
BASE_IMAGE_VERSION ?= 8.10-1755105495
166+
BASE_IMAGE_VERSION ?= 8.10-1756195339
167167

168168
docker-buildx:
169169
@if [ -z "${IMG}" ]; then \
@@ -174,15 +174,13 @@ docker-buildx:
174174
docker buildx use project-v3-builder; \
175175
if echo "${BASE_IMAGE}" | grep -q "distroless"; then \
176176
DOCKERFILE="Dockerfile.distroless"; \
177-
BUILD_TAG="${IMG}-distroless"; \
178177
else \
179178
DOCKERFILE="Dockerfile"; \
180-
BUILD_TAG="${IMG}"; \
181179
fi; \
182180
docker buildx build --push --platform="${PLATFORMS}" \
183181
--build-arg BASE_IMAGE="${BASE_IMAGE}" \
184182
--build-arg BASE_IMAGE_VERSION="${BASE_IMAGE_VERSION}" \
185-
--tag "$$BUILD_TAG" -f "$$DOCKERFILE" .; \
183+
--tag "${IMG}" -f "$$DOCKERFILE" .; \
186184
- docker buildx rm project-v3-builder || true
187185

188186

@@ -372,7 +370,12 @@ generate-artifacts-cluster: manifests kustomize ## Deploy controller to the K8s
372370
cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
373371
RELATED_IMAGE_SPLUNK_ENTERPRISE=${SPLUNK_ENTERPRISE_IMAGE} WATCH_NAMESPACE=${WATCH_NAMESPACE} SPLUNK_GENERAL_TERMS=${SPLUNK_GENERAL_TERMS} $(KUSTOMIZE) build config/default > release-${VERSION}/splunk-operator-cluster.yaml
374372

375-
generate-artifacts: generate-artifacts-namespace generate-artifacts-cluster
373+
374+
generate-crds: manifests kustomize ## Generate CRD artifacts
375+
mkdir -p release-${VERSION}
376+
$(KUSTOMIZE) build config/crd > release-${VERSION}/splunk-operator-crds.yaml
377+
378+
generate-artifacts: generate-artifacts-namespace generate-artifacts-cluster generate-crds
376379
echo "artifacts generation complete"
377380

378381
#############################

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,8 @@ The [Kubernetes Operator SDK](https://github.com/operator-framework/operator-sdk
5050
must also be installed to build this project.
5151

5252
```
53-
git clone -b v1.31.0 https://github.com/operator-framework/operator-sdk
53+
git clone -b v1.39.0 https://github.com/operator-framework/operator-sdk
5454
cd operator-sdk
55-
make tidy
5655
make install
5756
```
5857

api/v4/ingestorcluster_types.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ type IngestorClusterSpec struct {
5252
// Helper types
5353
// Only SQS as of now
5454
type PushBusSpec struct {
55+
// +kubebuilder:validation:Enum=sqs_smartbus
56+
// +kubebuilder:default=sqs_smartbus
5557
Type string `json:"type"`
5658

5759
SQS SQSSpec `json:"sqs"`
@@ -62,32 +64,46 @@ type SQSSpec struct {
6264

6365
AuthRegion string `json:"authRegion"`
6466

67+
// +kubebuilder:validation:Pattern=`^https://`
6568
Endpoint string `json:"endpoint"`
6669

70+
// +kubebuilder:validation:Pattern=`^https://`
6771
LargeMessageStoreEndpoint string `json:"largeMessageStoreEndpoint"`
6872

73+
// +kubebuilder:validation:Pattern=`^s3://`
6974
LargeMessageStorePath string `json:"largeMessageStorePath"`
7075

7176
DeadLetterQueueName string `json:"deadLetterQueueName"`
7277

78+
// +kubebuilder:validation:Minimum=0
79+
// +kubebuilder:default=3
7380
MaxRetriesPerPart int `json:"maxRetriesPerPart"`
7481

82+
// +kubebuilder:validation:Enum=max_count
83+
// +kubebuilder:default=max_count
7584
RetryPolicy string `json:"retryPolicy"`
7685

86+
// +kubebuilder:validation:Pattern=`^[0-9]+s$`
87+
// +kubebuilder:default="5s"
7788
SendInterval string `json:"sendInterval"`
7889

7990
EncodingFormat string `json:"encodingFormat"`
8091
}
8192

8293
type PipelineConfigSpec struct {
94+
// +kubebuilder:default=false
8395
RemoteQueueRuleset bool `json:"remoteQueueRuleset"`
8496

97+
// +kubebuilder:default=true
8598
RuleSet bool `json:"ruleSet"`
8699

100+
// +kubebuilder:default=false
87101
RemoteQueueTyping bool `json:"remoteQueueTyping"`
88102

103+
// +kubebuilder:default=false
89104
RemoteQueueOutput bool `json:"remoteQueueOutput"`
90105

106+
// +kubebuilder:default=true
91107
Typing bool `json:"typing"`
92108

93109
IndexerPipe bool `json:"indexerPipe"`

bundle.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
77
LABEL operators.operatorframework.io.bundle.package.v1=splunk-operator
88
LABEL operators.operatorframework.io.bundle.channels.v1=stable
99
LABEL operators.operatorframework.io.bundle.channel.default.v1: stable
10-
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.31.0
10+
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.39.0
1111
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
1212
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3
1313

0 commit comments

Comments
 (0)