diff --git a/.env b/.env index 12038fdfc..421c3beec 100644 --- a/.env +++ b/.env @@ -6,4 +6,4 @@ KUBECTL_VERSION=v1.29.1 AZ_CLI_VERSION=2.30.0 EKSCTL_VERSION=v0.143.0 EKS_CLUSTER_K8_VERSION=1.27 -SPLUNK_ENTERPRISE_RELEASE_IMAGE=splunk/splunk:9.1.3 \ No newline at end of file +SPLUNK_ENTERPRISE_RELEASE_IMAGE=splunk/splunk:9.2.2 \ No newline at end of file diff --git a/.github/workflows/build-test-push-workflow.yml b/.github/workflows/build-test-push-workflow.yml index 182891218..e725aa0b5 100644 --- a/.github/workflows/build-test-push-workflow.yml +++ b/.github/workflows/build-test-push-workflow.yml @@ -87,8 +87,12 @@ jobs: - name: Login to Amazon ECR id: login-ecr uses: aws-actions/amazon-ecr-login@v1 - - + - name: Login to Redhat registry + uses: docker/login-action@v3 + with: + registry: registry.redhat.io + username: ${{ secrets.REDHAT_REGISTRY_ID }} + password: ${{ secrets.REDHAT_REGISTRY_PASSWORD }} - name: Make Splunk Operator Image run: | make docker-build IMG=${{ secrets.ECR_REPOSITORY }}/${{ env.SPLUNK_OPERATOR_IMAGE_NAME }}:$GITHUB_SHA @@ -130,6 +134,7 @@ jobs: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_DEFAULT_REGION }} + - name: Login to Amazon ECR uses: aws-actions/amazon-ecr-login@v1 - name: Pull Splunk Operator Image Locally diff --git a/Dockerfile b/Dockerfile index 5c3362aa3..c1659317d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,6 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o manager main.go # Use distroless as minimal base image to package the manager binary # Refer to https://github.com/GoogleContainerTools/distroless for more details FROM registry.access.redhat.com/ubi8/ubi:8.10 - ENV OPERATOR=/manager \ USER_UID=1001 \ USER_NAME=nonroot diff --git a/bundle/manifests/enterprise.splunk.com_clustermanagers.yaml b/bundle/manifests/enterprise.splunk.com_clustermanagers.yaml index b300464f1..ce01dfe73 100644 --- a/bundle/manifests/enterprise.splunk.com_clustermanagers.yaml +++ b/bundle/manifests/enterprise.splunk.com_clustermanagers.yaml @@ -39,6 +39,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -4236,6 +4240,9 @@ spec: needToPushMasterApps: type: boolean type: object + message: + description: Auxillary message describing CR status + type: string phase: description: current phase of the cluster manager enum: diff --git a/bundle/manifests/enterprise.splunk.com_indexerclusters.yaml b/bundle/manifests/enterprise.splunk.com_indexerclusters.yaml index fa9e6710d..6d8656559 100644 --- a/bundle/manifests/enterprise.splunk.com_indexerclusters.yaml +++ b/bundle/manifests/enterprise.splunk.com_indexerclusters.yaml @@ -3826,6 +3826,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -7514,6 +7518,9 @@ spec: maintenance_mode: description: Indicates if the cluster is in maintenance mode. type: boolean + message: + description: Auxillary message describing CR status + type: string namespace_scoped_secret_resource_version: description: Indicates resource version of namespace scoped secret type: string diff --git a/bundle/manifests/enterprise.splunk.com_licensemanagers.yaml b/bundle/manifests/enterprise.splunk.com_licensemanagers.yaml index 68c8046d2..4b32d6a11 100644 --- a/bundle/manifests/enterprise.splunk.com_licensemanagers.yaml +++ b/bundle/manifests/enterprise.splunk.com_licensemanagers.yaml @@ -27,6 +27,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -4099,6 +4103,9 @@ spec: description: App Framework version info for future use type: integer type: object + message: + description: Auxillary message describing CR status + type: string phase: description: current phase of the license manager enum: diff --git a/bundle/manifests/enterprise.splunk.com_monitoringconsoles.yaml b/bundle/manifests/enterprise.splunk.com_monitoringconsoles.yaml index a9feb2d93..c9f654b24 100644 --- a/bundle/manifests/enterprise.splunk.com_monitoringconsoles.yaml +++ b/bundle/manifests/enterprise.splunk.com_monitoringconsoles.yaml @@ -4157,6 +4157,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -8237,6 +8241,9 @@ spec: needToPushMasterApps: type: boolean type: object + message: + description: Auxillary message describing CR status + type: string phase: description: current phase of the monitoring console enum: diff --git a/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml b/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml index bcf164426..6dfe32958 100644 --- a/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml +++ b/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml @@ -4248,6 +4248,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -8388,6 +8392,9 @@ spec: type: string type: object type: array + message: + description: Auxillary message describing CR status + type: string minPeersJoined: description: true if the minimum number of search head cluster members have joined diff --git a/bundle/manifests/enterprise.splunk.com_standalones.yaml b/bundle/manifests/enterprise.splunk.com_standalones.yaml index 883f0ceec..dccb2b257 100644 --- a/bundle/manifests/enterprise.splunk.com_standalones.yaml +++ b/bundle/manifests/enterprise.splunk.com_standalones.yaml @@ -4401,6 +4401,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -8593,6 +8597,9 @@ spec: description: App Framework version info for future use type: integer type: object + message: + description: Auxillary message describing CR status + type: string phase: description: current phase of the standalone instances enum: diff --git a/bundle/manifests/splunk-operator.clusterserviceversion.yaml b/bundle/manifests/splunk-operator.clusterserviceversion.yaml index 270a6eb3f..c626e6db6 100644 --- a/bundle/manifests/splunk-operator.clusterserviceversion.yaml +++ b/bundle/manifests/splunk-operator.clusterserviceversion.yaml @@ -111,7 +111,7 @@ metadata: capabilities: Seamless Upgrades categories: Big Data, Logging & Tracing, Monitoring, Security, AI/Machine Learning containerImage: splunk/splunk-operator@sha256:c4e0d314622699496f675760aad314520d050a66627fdf33e1e21fa28ca85d50 - createdAt: "2024-02-29T18:47:11Z" + createdAt: "2024-07-12T00:58:17Z" description: The Splunk Operator for Kubernetes enables you to quickly and easily deploy Splunk Enterprise on your choice of private or public cloud provider. The Operator simplifies scaling and management of Splunk Enterprise by automating @@ -808,14 +808,14 @@ spec: fieldRef: fieldPath: metadata.annotations['olm.targetNamespaces'] - name: RELATED_IMAGE_SPLUNK_ENTERPRISE - value: docker.io/splunk/splunk:9.1.3 + value: docker.io/splunk/splunk:9.2.2 - name: OPERATOR_NAME value: splunk-operator - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - image: docker.io/splunk/splunk-operator:2.5.2 + image: docker.io/splunk/splunk-operator:2.6.0 imagePullPolicy: Always livenessProbe: httpGet: @@ -853,6 +853,7 @@ spec: name: app-staging securityContext: fsGroup: 1001 + fsGroupChangePolicy: OnRootMismatch runAsNonRoot: true runAsUser: 1001 serviceAccountName: splunk-operator-controller-manager @@ -927,7 +928,7 @@ spec: name: Splunk Inc. url: www.splunk.com relatedImages: - - image: docker.io/splunk/splunk:9.1.3 + - image: docker.io/splunk/splunk:9.2.2 name: splunk-enterprise replaces: splunk-operator.v2.5.1 version: 2.5.2 diff --git a/config/default/kustomization.yaml b/config/default/kustomization.yaml index 5e0a5b0b4..71bb89d95 100644 --- a/config/default/kustomization.yaml +++ b/config/default/kustomization.yaml @@ -124,7 +124,7 @@ patches: - name: WATCH_NAMESPACE value: WATCH_NAMESPACE_VALUE - name: RELATED_IMAGE_SPLUNK_ENTERPRISE - value: docker.io/splunk/splunk:9.1.3 + value: docker.io/splunk/splunk:9.2.2 - name: OPERATOR_NAME value: splunk-operator - name: POD_NAME diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml index d25715d8c..32c8f1312 100644 --- a/config/manager/kustomization.yaml +++ b/config/manager/kustomization.yaml @@ -17,4 +17,4 @@ kind: Kustomization images: - name: controller newName: docker.io/splunk/splunk-operator - newTag: 2.5.2 + newTag: 2.6.0 diff --git a/docs/AppFramework.md b/docs/AppFramework.md index 8802119fa..6e0101aaa 100644 --- a/docs/AppFramework.md +++ b/docs/AppFramework.md @@ -542,7 +542,7 @@ spec: serviceAccountName: splunk-operator containers: - name: splunk-operator - image: "docker.io/splunk/splunk-operator:2.5.2" + image: "docker.io/splunk/splunk-operator:2.6.0" volumeMounts: - mountPath: /opt/splunk/appframework/ name: app-staging diff --git a/docs/ChangeLog.md b/docs/ChangeLog.md index 4cc61cb8f..fa934854c 100644 --- a/docs/ChangeLog.md +++ b/docs/ChangeLog.md @@ -1,5 +1,33 @@ # Splunk Operator for Kubernetes Change Log +## 2.6.0 (2024-07-25) + +* This is the 2.6.0 release. The Splunk Operator for Kubernetes is a supported platform for deploying Splunk Enterprise with the prerequisites and constraints laid out [here](https://github.com/splunk/splunk-operator/blob/main/docs/README.md#prerequisites-for-the-splunk-operator) + +* CSPL-2721 - Modified Splunk Enterprise deployments upgrade path to speed up the process, updated ubi base image. + +* CSPL-2662 - Added troubleshooting documentation. + +* CSPL-2626 - Fixed bug in phase initialization, new CR status field, updated aws-sdk-go. + +* CSPL-2710: Replace clair with trivy for security scanning. + +* CSPL_2598: Fix app package name extraction logic. + +* CSPL_2574: Fix bug in appFramework validation. + +* CSPL_2532: Change fsGroupChangePolicy to `OnRootMismatch` for Splunk Enterprise and Splunk operator. + +### Supported Splunk Version +>| Splunk Version| +>| --- | +>| 9.2.2 | + +### Supported Kubernetes Version +>| Kubernetes Version| +>| --- | +>| 1.25+ | + ## 2.5.2 (2024-02-28) CSPL-2535 security context for init container not set (#1290) diff --git a/docs/Install.md b/docs/Install.md index 1ef6b2644..2c9f5fa7f 100644 --- a/docs/Install.md +++ b/docs/Install.md @@ -7,7 +7,7 @@ If you want to customize the installation of the Splunk Operator, download a copy of the installation YAML locally, and open it in your favorite editor. ``` -wget -O splunk-operator-cluster.yaml https://github.com/splunk/splunk-operator/releases/download/2.5.2/splunk-operator-cluster.yaml +wget -O splunk-operator-cluster.yaml https://github.com/splunk/splunk-operator/releases/download/2.6.0/splunk-operator-cluster.yaml ``` ## Default Installation @@ -17,7 +17,7 @@ Based on the file used Splunk Operator can be installed cluster-wide or namespac By installing `splunk-operator-cluster.yaml` Operator will watch all the namespaces of your cluster for splunk enterprise custom resources ``` -wget -O splunk-operator-cluster.yaml https://github.com/splunk/splunk-operator/releases/download/2.5.2/splunk-operator-cluster.yaml +wget -O splunk-operator-cluster.yaml https://github.com/splunk/splunk-operator/releases/download/2.6.0/splunk-operator-cluster.yaml kubectl apply -f splunk-operator-cluster.yaml ``` @@ -44,10 +44,10 @@ If Splunk Operator is installed clusterwide and user wants to manage multiple na ## Install operator to watch single namespace with restrictive permission -In order to install operator with restrictive permission to watch only single namespace use [splunk-operator-namespace.yaml](https://github.com/splunk/splunk-operator/releases/download/2.5.2/splunk-operator-namespace.yaml). This will create Role and Role-Binding to only watch single namespace. By default operator will be installed in `splunk-operator` namespace, user can edit the file to change the namespace +In order to install operator with restrictive permission to watch only single namespace use [splunk-operator-namespace.yaml](https://github.com/splunk/splunk-operator/releases/download/2.6.0/splunk-operator-namespace.yaml). This will create Role and Role-Binding to only watch single namespace. By default operator will be installed in `splunk-operator` namespace, user can edit the file to change the namespace ``` -wget -O splunk-operator-namespace.yaml https://github.com/splunk/splunk-operator/releases/download/2.5.2/splunk-operator-namespace.yaml +wget -O splunk-operator-namespace.yaml https://github.com/splunk/splunk-operator/releases/download/2.6.0/splunk-operator-namespace.yaml kubectl apply -f splunk-operator-namespace.yaml ``` diff --git a/docs/README.md b/docs/README.md index 1e9958eb5..cb2b1cb30 100644 --- a/docs/README.md +++ b/docs/README.md @@ -113,12 +113,12 @@ For production environments, we are requiring the use of Splunk SmartStore. As a A Kubernetes cluster administrator can install and start the Splunk Operator for specific namespace by running: ``` -kubectl apply -f https://github.com/splunk/splunk-operator/releases/download/2.5.2/splunk-operator-namespace.yaml --server-side --force-conflicts +kubectl apply -f https://github.com/splunk/splunk-operator/releases/download/2.6.0/splunk-operator-namespace.yaml --server-side --force-conflicts ``` A Kubernetes cluster administrator can install and start the Splunk Operator for cluster-wide by running: ``` -kubectl apply -f https://github.com/splunk/splunk-operator/releases/download/2.5.2/splunk-operator-cluster.yaml --server-side --force-conflicts +kubectl apply -f https://github.com/splunk/splunk-operator/releases/download/2.6.0/splunk-operator-cluster.yaml --server-side --force-conflicts ``` The [Advanced Installation Instructions](Install.md) page offers guidance for advanced configurations, including the use of private image registries, installation at cluster scope, and installing the Splunk Operator as a user who is not a Kubernetes administrator. Users of Red Hat OpenShift should review the [Red Hat OpenShift](OpenShift.md) page. diff --git a/docs/SplunkOperatorUpgrade.md b/docs/SplunkOperatorUpgrade.md index 141426e03..9e276ad12 100644 --- a/docs/SplunkOperatorUpgrade.md +++ b/docs/SplunkOperatorUpgrade.md @@ -25,7 +25,7 @@ A Splunk Operator for Kubernetes upgrade might include support for a later versi 1. Download the latest Splunk Operator installation yaml file. ​ ``` -wget -O splunk-operator-namespace.yaml https://github.com/splunk/splunk-operator/releases/download/2.5.2/splunk-operator-namespace.yaml +wget -O splunk-operator-namespace.yaml https://github.com/splunk/splunk-operator/releases/download/2.6.0/splunk-operator-namespace.yaml ``` ​ 2. (Optional) Review the file and update it with your specific customizations used during your install. diff --git a/docs/index.yaml b/docs/index.yaml index 48863a28d..6167c3d88 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -3,14 +3,14 @@ entries: splunk-enterprise: - apiVersion: v2 appVersion: 2.6.0 - created: "2024-07-11T17:39:29.25109-07:00" + created: "2024-07-12T00:58:24.613178629Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator repository: file://splunk-operator/helm-chart/splunk-operator version: 2.6.0 description: A Helm chart for Splunk Enterprise managed by the Splunk Operator - digest: 9bb1ff81c3ffd9ee0492bc4205dc610e659644b75b2719e023370a9c43025d9f + digest: b1a3a42b3f74835b05aa023a480534ba6f43868c1836d1578c52453a01fdb3e0 maintainers: - email: vivekr@splunk.com name: Vivek Reddy @@ -23,7 +23,7 @@ entries: version: 2.6.0 - apiVersion: v2 appVersion: 2.5.2 - created: "2024-07-11T17:39:29.194817-07:00" + created: "2024-07-12T00:58:24.54422365Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -43,7 +43,7 @@ entries: version: 2.5.2 - apiVersion: v2 appVersion: 2.5.1 - created: "2024-07-11T17:39:29.151215-07:00" + created: "2024-07-12T00:58:24.489905165Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -63,7 +63,7 @@ entries: version: 2.5.1 - apiVersion: v2 appVersion: 2.5.0 - created: "2024-07-11T17:39:29.117045-07:00" + created: "2024-07-12T00:58:24.444569349Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -83,7 +83,7 @@ entries: version: 2.5.0 - apiVersion: v2 appVersion: 2.4.0 - created: "2024-07-11T17:39:29.090394-07:00" + created: "2024-07-12T00:58:24.412944843Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -105,7 +105,7 @@ entries: version: 2.4.0 - apiVersion: v2 appVersion: 2.3.0 - created: "2024-07-11T17:39:29.0721-07:00" + created: "2024-07-12T00:58:24.383945661Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -127,7 +127,7 @@ entries: version: 2.3.0 - apiVersion: v2 appVersion: 2.2.1 - created: "2024-07-11T17:39:29.062618-07:00" + created: "2024-07-12T00:58:24.370707068Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -142,7 +142,7 @@ entries: version: 2.2.1 - apiVersion: v2 appVersion: 2.2.0 - created: "2024-07-11T17:39:29.052246-07:00" + created: "2024-07-12T00:58:24.358051227Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -157,7 +157,7 @@ entries: version: 2.2.0 - apiVersion: v2 appVersion: 2.1.0 - created: "2024-07-11T17:39:29.034538-07:00" + created: "2024-07-12T00:58:24.337586215Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -173,9 +173,9 @@ entries: splunk-operator: - apiVersion: v2 appVersion: 2.6.0 - created: "2024-07-11T17:39:29.32975-07:00" + created: "2024-07-12T00:58:24.714184316Z" description: A Helm chart for the Splunk Operator for Kubernetes - digest: 2f57ce7f3df9929393fc0ddf94129634a99819ea436f15cb18b815573caea8a4 + digest: 48482e0cbab6085e4249ca61bd97bb92d7204f761a66e9b42b05170537bb89ef maintainers: - email: vivekr@splunk.com name: Vivek Reddy @@ -188,7 +188,7 @@ entries: version: 2.6.0 - apiVersion: v2 appVersion: 2.5.2 - created: "2024-07-11T17:39:29.321348-07:00" + created: "2024-07-12T00:58:24.70228675Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 7ab3e92f9f9f0a964294b95bf32066edb1b6d5375cd59099c9525f3ca733327a maintainers: @@ -203,7 +203,7 @@ entries: version: 2.5.2 - apiVersion: v2 appVersion: 2.5.1 - created: "2024-07-11T17:39:29.31204-07:00" + created: "2024-07-12T00:58:24.691482146Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 5c90889e175bbfc79cbb7f83bf213de43a46c4d688574d04ff82aa16dcd8681a maintainers: @@ -218,7 +218,7 @@ entries: version: 2.5.1 - apiVersion: v2 appVersion: 2.5.0 - created: "2024-07-11T17:39:29.303243-07:00" + created: "2024-07-12T00:58:24.679378415Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: ed93f8fac421f92cfdbfd043ec27911a07ec7db2c05b4efc3137cef4f2bfca4a maintainers: @@ -233,7 +233,7 @@ entries: version: 2.5.0 - apiVersion: v2 appVersion: 2.4.0 - created: "2024-07-11T17:39:29.294302-07:00" + created: "2024-07-12T00:58:24.667396945Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 9d0377747e46df4bf4b9dbd447c9ff46c926bfe2c66fd07d6d27a61abb31cb42 maintainers: @@ -250,7 +250,7 @@ entries: version: 2.4.0 - apiVersion: v2 appVersion: 2.3.0 - created: "2024-07-11T17:39:29.285553-07:00" + created: "2024-07-12T00:58:24.655729326Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 23e70ec4059bc92920d7d3adce3bff6b8aba0d5eb5d4c0efe225bf3b88d5b274 maintainers: @@ -267,7 +267,7 @@ entries: version: 2.3.0 - apiVersion: v2 appVersion: 2.2.1 - created: "2024-07-11T17:39:29.276228-07:00" + created: "2024-07-12T00:58:24.643469127Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 8868b9ae2ebde0c667b13c97d71d904a31b5a9f2c803b199bc77324f1727e1fd name: splunk-operator @@ -277,7 +277,7 @@ entries: version: 2.2.1 - apiVersion: v2 appVersion: 2.2.0 - created: "2024-07-11T17:39:29.267496-07:00" + created: "2024-07-12T00:58:24.633040143Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 49c72276bd7ff93465b0545d8b0814f684cade7d2cd191b6d73d4c3660bd1fb4 name: splunk-operator @@ -287,7 +287,7 @@ entries: version: 2.2.0 - apiVersion: v2 appVersion: 2.1.0 - created: "2024-07-11T17:39:29.259055-07:00" + created: "2024-07-12T00:58:24.62326607Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 34e5463f8f5442655d05cb616b50391b738a0827b30d8440b4c7fce99a291d9a name: splunk-operator @@ -295,4 +295,4 @@ entries: urls: - https://splunk.github.io/splunk-operator/splunk-operator-1.0.0.tgz version: 1.0.0 -generated: "2024-07-11T17:39:29.024115-07:00" +generated: "2024-07-12T00:58:24.326558338Z" diff --git a/docs/splunk-enterprise-2.6.0.tgz b/docs/splunk-enterprise-2.6.0.tgz index 8a75d9797..52da4908e 100644 Binary files a/docs/splunk-enterprise-2.6.0.tgz and b/docs/splunk-enterprise-2.6.0.tgz differ diff --git a/docs/splunk-operator-2.6.0.tgz b/docs/splunk-operator-2.6.0.tgz index 86dde7b3e..63d97a4ef 100644 Binary files a/docs/splunk-operator-2.6.0.tgz and b/docs/splunk-operator-2.6.0.tgz differ diff --git a/helm-chart/splunk-enterprise/charts/splunk-operator-2.6.0.tgz b/helm-chart/splunk-enterprise/charts/splunk-operator-2.6.0.tgz index 86dde7b3e..63d97a4ef 100644 Binary files a/helm-chart/splunk-enterprise/charts/splunk-operator-2.6.0.tgz and b/helm-chart/splunk-enterprise/charts/splunk-operator-2.6.0.tgz differ diff --git a/helm-chart/splunk-operator/crds/enterprise.splunk.com_clustermanagers.yaml b/helm-chart/splunk-operator/crds/enterprise.splunk.com_clustermanagers.yaml index b300464f1..ce01dfe73 100644 --- a/helm-chart/splunk-operator/crds/enterprise.splunk.com_clustermanagers.yaml +++ b/helm-chart/splunk-operator/crds/enterprise.splunk.com_clustermanagers.yaml @@ -39,6 +39,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -4236,6 +4240,9 @@ spec: needToPushMasterApps: type: boolean type: object + message: + description: Auxillary message describing CR status + type: string phase: description: current phase of the cluster manager enum: diff --git a/helm-chart/splunk-operator/crds/enterprise.splunk.com_indexerclusters.yaml b/helm-chart/splunk-operator/crds/enterprise.splunk.com_indexerclusters.yaml index fa9e6710d..6d8656559 100644 --- a/helm-chart/splunk-operator/crds/enterprise.splunk.com_indexerclusters.yaml +++ b/helm-chart/splunk-operator/crds/enterprise.splunk.com_indexerclusters.yaml @@ -3826,6 +3826,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -7514,6 +7518,9 @@ spec: maintenance_mode: description: Indicates if the cluster is in maintenance mode. type: boolean + message: + description: Auxillary message describing CR status + type: string namespace_scoped_secret_resource_version: description: Indicates resource version of namespace scoped secret type: string diff --git a/helm-chart/splunk-operator/crds/enterprise.splunk.com_licensemanagers.yaml b/helm-chart/splunk-operator/crds/enterprise.splunk.com_licensemanagers.yaml index 68c8046d2..4b32d6a11 100644 --- a/helm-chart/splunk-operator/crds/enterprise.splunk.com_licensemanagers.yaml +++ b/helm-chart/splunk-operator/crds/enterprise.splunk.com_licensemanagers.yaml @@ -27,6 +27,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -4099,6 +4103,9 @@ spec: description: App Framework version info for future use type: integer type: object + message: + description: Auxillary message describing CR status + type: string phase: description: current phase of the license manager enum: diff --git a/helm-chart/splunk-operator/crds/enterprise.splunk.com_monitoringconsoles.yaml b/helm-chart/splunk-operator/crds/enterprise.splunk.com_monitoringconsoles.yaml index a9feb2d93..c9f654b24 100644 --- a/helm-chart/splunk-operator/crds/enterprise.splunk.com_monitoringconsoles.yaml +++ b/helm-chart/splunk-operator/crds/enterprise.splunk.com_monitoringconsoles.yaml @@ -4157,6 +4157,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -8237,6 +8241,9 @@ spec: needToPushMasterApps: type: boolean type: object + message: + description: Auxillary message describing CR status + type: string phase: description: current phase of the monitoring console enum: diff --git a/helm-chart/splunk-operator/crds/enterprise.splunk.com_searchheadclusters.yaml b/helm-chart/splunk-operator/crds/enterprise.splunk.com_searchheadclusters.yaml index bcf164426..6dfe32958 100644 --- a/helm-chart/splunk-operator/crds/enterprise.splunk.com_searchheadclusters.yaml +++ b/helm-chart/splunk-operator/crds/enterprise.splunk.com_searchheadclusters.yaml @@ -4248,6 +4248,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -8388,6 +8392,9 @@ spec: type: string type: object type: array + message: + description: Auxillary message describing CR status + type: string minPeersJoined: description: true if the minimum number of search head cluster members have joined diff --git a/helm-chart/splunk-operator/crds/enterprise.splunk.com_standalones.yaml b/helm-chart/splunk-operator/crds/enterprise.splunk.com_standalones.yaml index 883f0ceec..dccb2b257 100644 --- a/helm-chart/splunk-operator/crds/enterprise.splunk.com_standalones.yaml +++ b/helm-chart/splunk-operator/crds/enterprise.splunk.com_standalones.yaml @@ -4401,6 +4401,10 @@ spec: jsonPath: .metadata.creationTimestamp name: Age type: date + - description: Auxillary message describing CR status + jsonPath: .status.message + name: Message + type: string name: v4 schema: openAPIV3Schema: @@ -8593,6 +8597,9 @@ spec: description: App Framework version info for future use type: integer type: object + message: + description: Auxillary message describing CR status + type: string phase: description: current phase of the standalone instances enum: diff --git a/helm-chart/splunk-operator/values.yaml b/helm-chart/splunk-operator/values.yaml index 5141dd7e0..05469dea1 100644 --- a/helm-chart/splunk-operator/values.yaml +++ b/helm-chart/splunk-operator/values.yaml @@ -3,7 +3,7 @@ splunk-operator: # Splunk image image: - repository: docker.io/splunk/splunk:9.1.3 + repository: docker.io/splunk/splunk:9.2.2 # The kube-rbac-proxy is a small HTTP proxy for a single upstream, that can perform RBAC # authorization against the Kubernetes API. diff --git a/pkg/splunk/enterprise/util.go b/pkg/splunk/enterprise/util.go index 7dd151da0..4a70f0d6b 100644 --- a/pkg/splunk/enterprise/util.go +++ b/pkg/splunk/enterprise/util.go @@ -2145,6 +2145,7 @@ func fetchCurrentCRWithStatusUpdate(ctx context.Context, client splcommon.Contro } // CSPL-2626 - Update error + origCR.(*enterpriseApi.Standalone).Status.Message = "" if (crError != nil) && ((*crError) != nil) { origCR.(*enterpriseApi.Standalone).Status.Message = (*crError).Error() } @@ -2168,6 +2169,7 @@ func fetchCurrentCRWithStatusUpdate(ctx context.Context, client splcommon.Contro } // CSPL-2626 - Update error + origCR.(*enterpriseApi.LicenseManager).Status.Message = "" if (crError != nil) && ((*crError) != nil) { origCR.(*enterpriseApi.LicenseManager).Status.Message = (*crError).Error() } @@ -2182,6 +2184,7 @@ func fetchCurrentCRWithStatusUpdate(ctx context.Context, client splcommon.Contro } // CSPL-2626 - Update error + origCR.(*enterpriseApi.SearchHeadCluster).Status.Message = "" if (crError != nil) && ((*crError) != nil) { origCR.(*enterpriseApi.SearchHeadCluster).Status.Message = (*crError).Error() } @@ -2196,6 +2199,7 @@ func fetchCurrentCRWithStatusUpdate(ctx context.Context, client splcommon.Contro } // CSPL-2626 - Update error + origCR.(*enterpriseApi.IndexerCluster).Status.Message = "" if (crError != nil) && ((*crError) != nil) { origCR.(*enterpriseApi.IndexerCluster).Status.Message = (*crError).Error() } @@ -2219,6 +2223,7 @@ func fetchCurrentCRWithStatusUpdate(ctx context.Context, client splcommon.Contro } // CSPL-2626 - Update error + origCR.(*enterpriseApi.ClusterManager).Status.Message = "" if (crError != nil) && ((*crError) != nil) { origCR.(*enterpriseApi.ClusterManager).Status.Message = (*crError).Error() } @@ -2233,6 +2238,7 @@ func fetchCurrentCRWithStatusUpdate(ctx context.Context, client splcommon.Contro } // CSPL-2626 - Update error + origCR.(*enterpriseApi.MonitoringConsole).Status.Message = "" if (crError != nil) && ((*crError) != nil) { origCR.(*enterpriseApi.MonitoringConsole).Status.Message = (*crError).Error() } diff --git a/test/monitoring_console/manager_monitoring_console_test.go b/test/monitoring_console/manager_monitoring_console_test.go index 42af80f06..291418c14 100644 --- a/test/monitoring_console/manager_monitoring_console_test.go +++ b/test/monitoring_console/manager_monitoring_console_test.go @@ -474,6 +474,10 @@ var _ = Describe("Monitoring Console test", func() { // Check Search Head Pods in Monitoring Console Config Map shPods := testenv.GeneratePodNameSlice(testenv.SearchHeadPod, deployment.GetName(), defaultSHReplicas, false, 0) testenv.VerifyPodsInMCConfigMap(ctx, deployment, testcaseEnvInst, shPods, "SPLUNK_SEARCH_HEAD_URL", mcName, true) + + // Add a sleep here in case MC pod restarts to add peers + time.Sleep(300 * time.Second) + // Check Monitoring console Pod is configured with all search head testenv.VerifyPodsInMCConfigString(ctx, deployment, testcaseEnvInst, shPods, mcName, true, false) @@ -651,6 +655,9 @@ var _ = Describe("Monitoring Console test", func() { // Verify Monitoring Console is Ready and stays in ready state testenv.VerifyMonitoringConsoleReady(ctx, deployment, deployment.GetName(), mc, testcaseEnvInst) + // Adding a sleep, in case MC restarts to update peers list + time.Sleep(300 * time.Second) + // Check Monitoring console Pod is configured with all search head testenv.VerifyPodsInMCConfigString(ctx, deployment, testcaseEnvInst, shPods, mcName, true, false) diff --git a/test/testenv/mcutil.go b/test/testenv/mcutil.go index 36250ae96..284622202 100644 --- a/test/testenv/mcutil.go +++ b/test/testenv/mcutil.go @@ -79,6 +79,7 @@ func CheckMCPodReady(ns string) bool { func GetConfiguredPeers(ns string, mcName string) []string { podName := fmt.Sprintf(MonitoringConsolePod, mcName) var peerList []string + var output []byte if len(podName) > 0 { peerFile := "/opt/splunk/etc/apps/splunk_monitoring_console/local/splunk_monitoring_console_assets.conf" output, err := exec.Command("kubectl", "exec", "-n", ns, podName, "--", "cat", peerFile).Output() @@ -100,7 +101,7 @@ func GetConfiguredPeers(ns string, mcName string) []string { } } } - logf.Log.Info("Peer List found on MC Pod", "MC POD", podName, "Configured Peers", peerList) + logf.Log.Info("Peer List found on MC Pod", "MC POD", podName, "Configured Peers", peerList, "splunk_monitoring_console_assets.conf output", output) return peerList }