Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

splitting sbadia/puppet-gitlab into three parts #1

Open
mc0e opened this issue May 13, 2013 · 3 comments
Open

splitting sbadia/puppet-gitlab into three parts #1

mc0e opened this issue May 13, 2013 · 3 comments

Comments

@mc0e
Copy link
Owner

mc0e commented May 13, 2013

See the Initial Discussion at (sbadia/puppet-gitlab#34)

I've taken the module from (https://github.com/sbadia/puppet-gitlab) and forked it three times:

I've made some minimal modifications to vagrant-gitlab such that it loads the other two in as submodules, and I've adjusted the Vagrantfile accordingly. This is just enough that the vagrant setup can run as before.

The puppet gitlab_prerequisites module is mounted on the server, but nothing in the rest of the puppet config refers to it, so it does nothing, and the class names in the files don't line up with the "gitlab_prerequisites" directory name anyway.

The general way forward looks something like this:

  • strip puppet stuff out of vagrant-gitlab
  • Strip Vagrant stuff out of puppet-gitlab and puppet-gitlab_prerequisites
  • Rearrange the puppet functionality between the two modules so that puppet-gitlab is service specific

There's a fair bit that I'm not familiar with in sbadia's distribution, so it'll be a learning experience.

@sbadia
Copy link
Collaborator

sbadia commented May 13, 2013

Hi, as for the vagrant things / rest of the project separation, I agree completely with your point of view.
But about the separation of puppet-gitlab «core» and its prerequisite, I'm septic... especially in the infrastructure virtualization context (a vm by service), it may make the packaging / dependencies a bit complicated on puppet forge.

@sbadia
Copy link
Collaborator

sbadia commented May 13, 2013

I can help ? 😃
(i just added you to sbadia/puppet-gitlab collaborators)

@mc0e
Copy link
Owner Author

mc0e commented May 15, 2013

Help most welcome. I've added you to all three repositories.

For me splitting the service module from the prerequisite support is the whole point of the exercise. I'm looking to add github into an environment which currently has 11 servers, all of them managed very nearly entirely through puppet. I've got layers of common configuration between servers that cover common utilities, network configuration, user access management, firewall configuration, monitoring, backups, etc. I don't want to be maintaining a whole separate puppet configuration for github, and working to integrate those things into your base configuration approach. I'm also probably not going to have github as the only major service on the box. Currently we're running an svn service on the same box that hosts the puppetmaster and a lot of the monitoring infrastructure. So for me the primary goal is to get a service focused github module going, such that I can fit it into an existing environment.

Being able to develop this in a vagrant environment appeals though, and setting the 3 projects up as I have enables me to work on a series of incremental changes while testing a rebuild from the ground up at various stages as I go. Also, I'd like to convince you that while I might be pursuing a different use case to you, these don't have to be incompatible. I'd be much happier to see you adopt my changes, so I can benefit from future changes you introduce without needing to do as much maintenance myself.

From the end user's perspective I don't think it will be much different to build a vagrant server. git clone. git submodule init. git submodule update. vagrant up. done. Exactly what you have now, just with more submodules, and starting from the vagrant-github repository as the parent rather than from puppet-github.

In terms of maintaining the project, it's quite possible that I may be missing subtleties. I haven't really worked with git submodules in this way before. I see that there's a bit of telling the parent project to update its references to the latest release of the child projects every so often. What else?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants