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?
This helped us out as well. Did have same error.
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:
Spec file: https://docs.splunk.com/Documentation/Splunk/latest/Admin/Serverclassconf
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]