We're looking to place our deployment-apps folder on the Splunk deployment server under version control. We're planning on using Subversion for this. Each directory (app, default and local, and so on) each would get a .svn directory for tracking. When deploying the apps to clients, each of those .svn directories would get pushed to clients.
Is there any way to prevent the .svn directories from being part of the app bundles?
I've done that a couple of ways, neither of which is perfect.
1) Create a custom build script that tars only the desired directories and ignores the undesired. This delivers the right files, but does merge .conf files the way the Splunk package command does.
2) Use splunk package app foo
to do the packaging then delete unwanted files/directories from the .spl file. This merges .conf files, but then the delivered tarball doesn't match the "built" one.
Can you elaborate more on how to use a custom build script on a deployment server?
I wrote mine in bash. It was a simple script that checked a couple of prerequisites then passed a list of directories to tar
.
Sorry, I meant how did you incorporate it into the deployment server? Can we override how Splunk builds the packages that get deployed to servers?
My script runs on our "build" server. The tarball produced by the script is what gets deployed.
hmmm, is Subversion a hard requirement or could you use Mercurial? The problem goes away and you get to use pretty much the same types of version control commands.
Sadly, a hard requirement... Any tool that doesn't drop a folder at each directory level would work better but its the standard for the team right now.