Enable and Refactor Single Group to Multi-Group API Support#1837
Enable and Refactor Single Group to Multi-Group API Support#1837naimulh247 wants to merge 9 commits intodevelopfrom
Conversation
|
CLA Assistant Lite bot: I have read the Code of Conduct and I hereby sign the COC You can retrigger this bot by commenting recheck in this Pull Request |
|
I have read the CLA Document and I hereby sign the CLA |
|
recheck |
|
Hello @naimulh247 |
|
@kasiakoziol Im okay with either, I opened this PR as @vivekr-splunk requested to see if we have bandwidth to support it. That said, its worth noting that if we merge both the app framework and multi-group work together, we might miss something in a larger PR. We could also hold off on merging this and land it separately once the app framework changes are ready. That way we can validate each PR independently and have a clean rollback if something slips through in the multi-group restructure :) |
There was a problem hiding this comment.
Pull request overview
Enables Kubebuilder/Operator SDK multi-group support by moving the existing Splunk Enterprise APIs and controllers into group-scoped directories (api/enterprise/..., internal/controller/enterprise/...) and updating references across the codebase.
Changes:
- Enabled
multigroup: trueand updatedPROJECTresource paths to point atapi/enterprise/.... - Updated imports throughout
pkg/,internal/, andtest/to usegithub.com/splunk/splunk-operator/api/enterprise/v{3,4}. - Added an
internal/controller/enterpriseTelemetry controller + unit tests, and wired controllers viacmd/main.go.
Reviewed changes
Copilot reviewed 144 out of 175 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| test/testenv/verificationutils.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/testenv/util.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/testenv/testenv.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/testenv/remote_index_utils.go | Update imports to new api/enterprise/v4 path. |
| test/testenv/deployment.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/testenv/appframework_utils.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/smoke/smoke_test.go | Update imports to new api/enterprise/v4 path. |
| test/smartstore/smartstore_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/smartstore/manager_smartstore_test.go | Update imports to new api/enterprise/v4 path. |
| test/secret/secret_s1_test.go | Update imports to new api/enterprise/v4 path. |
| test/secret/secret_m4_test.go | Update imports to new api/enterprise/v4 path. |
| test/secret/secret_c3_test.go | Update imports to new api/enterprise/v4 path. |
| test/secret/manager_secret_s1_test.go | Update imports to new api/enterprise/v4 path. |
| test/secret/manager_secret_m4_test.go | Update imports to new api/enterprise/v4 path. |
| test/secret/manager_secret_c3_test.go | Update imports to new api/enterprise/v4 path. |
| test/monitoring_console/monitoring_console_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/monitoring_console/manager_monitoring_console_test.go | Update imports to new api/enterprise/v4 path. |
| test/licensemaster/lm_c3_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/licensemanager/manager_lm_c3_test.go | Update imports to new api/enterprise/v4 path. |
| test/ingest_search/ingest_search_test.go | Update imports to new api/enterprise/v4 path. |
| test/index_and_ingestion_separation/index_and_ingestion_separation_test.go | Update imports to new api/enterprise/v4 path. |
| test/index_and_ingestion_separation/index_and_ingestion_separation_suite_test.go | Update imports to new api/enterprise/v4 path. |
| test/delete_cr/deletecr_test.go | Update imports to new api/enterprise/v4 path. |
| test/custom_resource_crud/manager_custom_resource_crud_m4_test.go | Update imports to new api/enterprise/v4 path. |
| test/custom_resource_crud/manager_custom_resource_crud_c3_test.go | Update imports to new api/enterprise/v4 path. |
| test/custom_resource_crud/custom_resource_crud_s1_test.go | Update imports to new api/enterprise/v4 path. |
| test/custom_resource_crud/custom_resource_crud_m4_test.go | Update imports to new api/enterprise/v4 path. |
| test/custom_resource_crud/custom_resource_crud_c3_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/appframework_gcp/s1/appframework_gcs_test.go | Update imports to new api/enterprise/v4 path. |
| test/appframework_gcp/m4/manager_appframework_test.go | Update imports to new api/enterprise/v4 path. |
| test/appframework_gcp/m4/appframework_gcs_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/appframework_gcp/c3/manager_appframework_test.go | Update imports to new api/enterprise/v4 path. |
| test/appframework_gcp/c3/appframework_gcs_test.go | Update imports to new api/enterprise/v4 path (and commented v3 path). |
| test/appframework_az/s1/appframework_azure_test.go | Update imports to new api/enterprise/v4 path. |
| test/appframework_az/m4/manager_appframework_azure_test.go | Update imports to new api/enterprise/v4 path. |
| test/appframework_az/m4/appframework_azure_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/appframework_az/c3/manager_appframework_azure_test.go | Update imports to new api/enterprise/v4 path. |
| test/appframework_az/c3/appframework_azure_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/appframework_aws/s1/appframework_aws_test.go | Update imports to new api/enterprise/v4 path. |
| test/appframework_aws/m4/manager_appframework_test.go | Update imports to new api/enterprise/v4 path. |
| test/appframework_aws/m4/appframework_aws_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| test/appframework_aws/c3/manager_appframework_test.go | Update imports to new api/enterprise/v4 path. |
| test/appframework_aws/c3/appframework_aws_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/util/util_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/util/util.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/test/minioclient.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/test/controller.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/test/azureblobclient.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/test/awss3client.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/splkcontroller/statefulset_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/splkcontroller/statefulset.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/splkcontroller/deployment_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/splkcontroller/deployment.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/splkcontroller/configmap_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/validator_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/validate_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/validate.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/standalone_validation_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/standalone_validation.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/server_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/searchheadcluster_validation_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/searchheadcluster_validation.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/registry.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/monitoringconsole_validation_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/monitoringconsole_validation.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/licensemanager_validation_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/licensemanager_validation.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/indexercluster_validation_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/indexercluster_validation.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/common_validation_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/common_validation.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/clustermanager_validation_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/validation/clustermanager_validation.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/util_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/util.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/upgrade_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/upgrade.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/types.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/telemetry_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/telemetry.go | Update imports ordering and new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/standalone_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/standalone.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/searchheadclusterpodmanager.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/searchheadcluster_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/searchheadcluster.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/queue_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/queue.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/objectstorage_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/objectstorage.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/monitoringconsole_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/monitoringconsole.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/licensemaster_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/licensemaster.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/licensemanager_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/licensemanager.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/ingestorcluster_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/ingestorcluster.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/indexercluster_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/indexercluster.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/finalizers_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/events_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/configuration_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/configuration.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/clustermaster_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/clustermaster.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/clustermanager_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/clustermanager.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/enterprise/afwscheduler_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| pkg/splunk/enterprise/afwscheduler.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/common/types.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/client/util_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/client/util.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/client/minioclient_test.go | Update imports to new api/enterprise/v4 path. |
| pkg/splunk/client/awss3client_test.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/testutils/new.go | Update imports to new api/enterprise/v{3,4} paths. |
| internal/controller/enterprise/telemetry_controller_test.go | New unit tests for Telemetry controller reconcile behavior. |
| internal/controller/enterprise/telemetry_controller.go | New Telemetry controller for ConfigMap-driven telemetry dispatch. |
| internal/controller/enterprise/suite_test.go | Update envtest CRD path for new controller directory depth; update API imports. |
| internal/controller/enterprise/standalone_controller_test.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/standalone_controller.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/searchheadcluster_controller_test.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/searchheadcluster_controller.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/monitoringconsole_controller_test.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/monitoringconsole_controller.go | Update imports to new api/enterprise/v{3,4} paths. |
| internal/controller/enterprise/licensemaster_controller_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| internal/controller/enterprise/licensemaster_controller.go | Update imports to new api/enterprise/v{3,4} paths. |
| internal/controller/enterprise/licensemanager_controller_test.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/licensemanager_controller.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/ingestorcluster_controller_test.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/ingestorcluster_controller.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/indexercluster_controller_test.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/indexercluster_controller.go | Update imports to new api/enterprise/v{3,4} paths. |
| internal/controller/enterprise/clustermaster_controller_test.go | Update imports to new api/enterprise/v{3,4} paths. |
| internal/controller/enterprise/clustermaster_controller.go | Update imports to new api/enterprise/v{3,4} paths. |
| internal/controller/enterprise/clustermanager_controller_test.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/enterprise/clustermanager_controller.go | Update imports to new api/enterprise/v4 path. |
| internal/controller/common/predicate.go | Update imports to new api/enterprise/v{3,4} paths. |
| cmd/main.go | Wire controllers from internal/controller/enterprise and register new API paths. |
| api/enterprise/v4/standalone_types.go | New group-scoped v4 API location under api/enterprise/v4. |
| api/enterprise/v4/searchheadcluster_types.go | New group-scoped v4 API location under api/enterprise/v4. |
| api/enterprise/v4/queue_types.go | New group-scoped v4 Queue API location under api/enterprise/v4. |
| api/enterprise/v4/objectstorage_types.go | New group-scoped v4 ObjectStorage API location under api/enterprise/v4. |
| api/enterprise/v4/monitoringconsole_types.go | New group-scoped v4 API location under api/enterprise/v4. |
| api/enterprise/v4/licensemanager_types.go | New group-scoped v4 API location under api/enterprise/v4. |
| api/enterprise/v4/ingestorcluster_types.go | New group-scoped v4 API location under api/enterprise/v4. |
| api/enterprise/v4/indexercluster_types.go | New group-scoped v4 API location under api/enterprise/v4. |
| api/enterprise/v4/groupversion_info.go | New group-scoped v4 group/version registration. |
| api/enterprise/v4/common_types.go | New group-scoped v4 common type definitions. |
| api/enterprise/v4/clustermanager_types.go | New group-scoped v4 ClusterManager API location under api/enterprise/v4. |
| api/enterprise/v3/zz_generated.deepcopy.go | New group-scoped v3 generated deepcopy code under api/enterprise/v3. |
| api/enterprise/v3/standalone_types.go | Update v3 types to reference new v4 API import path. |
| api/enterprise/v3/searchheadcluster_types.go | Update v3 types to reference new v4 API import path. |
| api/enterprise/v3/monitoringconsole_types.go | Update v3 types to reference new v4 API import path. |
| api/enterprise/v3/licensemaster_types.go | Update v3 types to reference new v4 API import path. |
| api/enterprise/v3/indexercluster_types.go | Update v3 types to reference new v4 API import path. |
| api/enterprise/v3/groupversion_info.go | New group-scoped v3 group/version registration. |
| api/enterprise/v3/clustermaster_types.go | Update v3 types to reference new v4 API import path. |
| api/enterprise/v2/zz_generated.deepcopy.go | New group-scoped v2 generated deepcopy placeholder under api/enterprise/v2. |
| api/enterprise/v2/register.go | New group-scoped v2 scheme registration under api/enterprise/v2. |
| api/enterprise/v2/doc.go | New group-scoped v2 package docs under api/enterprise/v2. |
| api/enterprise/v1beta1/zz_generated.deepcopy.go | New group-scoped v1beta1 generated deepcopy placeholder under api/enterprise/v1beta1. |
| api/enterprise/v1beta1/register.go | New group-scoped v1beta1 scheme registration under api/enterprise/v1beta1. |
| api/enterprise/v1beta1/doc.go | New group-scoped v1beta1 package docs under api/enterprise/v1beta1. |
| api/enterprise/v1alpha3/zz_generated.deepcopy.go | New group-scoped v1alpha3 generated deepcopy placeholder under api/enterprise/v1alpha3. |
| api/enterprise/v1alpha3/register.go | New group-scoped v1alpha3 scheme registration under api/enterprise/v1alpha3. |
| api/enterprise/v1alpha3/doc.go | New group-scoped v1alpha3 package docs under api/enterprise/v1alpha3. |
| api/enterprise/v1alpha2/zz_generated.deepcopy.go | New group-scoped v1alpha2 generated deepcopy placeholder under api/enterprise/v1alpha2. |
| api/enterprise/v1alpha2/register.go | New group-scoped v1alpha2 scheme registration under api/enterprise/v1alpha2. |
| api/enterprise/v1alpha2/doc.go | New group-scoped v1alpha2 package docs under api/enterprise/v1alpha2. |
| api/enterprise/v1/zz_generated.deepcopy.go | New group-scoped v1 generated deepcopy placeholder under api/enterprise/v1. |
| api/enterprise/v1/register.go | New group-scoped v1 scheme registration under api/enterprise/v1. |
| api/enterprise/v1/doc.go | New group-scoped v1 package docs under api/enterprise/v1. |
| PROJECT | Enable multigroup and update resource path: entries to api/enterprise/.... |
| .biased_lang_exclude | Update excluded file paths to new api/enterprise/... locations. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| enterpriseApiV3 "github.com/splunk/splunk-operator/api/enterprise/v3" | ||
| enterpriseApi "github.com/splunk/splunk-operator/api/enterprise/v4" | ||
| "github.com/splunk/splunk-operator/internal/controller/enterprise" | ||
| //+kubebuilder:scaffold:imports |
There was a problem hiding this comment.
internal/controller/enterprise is imported twice (once as intController and once as the package name controller), which will cause a compile error for duplicate imports. Use a single import and update references (e.g., use intController.IngestorClusterReconciler instead of controller.IngestorClusterReconciler, or drop the alias).
Description
Enable Kubebuilder / Operator SDK multi-group support by restructuring API and controller directories into group-specific paths. This lays the groundwork for supporting multiple API groups beyond
enterpriseKey Changes
multigroup: truein thePROJECTfileapi/v{1,2,3,4}/toapi/enterprise/v{1,2,3,4}/internal/controller/tointernal/controller/enterprise/api/enterprise/andinternal/controller/enterprise/pathsapi/enterprisepaths.biased_lang_excludepaths to reflect new directory structureTesting and Verification
makecommand passed without any errorsRelated Issues
Jira tickets, GitHub issues, Support tickets...
PR Checklist