diff --git a/.env b/.env index 5789cc271..7235d8385 100644 --- a/.env +++ b/.env @@ -8,4 +8,4 @@ EKSCTL_VERSION=v0.191.0 EKS_CLUSTER_K8_VERSION=1.31 EKS_INSTANCE_TYPE=m5.2xlarge EKS_INSTANCE_TYPE_ARM64=c6g.4xlarge -SPLUNK_ENTERPRISE_RELEASE_IMAGE=splunk/splunk:9.3.2 \ No newline at end of file +SPLUNK_ENTERPRISE_RELEASE_IMAGE=splunk/splunk:9.4.0 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index f208e2185..2bf5c5487 100644 --- a/Dockerfile +++ b/Dockerfile @@ -63,7 +63,7 @@ RUN if grep -q 'Ubuntu' /etc/os-release; then \ LABEL name="splunk" \ maintainer="support@splunk.com" \ vendor="splunk" \ - version="2.6.1" \ + version="2.7.1" \ release="1" \ summary="Simplify the Deployment & Management of Splunk Products on Kubernetes" \ 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." diff --git a/bundle.Dockerfile b/bundle.Dockerfile index 7d88182e9..36ee5a6cd 100644 --- a/bundle.Dockerfile +++ b/bundle.Dockerfile @@ -5,7 +5,8 @@ LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ LABEL operators.operatorframework.io.bundle.package.v1=splunk-operator -LABEL operators.operatorframework.io.bundle.channels.v1=alpha +LABEL operators.operatorframework.io.bundle.channels.v1=stable +LABEL operators.operatorframework.io.bundle.channel.default.v1: stable LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.31.0 LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3 diff --git a/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml b/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml index e9a97c05d..00ef10285 100644 --- a/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml +++ b/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml @@ -5297,6 +5297,247 @@ spec: will be installed on the CM, standalone, search head deployer or license manager instance. type: string + deployerNodeAffinity: + description: Splunk Deployer Node Affinity + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node matches the corresponding matchExpressions; the + node(s) with the highest sum are the most preferred. + items: + description: |- + An empty preferred scheduling term matches all objects with implicit weight 0 + (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). + properties: + preference: + description: A node selector term, associated with the corresponding + weight. + properties: + matchExpressions: + description: A list of node selector requirements by + node's labels. + items: + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by + node's fields. + items: + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + weight: + description: Weight associated with matching the corresponding + nodeSelectorTerm, in the range 1-100. + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: |- + If the affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to an update), the system + may or may not try to eventually evict the pod from its node. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. The + terms are ORed. + items: + description: |- + A null or empty node selector term matches no objects. The requirements of + them are ANDed. + The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements by + node's labels. + items: + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by + node's fields. + items: + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + deployerResourceSpec: + description: Splunk Deployer resource spec + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + This field is immutable. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object etcVolumeStorageConfig: description: Storage configuration for /opt/splunk/etc volume properties: diff --git a/bundle/manifests/splunk-operator.clusterserviceversion.yaml b/bundle/manifests/splunk-operator.clusterserviceversion.yaml index 3ba017dd9..0bcc698a2 100644 --- a/bundle/manifests/splunk-operator.clusterserviceversion.yaml +++ b/bundle/manifests/splunk-operator.clusterserviceversion.yaml @@ -65,7 +65,7 @@ metadata: "metadata": { "name": "clustermanager-sample" }, - "spec": null + "spec": {} }, { "apiVersion": "enterprise.splunk.com/v4", @@ -73,7 +73,7 @@ metadata: "metadata": { "name": "indexercluster-sample" }, - "spec": null + "spec": {} }, { "apiVersion": "enterprise.splunk.com/v4", @@ -81,7 +81,7 @@ metadata: "metadata": { "name": "licensemanager-sample" }, - "spec": null + "spec": {} }, { "apiVersion": "enterprise.splunk.com/v4", @@ -89,7 +89,7 @@ metadata: "metadata": { "name": "monitoringconsole-sample" }, - "spec": null + "spec": {} }, { "apiVersion": "enterprise.splunk.com/v4", @@ -97,7 +97,7 @@ metadata: "metadata": { "name": "searchheadcluster-sample" }, - "spec": null + "spec": {} }, { "apiVersion": "enterprise.splunk.com/v4", @@ -105,22 +105,22 @@ metadata: "metadata": { "name": "standalone-sample" }, - "spec": null + "spec": {} } ] capabilities: Seamless Upgrades categories: Big Data, Logging & Tracing, Monitoring, Security, AI/Machine Learning containerImage: splunk/splunk-operator@sha256:c4e0d314622699496f675760aad314520d050a66627fdf33e1e21fa28ca85d50 - createdAt: "2024-11-21T21:00:57Z" + createdAt: "2025-01-28T17:38:03Z" 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 administrative workflows using Kubernetes best practices. - olm.properties: '[{"type": "olm.maxOpenShiftVersion", "value": "4.15"}]' + olm.properties: '[{"type": "olm.maxOpenShiftVersion", "value": "4.17"}]' operators.operatorframework.io/builder: operator-sdk-v1.31.0 operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 repository: https://github.com/splunk/splunk-operator - name: splunk-operator.v2.7.0 + name: splunk-operator.v2.7.1 namespace: placeholder spec: apiservicedefinitions: {} @@ -218,165 +218,11 @@ spec: - kind: Standalone name: standalones.enterprise.splunk.com version: v2 - description: "# Getting Started with the Splunk Operator for Kubernetes\n\nThe Splunk + 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 administrative workflows using - Kubernetes best practices. \n\nThe Splunk Operator runs as a container, and uses - the Kubernetes [operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) - and [custom resources](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) - objects to create and manage a scalable and sustainable Splunk Enterprise environment.\n\nThis - guide is intended to help new users get up and running with the\nSplunk Operator - for Kubernetes. It is divided into the following sections:\n\n* [Known Issues - for the Splunk Operator](#known-issues-for-the-splunk-operator)\n* [Prerequisites - for the Splunk Operator](#prerequisites-for-the-splunk-operator)\n* [Installing - the Splunk Operator](#installing-the-splunk-operator)\n* [Creating Splunk Enterprise - Deployments](#creating-a-splunk-enterprise-deployment)\n* [Securing Splunk Deployments - in Kubernetes](https://github.com/splunk/splunk-operator/blob/master/docs/Security.md)\n* - [Contacting Support](#contacting-support)\n\n## Support Resources\n\nSPLUNK SUPPORTED: - The Splunk Operator for Kubernetes is a supported method for deploying distributed - Splunk Enterprise environments using containers.\n\nCOMMUNITY DEVELOPED: Splunk - Operator for Kubernetes is an open source product developed by Splunkers with - contributions from the community of partners and customers. This unique product - will be enhanced, maintained and supported by the community, led by Splunkers - with deep subject matter expertise. The primary reason why Splunk is taking this - approach is to push product development closer to those that use and depend upon - it. This direct connection will help us all be more successful and move at a rapid - pace.\n\nIf you're interested in contributing to the SOK open source project, - review the [Contributing to the Project](https://github.com/splunk/splunk-operator/blob/master/docs/CONTRIBUTING.md) - page.\n\n**Community Support & Discussions on\n[Slack](https://splunk-usergroups.slack.com)** - channel #splunk-operator-for-kubernetes\n\n**File Issues or Enhancements in\n[GitHub](https://github.com/splunk/splunk-operator/issues)** - splunk/splunk-operator\n\n\n## Known Issues for the Splunk Operator\n\nReview - the [Change Log](https://github.com/splunk/splunk-operator/blob/master/docs/ChangeLog.md) - page for a history of changes in each release.\n\n## Prerequisites for the Splunk - Operator\n\n### Supported Kubernetes Versions\n\n- Kubernetes, version 1.20+ and - later (x86 64-bit only).\n\nThe Splunk Operator should work with any [CNCF certified - distribution](https://www.cncf.io/certification/software-conformance/) of Kubernetes. - We do not have platform recommendations, but this is a table of platforms that - our developers, customers, and partners have used successfully with the Splunk - Operator.\n\n\n\n\n\n\n
Splunk Development & Testing Platforms - Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE)
- Customer Reported Platforms Microsoft Azure Kubernetes Service (AKS), - Red Hat OpenShift
Partner Tested Platforms HPE Ezmeral
- Other Platforms CNCF certified distribution
\n\n### - Splunk Enterprise Compatibility\nEach Splunk Operator release has specific Splunk - Enterprise compatibility requirements. Before installing or upgrading the Splunk - Operator, review the [Change Log](https://github.com/splunk/splunk-operator/blob/master/docs/ChangeLog.md) - to verify version compatibility with Splunk Enterprise releases.\n\n### Splunk - Apps Installation\n\nApps and add-ons can be installed using the Splunk Operator - by following the instructions given at [Installing Splunk Apps](https://github.com/splunk/splunk-operator/blob/master/docs/Examples.md#installing-splunk-apps). - \ Premium apps such as Enterprise Security and IT Service Intelligence are currently - not supported.\n\n\n### Docker requirements\nThe Splunk Operator requires these - docker images to be present or available to your Kubernetes cluster:\n\n* `splunk/splunk-operator`: - The Splunk Operator image built by this repository or the [official release](https://hub.docker.com/r/splunk/splunk-operator) - (1.1.0 or later)\n* `splunk/splunk:`: The [Splunk Enterprise image](https://github.com/splunk/docker-splunk) - (8.2.6 or later)\n\nAll of the Splunk Enterprise images are publicly available - on [Docker Hub](https://hub.docker.com/). If your cluster does not have access - to pull from Docker Hub, see the [Required Images Documentation](Images.md) page.\n\nReview - the [Change Log](ChangeLog.md) page for a history of changes and Splunk Enterprise - compatibility for each release.\n\n### Hardware Resources Requirements\nThe resource - guidelines for running production Splunk Enterprise instances in pods through - the Splunk Operator are the same as running Splunk Enterprise natively on a supported - operating system and file system. Refer to the Splunk Enterprise [Reference Hardware - documentation](https://docs.splunk.com/Documentation/Splunk/latest/Capacity/Referencehardware) - for additional details. We would also recommend following the same guidance on - [Splunk Enterprise for disabling Transparent Huge Pages (THP)](https://docs.splunk.com/Documentation/Splunk/latest/ReleaseNotes/SplunkandTHP) - for the nodes in your Kubernetes cluster. Please be aware that this may impact - performance of other non-Splunk workloads.\n\n#### Minimum Reference Hardware\nBased - on Splunk Enterprise [Reference Hardware documentation](https://docs.splunk.com/Documentation/Splunk/latest/Capacity/Referencehardware), - a summary of the minimum reference hardware requirements is given below.\n\n| - Standalone | Search Head / Search Head Cluster | Indexer Cluster |\n| ---------- - | ------- | ------- |\n| _Each Standalone Pod: 12 Physical CPU Cores or 24 vCPU - at 2Ghz or greater per core, 12GB RAM._| _Each Search Head Pod: 16 Physical CPU - Cores or 32 vCPU at 2Ghz or greater per core, 12GB RAM._| _Each Indexer Pod: 12 - Physical CPU cores, or 24 vCPU at 2GHz or greater per core, 12GB RAM._ |\n\n\n#### - _Using Kubernetes Quality of Service Classes_\n\nIn addition to the guidelines - provided in the reference hardware, [Kubernetes Quality of Service Classes](https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/) - \ can be used to configure CPU/Mem resources allocations that map to your _service - level objectives_. For further information on utilizing Kubernetes Quality of - Service (QoS) classes, see the table below:\n\n\n| QoS | Summary| Description - |\n| ---------- | ------- | ------- |\n| _Guaranteed_ | _CPU/Mem ```requests``` - = CPU/Mem ```limits```_ | _When the CPU and memory ```requests``` and ```limits``` - values are equal, the pod is given a QoS class of Guaranteed. This level of service - is recommended for Splunk Enterprise ___production environments___._ |\n| _Burstable_ - | _CPU/Mem ```requests``` < CPU/Mem ```limits```_ | _When the CPU and memory - \ ```requests``` value is set lower than the ```limits``` the pod is given a QoS - class of Burstable. This level of service is useful in a user acceptance testing - ___(UAT) environment___, where the pods run with minimum resources, and Kubernetes - allocates additional resources depending on usage._|\n| _BestEffort_ | _No CPU/Mem - ```requests``` or ```limits``` are set_ | _When the ```requests``` or ```limits``` - values are not set, the pod is given a QoS class of BestEffort. This level of - service is sufficient for ___testing, or a small development task___._ |\n\nExamples - on how to implement these QoS are given at [Examples of Guaranteed and Burstable - QoS](CustomResources.md#examples-of-guaranteed-and-burstable-qos) section.\n\n\n### - Storage guidelines\nThe Splunk Operator uses Kubernetes [Persistent Volume Claims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) - to store all of your Splunk Enterprise configuration (\"$SPLUNK_HOME/etc\" path) - and event (\"$SPLUNK_HOME/var\" path) data. If one of the underlying machines - fail, Kubernetes will automatically try to recover by restarting the Splunk Enterprise - pods on another machine that is able to reuse the same data volumes. This minimizes - the maintenance burden on your operations team by reducing the impact of common - hardware failures to the equivalent of a service restart. \nThe use of Persistent - Volume Claims requires that your cluster is configured to support one or more - Kubernetes persistent [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/). - See the [Setting Up a Persistent Storage for Splunk](StorageClass.md) page for - more\ninformation.\n\n### What Storage Type To Use?\n\nThe Kubernetes infrastructure - must have access to storage that meets or exceeds the recommendations provided - in the Splunk Enterprise storage type recommendations at [Reference Hardware documentation - - what storage type to use for a given role?](https://docs.splunk.com/Documentation/Splunk/latest/Capacity/Referencehardware#What_storage_type_should_I_use_for_a_role.3F) - In summary, Indexers with SmartStore need NVMe or SSD storage to provide the necessary - IOPs for a successful Splunk Enterprise environment.\n\n\n### Splunk SmartStore - Required\nFor production environments, we are requiring the use of Splunk SmartStore. - As a Splunk Enterprise deployment's data volume increases, demand for storage - typically outpaces demand for compute resources. [Splunk's SmartStore Feature](https://docs.splunk.com/Documentation/Splunk/latest/Indexer/AboutSmartStore) - allows you to manage your indexer storage and compute resources in a ___cost-effective___ - manner by scaling those resources separately. SmartStore utilizes a fast storage - cache on each indexer node to keep recent data locally available for search and - keep other data in a remote object store. Look into the [SmartStore Resource Guide](https://github.com/splunk/splunk-operator/blob/master/docs/SmartStore.md) - document for configuring and using SmartStore through operator.\n\n## Installing - the Splunk Operator\n\nA Kubernetes cluster administrator can install and start - the Splunk Operator by running:\n```\nkubectl apply -f https://github.com/splunk/splunk-operator/releases/download/1.1.0/splunk-operator-install.yaml\n```\n\nThe - [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](https://github.com/splunk/splunk-operator/blob/master/docs/OpenShift.md) - page.\n\n*Note: We recommended that the Splunk Enterprise Docker image is copied - to a private registry, or directly onto your Kubernetes workers before creating - large Splunk Enterprise deployments. See the [Required Images Documentation](Images.md) - page, and the [Advanced Installation Instructions](https://github.com/splunk/splunk-operator/blob/master/docs/Install.md) - page for guidance on working with copies of the Docker images.*\n\nAfter the Splunk - Operator starts, you'll see a single pod running within your current namespace:\n```\n$ - kubectl get pods\nNAME READY STATUS RESTARTS - \ AGE\nsplunk-operator-75f5d4d85b-8pshn 1/1 Running 0 5s\n```\n## - Upgrading the Splunk Operator\n\nFor information on upgrading the Splunk Operator, - see the [How to upgrade Splunk Operator and Splunk Enterprise Deployments](https://github.com/splunk/splunk-operator/blob/master/docs/SplunkOperatorUpgrade.md) - page.\n\n## Creating a Splunk Enterprise deployment\n\nThe `Standalone` custom - resource is used to create a single instance deployment of Splunk Enterprise. - For example:\n\n1. Run the command to create a deployment named “s1”:\n\n\n```yaml\ncat - <\n Splunk Development & Testing Platforms - Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE) \n - Customer Reported Platforms Microsoft Azure Kubernetes Service (AKS), - Red Hat OpenShift \n Partner Tested Platforms HPE Ezmeral\n - Other Platforms CNCF certified distribution\n\n\n### - Splunk Enterprise Compatibility\nEach Splunk Operator release has specific Splunk - Enterprise compatibility requirements. Before installing or upgrading the Splunk - Operator, review the [Change Log](https://github.com/splunk/splunk-operator/blob/master/docs/ChangeLog.md) - to verify version compatibility with Splunk Enterprise releases.\n\n### Splunk - Apps Installation\n\nApps and add-ons can be installed using the Splunk Operator - by following the instructions given at [Installing Splunk Apps](https://github.com/splunk/splunk-operator/blob/master/docs/Examples.md#installing-splunk-apps). - \ Premium apps such as Enterprise Security and IT Service Intelligence are currently - not supported.\n\n\n### Docker requirements\nThe Splunk Operator requires these - docker images to be present or available to your Kubernetes cluster:\n\n* `splunk/splunk-operator`: - The Splunk Operator image built by this repository or the [official release](https://hub.docker.com/r/splunk/splunk-operator) - (1.1.0 or later)\n* `splunk/splunk:`: The [Splunk Enterprise image](https://github.com/splunk/docker-splunk) - (8.2.6 or later)\n\nAll of the Splunk Enterprise images are publicly available - on [Docker Hub](https://hub.docker.com/). If your cluster does not have access - to pull from Docker Hub, see the [Required Images Documentation](Images.md) page.\n\nReview - the [Change Log](ChangeLog.md) page for a history of changes and Splunk Enterprise - compatibility for each release.\n\n### Hardware Resources Requirements\nThe resource - guidelines for running production Splunk Enterprise instances in pods through - the Splunk Operator are the same as running Splunk Enterprise natively on a supported - operating system and file system. Refer to the Splunk Enterprise [Reference Hardware - documentation](https://docs.splunk.com/Documentation/Splunk/latest/Capacity/Referencehardware) - for additional details. We would also recommend following the same guidance on - [Splunk Enterprise for disabling Transparent Huge Pages (THP)](https://docs.splunk.com/Documentation/Splunk/latest/ReleaseNotes/SplunkandTHP) - for the nodes in your Kubernetes cluster. Please be aware that this may impact - performance of other non-Splunk workloads.\n\n#### Minimum Reference Hardware\nBased - on Splunk Enterprise [Reference Hardware documentation](https://docs.splunk.com/Documentation/Splunk/latest/Capacity/Referencehardware), - a summary of the minimum reference hardware requirements is given below.\n\n| - Standalone | Search Head / Search Head Cluster | Indexer Cluster |\n| ---------- - | ------- | ------- |\n| _Each Standalone Pod: 12 Physical CPU Cores or 24 vCPU - at 2Ghz or greater per core, 12GB RAM._| _Each Search Head Pod: 16 Physical CPU - Cores or 32 vCPU at 2Ghz or greater per core, 12GB RAM._| _Each Indexer Pod: 12 - Physical CPU cores, or 24 vCPU at 2GHz or greater per core, 12GB RAM._ |\n\n\n#### - _Using Kubernetes Quality of Service Classes_\n\nIn addition to the guidelines - provided in the reference hardware, [Kubernetes Quality of Service Classes](https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/) - \ can be used to configure CPU/Mem resources allocations that map to your _service - level objectives_. For further information on utilizing Kubernetes Quality of - Service (QoS) classes, see the table below:\n\n\n| QoS | Summary| Description - |\n| ---------- | ------- | ------- |\n| _Guaranteed_ | _CPU/Mem ```requests``` - = CPU/Mem ```limits```_ | _When the CPU and memory ```requests``` and ```limits``` - values are equal, the pod is given a QoS class of Guaranteed. This level of service - is recommended for Splunk Enterprise ___production environments___._ |\n| _Burstable_ - | _CPU/Mem ```requests``` < CPU/Mem ```limits```_ | _When the CPU and memory - \ ```requests``` value is set lower than the ```limits``` the pod is given a QoS - class of Burstable. This level of service is useful in a user acceptance testing - ___(UAT) environment___, where the pods run with minimum resources, and Kubernetes - allocates additional resources depending on usage._|\n| _BestEffort_ | _No CPU/Mem - ```requests``` or ```limits``` are set_ | _When the ```requests``` or ```limits``` - values are not set, the pod is given a QoS class of BestEffort. This level of - service is sufficient for ___testing, or a small development task___._ |\n\nExamples - on how to implement these QoS are given at [Examples of Guaranteed and Burstable - QoS](CustomResources.md#examples-of-guaranteed-and-burstable-qos) section.\n\n\n### - Storage guidelines\nThe Splunk Operator uses Kubernetes [Persistent Volume Claims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) - to store all of your Splunk Enterprise configuration (\"$SPLUNK_HOME/etc\" path) - and event (\"$SPLUNK_HOME/var\" path) data. If one of the underlying machines - fail, Kubernetes will automatically try to recover by restarting the Splunk Enterprise - pods on another machine that is able to reuse the same data volumes. This minimizes - the maintenance burden on your operations team by reducing the impact of common - hardware failures to the equivalent of a service restart. \nThe use of Persistent - Volume Claims requires that your cluster is configured to support one or more - Kubernetes persistent [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/). - See the [Setting Up a Persistent Storage for Splunk](StorageClass.md) page for - more\ninformation.\n\n### What Storage Type To Use?\n\nThe Kubernetes infrastructure - must have access to storage that meets or exceeds the recommendations provided - in the Splunk Enterprise storage type recommendations at [Reference Hardware documentation - - what storage type to use for a given role?](https://docs.splunk.com/Documentation/Splunk/latest/Capacity/Referencehardware#What_storage_type_should_I_use_for_a_role.3F) - In summary, Indexers with SmartStore need NVMe or SSD storage to provide the necessary - IOPs for a successful Splunk Enterprise environment.\n\n\n### Splunk SmartStore - Required\nFor production environments, we are requiring the use of Splunk SmartStore. - As a Splunk Enterprise deployment's data volume increases, demand for storage - typically outpaces demand for compute resources. [Splunk's SmartStore Feature](https://docs.splunk.com/Documentation/Splunk/latest/Indexer/AboutSmartStore) - allows you to manage your indexer storage and compute resources in a ___cost-effective___ - manner by scaling those resources separately. SmartStore utilizes a fast storage - cache on each indexer node to keep recent data locally available for search and - keep other data in a remote object store. Look into the [SmartStore Resource Guide](https://github.com/splunk/splunk-operator/blob/master/docs/SmartStore.md) - document for configuring and using SmartStore through operator.\n\n## Installing - the Splunk Operator\n\nA Kubernetes cluster administrator can install and start - the Splunk Operator by running:\n```\nkubectl apply -f https://github.com/splunk/splunk-operator/releases/download/1.1.0/splunk-operator-install.yaml\n```\n\nThe - [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](https://github.com/splunk/splunk-operator/blob/master/docs/OpenShift.md) - page.\n\n*Note: We recommended that the Splunk Enterprise Docker image is copied - to a private registry, or directly onto your Kubernetes workers before creating - large Splunk Enterprise deployments. See the [Required Images Documentation](Images.md) - page, and the [Advanced Installation Instructions](https://github.com/splunk/splunk-operator/blob/master/docs/Install.md) - page for guidance on working with copies of the Docker images.*\n\nAfter the Splunk - Operator starts, you'll see a single pod running within your current namespace:\n```\n$ - kubectl get pods\nNAME READY STATUS RESTARTS - \ AGE\nsplunk-operator-75f5d4d85b-8pshn 1/1 Running 0 5s\n```\n## - Upgrading the Splunk Operator\n\nFor information on upgrading the Splunk Operator, - see the [How to upgrade Splunk Operator and Splunk Enterprise Deployments](https://github.com/splunk/splunk-operator/blob/master/docs/SplunkOperatorUpgrade.md) - page.\n\n## Creating a Splunk Enterprise deployment\n\nThe `Standalone` custom - resource is used to create a single instance deployment of Splunk Enterprise. - For example:\n\n1. Run the command to create a deployment named “s1”:\n\n\n```yaml\ncat - <| Splunk Version| +>| --- | +>| 9.4.0 | + +### Supported Kubernetes Version + +>| Kubernetes Version| +>| --- | +>| 1.31+ | + ## 2.7.0 (2024-12-04) * This is the 2.7.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) diff --git a/docs/Install.md b/docs/Install.md index 832e953fe..f79c321c8 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.7.0/splunk-operator-cluster.yaml +wget -O splunk-operator-cluster.yaml https://github.com/splunk/splunk-operator/releases/download/2.7.1/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.7.0/splunk-operator-cluster.yaml +wget -O splunk-operator-cluster.yaml https://github.com/splunk/splunk-operator/releases/download/2.7.1/splunk-operator-cluster.yaml kubectl apply -f splunk-operator-cluster.yaml ``` @@ -31,7 +31,7 @@ If Splunk Operator is installed clusterwide and user wants to manage multiple na - name: WATCH_NAMESPACE value: "namespace1,namespace2" - name: RELATED_IMAGE_SPLUNK_ENTERPRISE - value: splunk/splunk:9.3.2 + value: splunk/splunk:9.4.0 - name: OPERATOR_NAME value: splunk-operator - name: POD_NAME @@ -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.7.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. +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.7.1/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.7.0/splunk-operator-namespace.yaml +wget -O splunk-operator-namespace.yaml https://github.com/splunk/splunk-operator/releases/download/2.7.1/splunk-operator-namespace.yaml kubectl apply -f splunk-operator-namespace.yaml ``` @@ -68,7 +68,7 @@ If you are using a private registry for the Docker images, edit `deployment` `sp - name: WATCH_NAMESPACE value: "namespace1,namespace2" - name: RELATED_IMAGE_SPLUNK_ENTERPRISE - value: splunk/splunk:9.3.2 + value: splunk/splunk:9.4.0 - name: OPERATOR_NAME value: splunk-operator - name: POD_NAME @@ -86,14 +86,14 @@ As part of enhancing security and reducing the attack surface of the Splunk Oper 1. **Image Tag**: - The distroless image can be identified by the `-distroless` suffix in its tag. - - Example: `splunk/splunk-operator:2.7.0-distroless` + - Example: `splunk/splunk-operator:2.7.1-distroless` 2. **Modifying the Deployment**: - To use the distroless image, update the `manager` container image in the `splunk-operator-controller-manager` deployment as follows: ```yaml # Replace this with the distroless image name - image: splunk/splunk-operator:2.7.0-distroless + image: splunk/splunk-operator:2.7.1-distroless ``` 3. **Private Registry**: @@ -130,7 +130,7 @@ Since distroless images do not contain a shell, debugging may require additional spec: containers: - name: manager - image: splunk/splunk-operator:2.7.0-distroless + image: splunk/splunk-operator:2.7.1-distroless env: - name: WATCH_NAMESPACE value: "" diff --git a/docs/MultisiteExamples.md b/docs/MultisiteExamples.md index 752248d42..a7b009080 100644 --- a/docs/MultisiteExamples.md +++ b/docs/MultisiteExamples.md @@ -148,7 +148,7 @@ metadata: - enterprise.splunk.com/delete-pvc spec: replicas: 3 - image: "splunk/splunk:9.3.2" + image: "splunk/splunk:9.4.0" clusterManagerRef: name: example defaults: |- diff --git a/docs/README.md b/docs/README.md index 05b31b80f..221305fe4 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.7.0/splunk-operator-namespace.yaml --server-side --force-conflicts +kubectl apply -f https://github.com/splunk/splunk-operator/releases/download/2.7.1/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.7.0/splunk-operator-cluster.yaml --server-side --force-conflicts +kubectl apply -f https://github.com/splunk/splunk-operator/releases/download/2.7.1/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 de6aa0aa7..7a8457b81 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.7.0/splunk-operator-namespace.yaml +wget -O splunk-operator-namespace.yaml https://github.com/splunk/splunk-operator/releases/download/2.7.1/splunk-operator-namespace.yaml ``` ​ 2. (Optional) Review the file and update it with your specific customizations used during your install. @@ -48,7 +48,7 @@ If a Splunk Operator release changes the custom resource (CRD) API version, the ### Upgrading Splunk Enterprise Docker Image with the Operator Upgrade -Splunk Operator follows the upgrade path steps mentioned in [Splunk documentation](https://docs.splunk.com/Documentation/Splunk/9.3.2/Installation/HowtoupgradeSplunk). If a Splunk Operator release includes an updated Splunk Enterprise Docker image, the operator upgrade will also initiate pod restart using the latest Splunk Enterprise Docker image. To follow the best practices described under the [General Process to Upgrade the Splunk Enterprise], a recommeded upgrade path is followed while initiating pod restarts of different Splunk Instances. At each step, if a particular CR instance exists, a certain flow is imposed to ensure that each instance is updated in the correct order. After an instance is upgraded, the Operator verifies if the upgrade was successful and all the components are working as expected. If any unexpected behaviour is detected, the process is terminated. +Splunk Operator follows the upgrade path steps mentioned in [Splunk documentation](https://docs.splunk.com/Documentation/Splunk/9.4.0/Installation/HowtoupgradeSplunk). If a Splunk Operator release includes an updated Splunk Enterprise Docker image, the operator upgrade will also initiate pod restart using the latest Splunk Enterprise Docker image. To follow the best practices described under the [General Process to Upgrade the Splunk Enterprise], a recommeded upgrade path is followed while initiating pod restarts of different Splunk Instances. At each step, if a particular CR instance exists, a certain flow is imposed to ensure that each instance is updated in the correct order. After an instance is upgraded, the Operator verifies if the upgrade was successful and all the components are working as expected. If any unexpected behaviour is detected, the process is terminated. If a Splunk Operator release changes the custom resource (CRD) API version, the administrator is responsible for updating their Custom Resource specification to reference the latest CRD API version. @@ -104,7 +104,7 @@ Edit `deployment` `splunk-operator-controller-manager-` in `splunk-operat - name: WATCH_NAMESPACE value: "splunk-operator" - name: RELATED_IMAGE_SPLUNK_ENTERPRISE - value: splunk/splunk:9.3.2 + value: splunk/splunk:9.4.0 - name: OPERATOR_NAME value: splunk-operator - name: POD_NAME @@ -139,7 +139,7 @@ To verify that a new Splunk Enterprise Docker image was applied to a pod, you ca ​ ```bash kubectl get pods splunk--monitoring-console-0 -o yaml | grep -i image -image: splunk/splunk:9.3.2 +image: splunk/splunk:9.4.0 imagePullPolicy: IfNotPresent ``` ## Splunk Enterprise Cluster upgrade diff --git a/docs/index.yaml b/docs/index.yaml index bba75b817..82c7b3314 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -1,9 +1,29 @@ apiVersion: v1 entries: splunk-enterprise: + - apiVersion: v2 + appVersion: 2.7.1 + created: "2025-01-28T17:38:06.771205783Z" + dependencies: + - condition: splunk-operator.enabled + name: splunk-operator + repository: file://splunk-operator/helm-chart/splunk-operator + version: 2.7.1 + description: A Helm chart for Splunk Enterprise managed by the Splunk Operator + digest: 08b5158f16243f9494ac9eae16137be7109669d3606707c3939faff3225cae67 + maintainers: + - email: vivekr@splunk.com + name: Vivek Reddy + - email: akondur@splunk.com + name: Arjun Kondur + name: splunk-enterprise + type: application + urls: + - https://splunk.github.io/splunk-operator/splunk-enterprise-2.7.1.tgz + version: 2.7.1 - apiVersion: v2 appVersion: 2.7.0 - created: "2024-11-21T20:21:25.69474524Z" + created: "2025-01-28T17:38:06.678009202Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -23,7 +43,7 @@ entries: version: 2.7.0 - apiVersion: v2 appVersion: 2.6.1 - created: "2024-11-21T20:21:25.610402359Z" + created: "2025-01-28T17:38:06.59408774Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -43,7 +63,7 @@ entries: version: 2.6.1 - apiVersion: v2 appVersion: 2.6.0 - created: "2024-11-21T20:21:25.529608584Z" + created: "2025-01-28T17:38:06.520303674Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -63,7 +83,7 @@ entries: version: 2.6.0 - apiVersion: v2 appVersion: 2.5.2 - created: "2024-11-21T20:21:25.462074454Z" + created: "2025-01-28T17:38:06.452039451Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -83,7 +103,7 @@ entries: version: 2.5.2 - apiVersion: v2 appVersion: 2.5.1 - created: "2024-11-21T20:21:25.408481184Z" + created: "2025-01-28T17:38:06.393298113Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -103,7 +123,7 @@ entries: version: 2.5.1 - apiVersion: v2 appVersion: 2.5.0 - created: "2024-11-21T20:21:25.361678311Z" + created: "2025-01-28T17:38:06.349859837Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -123,7 +143,7 @@ entries: version: 2.5.0 - apiVersion: v2 appVersion: 2.4.0 - created: "2024-11-21T20:21:25.326748255Z" + created: "2025-01-28T17:38:06.315518582Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -145,7 +165,7 @@ entries: version: 2.4.0 - apiVersion: v2 appVersion: 2.3.0 - created: "2024-11-21T20:21:25.303514858Z" + created: "2025-01-28T17:38:06.29142574Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -167,7 +187,7 @@ entries: version: 2.3.0 - apiVersion: v2 appVersion: 2.2.1 - created: "2024-11-21T20:21:25.290479742Z" + created: "2025-01-28T17:38:06.278188555Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -182,7 +202,7 @@ entries: version: 2.2.1 - apiVersion: v2 appVersion: 2.2.0 - created: "2024-11-21T20:21:25.27754399Z" + created: "2025-01-28T17:38:06.266940572Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -197,7 +217,7 @@ entries: version: 2.2.0 - apiVersion: v2 appVersion: 2.1.0 - created: "2024-11-21T20:21:25.256990017Z" + created: "2025-01-28T17:38:06.247038813Z" dependencies: - condition: splunk-operator.enabled name: splunk-operator @@ -211,9 +231,24 @@ entries: - https://splunk.github.io/splunk-operator/splunk-enterprise-1.0.0.tgz version: 1.0.0 splunk-operator: + - apiVersion: v2 + appVersion: 2.7.1 + created: "2025-01-28T17:38:06.907065526Z" + description: A Helm chart for the Splunk Operator for Kubernetes + digest: 5b94b043cb3e458384ced226aef0392cec03beef37ad8a752b21dec95ce20fd3 + maintainers: + - email: vivekr@splunk.com + name: Vivek Reddy + - email: akondur@splunk.com + name: Arjun Kondur + name: splunk-operator + type: application + urls: + - https://splunk.github.io/splunk-operator/splunk-operator-2.7.1.tgz + version: 2.7.1 - apiVersion: v2 appVersion: 2.7.0 - created: "2024-11-21T20:21:25.819109754Z" + created: "2025-01-28T17:38:06.895730013Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: e0862798c88960774bcdcd62f05aa54f43eef0d6d6bcb09737e2e59b137f7cb5 maintainers: @@ -228,7 +263,7 @@ entries: version: 2.7.0 - apiVersion: v2 appVersion: 2.6.1 - created: "2024-11-21T20:21:25.807976355Z" + created: "2025-01-28T17:38:06.884901395Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 05e12835582cd201dafe3e9db06854f31115235e030efbc627c571dd25f87c8d maintainers: @@ -243,7 +278,7 @@ entries: version: 2.6.1 - apiVersion: v2 appVersion: 2.6.0 - created: "2024-11-21T20:21:25.795875933Z" + created: "2025-01-28T17:38:06.873127789Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: b6dcfa4ed9de85817d7a84fa83aeb573b80c64136b80f9c6089a88d4f6efafff maintainers: @@ -258,7 +293,7 @@ entries: version: 2.6.0 - apiVersion: v2 appVersion: 2.5.2 - created: "2024-11-21T20:21:25.783988892Z" + created: "2025-01-28T17:38:06.86060273Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 7ab3e92f9f9f0a964294b95bf32066edb1b6d5375cd59099c9525f3ca733327a maintainers: @@ -273,7 +308,7 @@ entries: version: 2.5.2 - apiVersion: v2 appVersion: 2.5.1 - created: "2024-11-21T20:21:25.772066842Z" + created: "2025-01-28T17:38:06.848936626Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 5c90889e175bbfc79cbb7f83bf213de43a46c4d688574d04ff82aa16dcd8681a maintainers: @@ -288,7 +323,7 @@ entries: version: 2.5.1 - apiVersion: v2 appVersion: 2.5.0 - created: "2024-11-21T20:21:25.759832962Z" + created: "2025-01-28T17:38:06.836997802Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: ed93f8fac421f92cfdbfd043ec27911a07ec7db2c05b4efc3137cef4f2bfca4a maintainers: @@ -303,7 +338,7 @@ entries: version: 2.5.0 - apiVersion: v2 appVersion: 2.4.0 - created: "2024-11-21T20:21:25.747760901Z" + created: "2025-01-28T17:38:06.825353252Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 9d0377747e46df4bf4b9dbd447c9ff46c926bfe2c66fd07d6d27a61abb31cb42 maintainers: @@ -320,7 +355,7 @@ entries: version: 2.4.0 - apiVersion: v2 appVersion: 2.3.0 - created: "2024-11-21T20:21:25.737386892Z" + created: "2025-01-28T17:38:06.814752293Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 23e70ec4059bc92920d7d3adce3bff6b8aba0d5eb5d4c0efe225bf3b88d5b274 maintainers: @@ -337,7 +372,7 @@ entries: version: 2.3.0 - apiVersion: v2 appVersion: 2.2.1 - created: "2024-11-21T20:21:25.726892331Z" + created: "2025-01-28T17:38:06.8025203Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 8868b9ae2ebde0c667b13c97d71d904a31b5a9f2c803b199bc77324f1727e1fd name: splunk-operator @@ -347,7 +382,7 @@ entries: version: 2.2.1 - apiVersion: v2 appVersion: 2.2.0 - created: "2024-11-21T20:21:25.715472838Z" + created: "2025-01-28T17:38:06.790355721Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 49c72276bd7ff93465b0545d8b0814f684cade7d2cd191b6d73d4c3660bd1fb4 name: splunk-operator @@ -357,7 +392,7 @@ entries: version: 2.2.0 - apiVersion: v2 appVersion: 2.1.0 - created: "2024-11-21T20:21:25.705328559Z" + created: "2025-01-28T17:38:06.780138977Z" description: A Helm chart for the Splunk Operator for Kubernetes digest: 34e5463f8f5442655d05cb616b50391b738a0827b30d8440b4c7fce99a291d9a name: splunk-operator @@ -365,4 +400,4 @@ entries: urls: - https://splunk.github.io/splunk-operator/splunk-operator-1.0.0.tgz version: 1.0.0 -generated: "2024-11-21T20:21:25.246519808Z" +generated: "2025-01-28T17:38:06.236135193Z" diff --git a/docs/splunk-enterprise-2.7.1.tgz b/docs/splunk-enterprise-2.7.1.tgz new file mode 100644 index 000000000..630a6b7cf Binary files /dev/null and b/docs/splunk-enterprise-2.7.1.tgz differ diff --git a/docs/splunk-operator-2.7.1.tgz b/docs/splunk-operator-2.7.1.tgz new file mode 100644 index 000000000..87a284509 Binary files /dev/null and b/docs/splunk-operator-2.7.1.tgz differ diff --git a/helm-chart/splunk-enterprise/Chart.yaml b/helm-chart/splunk-enterprise/Chart.yaml index b6bf1c6ec..38fbf8bee 100644 --- a/helm-chart/splunk-enterprise/Chart.yaml +++ b/helm-chart/splunk-enterprise/Chart.yaml @@ -15,13 +15,13 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 2.7.0 +version: 2.7.1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "2.7.0" +appVersion: "2.7.1" maintainers: - name: Vivek Reddy email: vivekr@splunk.com @@ -29,6 +29,6 @@ maintainers: email: akondur@splunk.com dependencies: - name: splunk-operator - version: "2.7.0" + version: "2.7.1" repository: "file://splunk-operator/helm-chart/splunk-operator" condition: splunk-operator.enabled diff --git a/helm-chart/splunk-enterprise/charts/splunk-operator-2.7.1.tgz b/helm-chart/splunk-enterprise/charts/splunk-operator-2.7.1.tgz new file mode 100644 index 000000000..87a284509 Binary files /dev/null and b/helm-chart/splunk-enterprise/charts/splunk-operator-2.7.1.tgz differ diff --git a/helm-chart/splunk-operator/Chart.yaml b/helm-chart/splunk-operator/Chart.yaml index fc8765b92..0322244fd 100644 --- a/helm-chart/splunk-operator/Chart.yaml +++ b/helm-chart/splunk-operator/Chart.yaml @@ -19,10 +19,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: "2.7.0" +version: "2.7.1" # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "2.7.0" +appVersion: "2.7.1" 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 e9a97c05d..00ef10285 100644 --- a/helm-chart/splunk-operator/crds/enterprise.splunk.com_searchheadclusters.yaml +++ b/helm-chart/splunk-operator/crds/enterprise.splunk.com_searchheadclusters.yaml @@ -5297,6 +5297,247 @@ spec: will be installed on the CM, standalone, search head deployer or license manager instance. type: string + deployerNodeAffinity: + description: Splunk Deployer Node Affinity + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node matches the corresponding matchExpressions; the + node(s) with the highest sum are the most preferred. + items: + description: |- + An empty preferred scheduling term matches all objects with implicit weight 0 + (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). + properties: + preference: + description: A node selector term, associated with the corresponding + weight. + properties: + matchExpressions: + description: A list of node selector requirements by + node's labels. + items: + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by + node's fields. + items: + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + weight: + description: Weight associated with matching the corresponding + nodeSelectorTerm, in the range 1-100. + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: |- + If the affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to an update), the system + may or may not try to eventually evict the pod from its node. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. The + terms are ORed. + items: + description: |- + A null or empty node selector term matches no objects. The requirements of + them are ANDed. + The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements by + node's labels. + items: + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by + node's fields. + items: + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. + properties: + key: + description: The label key that the selector applies + to. + type: string + operator: + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + deployerResourceSpec: + description: Splunk Deployer resource spec + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + This field is immutable. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object etcVolumeStorageConfig: description: Storage configuration for /opt/splunk/etc volume properties: diff --git a/helm-chart/splunk-operator/values.yaml b/helm-chart/splunk-operator/values.yaml index 65436dbd7..a79ed5f9f 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.3.2 + repository: docker.io/splunk/splunk:9.4.0 # The kube-rbac-proxy is a small HTTP proxy for a single upstream, that can perform RBAC # authorization against the Kubernetes API. @@ -32,7 +32,7 @@ splunkOperator: # Splunk operator image and pull policy # reference: https://github.com/splunk/splunk-operator image: - repository: docker.io/splunk/splunk-operator:2.7.0 + repository: docker.io/splunk/splunk-operator:2.7.1 pullPolicy: IfNotPresent # Set image pull secrets to pull image from a private registry