App Framework specification fields
Spec field reference for App Framework configuration.
The App Framework configuration supports Standalone, IngestorCluster, ClusterManager, SearchHeadCluster, MonitoringConsole, and LicenseManager custom resources.
Configuring the App Framework requires:
- Remote Source of Apps: Define the remote storage location, including unique folders, and the path to each folder.
- Destination of Apps: Define which Custom Resources need to be configured.
- Scope of Apps: Define if the apps need to be installed and run locally (such as Standalone, Monitoring Console, License Manager and Ingestor Cluster) or cluster-wide (such as Indexer Cluster, and Search Head Cluster.)
Here is a typical App framework configuration in a Custom Resource definition:
appRepo:
description: Splunk Enterprise App repository. Specifies remote App
location and scope for Splunk App management
properties:
appSources:
description: List of App sources on remote storage
items:
description: AppSourceSpec defines list of App package (*.spl,
*.tgz) locations on remote volumes
properties:
location:
description: Location relative to the volume path
type: string
name:
description: Logical name for the set of apps placed in
this location. Logical name must be unique to the appRepo
type: string
scope:
description: 'Scope of the App deployment: cluster, local.
Scope determines whether the App(s) is/are installed locally
or cluster-wide'
type: string
volumeName:
description: Remote Storage Volume name
type: string
type: object
type: array
appsRepoPollIntervalSeconds:
description: Interval in seconds to check the Remote Storage for
App changes
type: integer
defaults:
description: Defines the default configuration settings for App
sources
properties:
scope:
description: 'Scope of the App deployment: cluster, local.
Scope determines whether the App(s) is/are installed locally
or cluster-wide'
type: string
volumeName:
description: Remote Storage Volume name
type: string
type: object
volumes:
description: List of remote storage volumes
items:
description: VolumeSpec defines remote volume config
properties:
endpoint:
description: Remote volume URI
type: string
name:
description: Remote volume name
type: string
path:
description: Remote volume path
type: string
provider:
description: App Package Remote Store provider. Currently supported providers are aws, minio and azure
type: string
region:
description: Region of the remote storage volume where apps
reside. Not required for azure.
type: string
secretRef:
description: Secret object name
type: string
storageType:
description: Remote Storage type. Possible values are s3 (works with aws and minio) or blob (works with azure)
type: string
type: object
type: array
type: object
appRepo
appRepo is the start of the App Framework specification and contains all the configurations required for App Framework to be successfully configured.
volumes
volumes defines the remote storage configurations.
- name uniquely identifies the remote storage volume name within a CR.
- storageType describes the type of remote storage. Currently,
s3andblobare supported. - provider describes the remote storage provider. Currently,
aws,minio,gcp, andazureare supported. Uses3withawsorminio; useblobwithazureorgcp. - endpoint describes the URI/URL of the remote storage endpoint that hosts the apps.
- secretRef refers to the K8s secret object containing the static remote storage access key. Not required if using IAM role-based credentials.
- path describes the path (including the folder) of one or more app sources on the remote store.
appSources
appSources defines the name and scope of the appSource, the remote storage volume, and its location.
- name uniquely identifies the App source configuration within a CR.
- scope defines the scope of the app to be installed.
localscope: apps installed and run locally on the pod referred to by the CR.clusterscope: apps placed onto the configuration management node (Deployer, Cluster Manager) for deployment across the cluster.- Cluster scope is only supported on CRs that manage cluster-wide app deployment.
| CRD Type | Scope support | App Framework support | Local Scope Install Location | Cluster Scope Install Location |
|---|---|---|---|---|
| ClusterManager | cluster, local | Yes | $SPLUNK_HOME/etc/apps | $SPLUNK_HOME/manager/apps |
| SearchHeadCluster | cluster, local | Yes | $SPLUNK_HOME/etc/apps (deployer) | $SPLUNK_HOME/etc/shcluster/apps/ (deployer), $SPLUNK_HOME/etc/apps (peers) |
| Standalone | local | Yes | $SPLUNK_HOME/etc/apps | N/A |
| LicenseManager | local | Yes | $SPLUNK_HOME/etc/apps | N/A |
| MonitoringConsole | local | Yes | $SPLUNK_HOME/etc/apps | N/A |
| IngestorCluster | local | Yes | $SPLUNK_HOME/etc/apps | N/A |
| IndexerCluster | N/A | No | N/A | $SPLUNK_HOME/etc/peer-apps |
- volume refers to the remote storage volume name configured under the volumes stanza.
- location helps configure the specific appSource present under the path within the volume, containing the apps to be installed.
appsRepoPollIntervalSeconds
If app framework is enabled, the Splunk Operator creates a namespace-scoped configMap named splunk-<namespace>-manual-app-update, which is used to manually trigger app updates. By default, the App Framework polls the remote object storage location for new or changed apps at the appsRepoPollIntervalSeconds interval. To turn off the interval check and manage app updates manually, see the manual initiation of app management topic.