We are managing our Index Cluster Apps by deploying them to the Cluster Master's "master-apps" directory. Here is the CM's deploymentclient.conf:
[deployment-client] repositoryLocation = $SPLUNK_HOME/etc/master-apps serverRepositoryLocationPolicy = rejectAlways [target-broker:deploymentServer] phoneHomeIntervalInSecs = 60 targetUri = https://hostname:8089
While the apps are actually being deployed without issue, we are seeing the following errors in splunkd.log for every app:
04-17-2019 11:01:35.571 -0500 INFO DeployedApplication - Installing app=APPNAME to='/opt/splunk/etc/master-apps/APPNAME' 04-17-2019 11:01:35.576 -0500 ERROR DeployedApplication - Failed to install app=/opt/splunk/etc/master-apps/APPNAME; reason=Application does not exist: APPNAME 04-17-2019 11:01:35.576 -0500 ERROR DeployedServerclass - name=ClusterMaster Failed to install app=APPNAME
How do we correct this?
In serverclass.conf, please include the following at the top level for the Cluster Master's server class:
stateOnClient = noop
More info on this setting:
stateOnClient = enabled | disabled | noop * If set to "enabled", sets the application state to enabled on the client, regardless of state on the deployment server. * If set to "disabled", set the application state to disabled on the client, regardless of state on the deployment server. * If set to "noop", the state on the client will be the same as on the deployment server. * Can be overridden at the serverClass level and the serverClass:app level. * Defaults to enabled.
In your specific example, I would recommend the following settings be used at the top level of the Cluster Master's server class:
[serverClass:ClusterMasters] stateOnClient = noop restartSplunkWeb = 0 restartSplunkd = 0 [serverClass:ClusterMasters:app:APPNAME] [serverClass:ClusterMasters:app:APPNAME2] [serverClass:ClusterMasters:app:APPNAME3] [serverClass:ClusterMasters:app:APPNAME4]