splunk / splunk-operator

Splunk Operator for Kubernetes
Other
210 stars 115 forks source link

[CSPL-2699]: adding Azure and GCP bucket access using sdk #1340

Closed vivekr-splunk closed 9 hours ago

vivekr-splunk commented 5 months ago

Signed-off-by: Vivek Reddy vivekrsplunk@github.com

The Splunk Operator for Kubernetes currently supports AWS S3 buckets, allowing users to integrate Splunk with AWS storage seamlessly. However, customers utilizing Google Cloud Platform (GCP) and Microsoft Azure are required to use interoperability solutions to access their respective Blob storage services. This pull request introduces native support for GCP storage buckets and enhances Azure integration by implementing Azure AD authentication alongside traditional credential methods.

Key Enhancements:

Motivation

Expanding the Splunk Operator's storage capabilities to include GCP and Azure addresses the needs of a broader user base operating in multi-cloud environments. Native support eliminates the complexities and limitations associated with interoperability solutions, offering users a more robust, secure, and efficient way to manage their storage integrations within Splunk.

Changes

GCP Integration

  1. GCP SDK Wrapper:

    • Created a new module gcpbucketclient that encapsulates GCP SDK functionalities.
    • Implemented methods for:
      • Listing objects in GCP storage buckets.
      • Downloading objects from GCP storage buckets.
  2. Configuration Updates:

    • Added configuration options in the operator's settings to specify GCP credentials and bucket details.
    • Updated Kubernetes ServiceAccount and Role definitions to accommodate GCP access permissions.
  3. Documentation:

    • Updated README and user guides to include instructions for configuring GCP storage integration.

Azure Enhancements

  1. Azure AD Authentication:

    • Integrated Azure AD authentication mechanisms to secure access to Azure Blob Storage.
    • Configured the operator to use Azure AD tokens for authenticating storage operations.
  2. Azure SDK Integration:

    • Utilized the Azure SDK to handle credential management and Blob storage interactions.
    • Ensured compatibility with existing Azure storage configurations and workflows.
  3. Configuration Updates:

    • Enhanced the operator's configuration to support Azure AD authentication parameters.
    • Updated Kubernetes manifests to include necessary Azure RBAC roles and permissions.
  4. Documentation:

    • Expanded documentation to cover Azure AD authentication setup and troubleshooting steps.

Testing

Impact

This enhancement broadens the Splunk Operator's compatibility, making it a more versatile tool for organizations leveraging multi-cloud strategies. By providing native support for GCP and Azure storage services, users can manage their Splunk integrations more effectively, reducing dependency on third-party interoperability solutions and simplifying their infrastructure management.

Related Issues

Future Work

Checklist