Nahum Shalman

Testing SaltStack 2014.7 release candidates on SmartOS

I still have some other SmartOS related blog posts in the pipeline, but this one is quick and I know there's at least one person who will use these instructions soon.

I recently ironed out the details for a build environment for esky builds of salt 2014.7 release candidates. The bulk of the work is contained in this commit though a follow on commit further tightened up the build environment instructions so check that page if you want to set up a build environment yourself in a zone.

But if you want to be lazy, I've uploaded artifacts into Manta that will let you quickly do a new build. Since they're in my /public directory, anyone with a Manta account should be able to rapidly spin up a build environment to test either the latest code, or a patch that needs verification before merging.

The important artifacts are:

  1. A tarball of the final /opt/local tree after setting up the build environment:
    • /nahamu/public/salt/build/salt-2014.7-pkgsrc-2014Q2-x86_64-build- 20140821.tar.gz
  2. A tarball of the git repo to cut down on how much you'll need to pull down from github:
    • /nahamu/public/salt/build/salt-git-tree-20140821.tar.gz
  3. A helper script to extract the first two into the correct locations:
    • /nahamu/public/salt/build/salt-2014.7-build-setup.sh

To spin up a zone with the two smaller files as assets that runs where the big tarball is located, you can simply run:

mlogin -s /nahamu/public/salt/build/salt-2014.7-build-setup.sh -s /nahamu/public/salt/build/salt-git-tree-20140821.tar.gz /nahamu/public/salt/build/salt-2014.7-pkgsrc-2014Q2-x86_64-build-20140821.tar.gz  

So, let's say you're trying to test the fix for #14184.

Here's the simple way to spin a fresh esky for testing:

mlogin -s /nahamu/public/salt/build/salt-2014.7-build-setup.sh -s /nahamu/public/salt/build/salt-git-tree-20140821.tar.gz /nahamu/public/salt/build/salt-2014.7-pkgsrc-2014Q2-x86_64-build-20140821.tar.gz

# wait for the session to connect. You'll then be root in the Manta zone

. /assets/nahamu/public/salt/build/salt-2014.7-build-setup.sh
# this will unpack the tarballs and do a git pull of the 2014.7 branch.

#since I'm testing something that's not upstream yet, let's fetch that commit.
git remote add cachedout git://github.com/cachedout/salt  
git fetch cachedout

#before we can cherry-pick, tell git who you are so that it will be quiet
git config user.name $MANTA_USER  
git config user.email $MANTA_USER@example.com  
git cherry-pick 83e5296c337ca41e72f92209523abec2a9d38508

# Run the build
bash pkg/smartos/esky/build-tarball.sh 

# upload the resulting files into Manta so that you can get them later
mmkdir -p /$MANTA_USER/public/salt/testing  
for file in dist/salt*; do mput -m /$MANTA_USER/public/salt/testing -f $file; done;

#terminate the mlogin session
exit

# back on your regular system, get a list of URLs that you can paste somewhere
mfind ~~/public/salt/testing | sed "s|^|$MANTA_URL|"  

Find me on twitter or IRC if you have questions (I'm "nahamu" on Freenode. Look for me in #smartos or #salt with questions about this blog post.)

smartos salt