This PR introduces a feature allowing for manual app deployment updates on a per-custom-resource (CR) basis for the Splunk Operator. With this enhancement, admins can initiate app deployments for each splunk custom resource instance independently, without impacting other instances. This capability enables more flexible and frequent app deployment schedules, addressing customer requirements for controlled and isolated updates.
Customer Requirement:
Need: Separate app deployment processes for each custom resource to allow independent deployment at any time during the day, rather than a unified deployment after hours.
Solution: A unique ConfigMap per CR instance, allowing isolated manual app deployments through a status field update in the ConfigMap.
Key Changes
Auto-generation of ConfigMaps per CR:
Each Custom Resource instance now has a dedicated ConfigMap for app management.
ConfigMap is named based on the associated CR type and instance, ensuring clarity and association.
ConfigMap is automatically deleted when the corresponding CR is deleted.
Manual Trigger for App Deployment:
Admins can set the status to "on" in the ConfigMap to initiate app deployment for a specific CR instance.
The Splunk Operator detects this change, executes the app deployment, and resets the status to "off" upon completion.
Fallback Mechanism for Missing CR-Specific ConfigMaps:
If a CR-specific ConfigMap is missing, the Splunk Operator falls back to the default ConfigMap for manual updates.
Logging has been added to indicate whether a specific or default ConfigMap was used for deployment.
Enable/Disable Automatic Polling:
Automatic polling for app updates can be enabled or disabled by adjusting the appsRepoPollIntervalSeconds in each CR.
Documentation updates provide examples of enabling/disabling polling and manually updating the ConfigMap.
Comprehensive Testing:
Unit tests validate ConfigMap handling and fallback scenarios.
Integration tests ensure app deployments function independently across multiple CRs.
Customer-specific scenarios simulate multiple CR deployments and isolated app updates.
Documentation:
Updated configuration guide to reflect new ConfigMap-based manual app deployment for each CR instance.
Added examples for enabling/disabling automatic polling and triggering manual updates.
Testing and Verification
Unit Tests: Added unit tests for handling ConfigMap updates, fallback logic, and status monitoring.
Integration Tests: Validated app deployment functionality per instance using dedicated ConfigMaps.
Customer Scenario Testing: Simulated scenarios based on Schwarz's environment to verify independent app deployments without interference.
Next Steps
Migration Considerations: Documentation includes instructions for transitioning existing installations to the new ConfigMap model.
Additional Observability: Log outputs confirm whether specific or fallback ConfigMaps are used, providing insights for troubleshooting.
Description
This PR introduces a feature allowing for manual app deployment updates on a per-custom-resource (CR) basis for the Splunk Operator. With this enhancement, admins can initiate app deployments for each splunk custom resource instance independently, without impacting other instances. This capability enables more flexible and frequent app deployment schedules, addressing customer requirements for controlled and isolated updates.
Customer Requirement:
status
field update in the ConfigMap.Key Changes
Auto-generation of ConfigMaps per CR:
Manual Trigger for App Deployment:
status
to "on" in the ConfigMap to initiate app deployment for a specific CR instance.status
to "off" upon completion.Fallback Mechanism for Missing CR-Specific ConfigMaps:
Enable/Disable Automatic Polling:
appsRepoPollIntervalSeconds
in each CR.Comprehensive Testing:
Documentation:
Testing and Verification
Next Steps
Related Issues