Be able to build injectors on dedicated build machines
(09:58:11) peter.banka@
(09:58:58) shawn-jabber: For building what?
(09:59:10) peter.banka@
(09:59:27) shawn-jabber: for centos stuff?
(09:59:46) peter.banka@
(10:00:07) peter.banka@
(10:00:13) peter.banka@
(10:00:17) shawn-jabber: What in particular are you trying to do?
(10:00:57) peter.banka@
(10:01:26) shawn-jabber: and you want to avoid building it on the client
(10:01:29) peter.banka@
(10:01:42) peter.banka@
(10:01:44) shawn-jabber: I think we had a conversation about this the other day
(10:01:49) peter.banka@
(10:02:42) shawn-jabber: Okay, so are we going to tie it in somehow directly to bombardier or just use it to generate injectors?
(10:03:19) peter.banka@
(10:03:48) shawn-jabber: okay. I'll get a centos one going then
(10:03:58) peter.banka@
(10:04:10) peter.banka@
(10:07:13) shawn-jabber: There'd be some plumbing involved, but I think we could make that work. If you had some metadata like which machine would build for a platform. I'll keep that in mind for a while and see what happens ideawise
(10:08:36) peter.banka@
(10:09:39) shawn-jabber: Maybe the build step for a package could take an address like root@buildbox:
(10:09:59) shawn-jabber: if it didn't already have it on the box or something
(10:10:21) peter.banka@
(10:10:36) shawn-jabber: Like escalating metadata, from path to remote path to build command or something
(10:10:45) peter.banka@
(10:11:20) shawn-jabber: Kind of how a makefile works in that if you have what the target requires you use it. Otherwise you know how to get it built with other rules
(10:11:22) peter.banka@
class_name: PythonInstaller
configuration: {}
dependencies: []
executables: [configure, install, uninstall, verify]
injectors:
Python-2.6.4:
path: /var/deploy/
platforms: [centos5.4]
build_script: root@buildbox:
libs:
AptPackageIns
version: '850'}
GenericInstaller: {svn: 'https:/
PythonInstaller: {svn: 'https:/
YumPackageIns
version: '850'}
package-version: 5
priority: 500
release: 12
(10:12:35) shawn-jabber: instead of build script, that would be the remote path to it maybe
(10:13:08) peter.banka@
(10:13:45) shawn-jabber: I meant that the tarball would be a finished injector
(10:14:07) shawn-jabber: remote_path: root@buildbox:
(10:14:49) peter.banka@
/var/deploy/
ubuntu-hardy.yml:
ip_address: 10.3.4.5
default_user: root
build_directory: /var/build
centos5-4.yml:
ip_address: 10.3.4.6
default_user: root
build_directory: /var/build
(10:15:08) shawn-jabber: Sure
(10:15:20) shawn-jabber: I think that's good
(10:17:14) peter.banka@
class_name: PythonInstaller
configuration: {}
dependencies: []
executables: [configure, install, uninstall, verify]
injectors:
Python-2.6.4:
source: /var/deploy/
platforms: [centos5.4]
paths:
- /var/deploy/
build_script: https:/
libs:
AptPackageIns
version: '850'}
GenericInstaller: {svn: 'https:/
PythonInstaller: {svn: 'https:/
YumPackageIns
version: '850'}
package-version: 5
priority: 500
release: 12
(10:17:55) shawn-jabber: I think that works
(10:17:57) peter.banka@
(10:18:42) shawn-jabber: Maybe those could be tied together as a dictionary value under the platform like
(10:18:56) peter.banka@
(10:19:21) peter.banka@
injectors:
Python-2.6.4:
source: /var/deploy/
platforms:
centos5.4: /var/deploy/
build_script: https:/
(10:19:54) shawn-jabber: yeah, that's cool. The build script could maybe be overridden per platform if it was necessary too
(10:20:11) peter.banka@
(10:20:26) shawn-jabber: That's best left to later when we see how we need it to be though
(10:20:37) peter.banka@
injectors:
Python-2.6.4:
source: /var/deploy/
platforms:
centos5.4:
path: /var/deploy/
(10:20:46) peter.banka@
(10:21:24) shawn-jabber: Sure, if we don't like it, changing it should be easy
(10:21:55) peter.banka@
(10:22:29) shawn-jabber: Yeah, also we might need to version stamp the path to the end product
(10:22:51) shawn-jabber: That could be part of the build process though to return the path to the newly built thing
(10:23:00) peter.banka@
(10:23:27) shawn-jabber: I also think it should be lazy about building if it has a suitable one locally
(10:23:47) peter.banka@
(10:24:07) shawn-jabber: when you build the package, if you already have an injector that is okay then don't build
(10:24:11) peter.banka@
(10:24:28) shawn-jabber: yeah
(10:25:50) peter.banka@
class_name: TouchscreenFlas
configuration:
TouchscreenFl
daemon_user: www-data, log_dir: /var/log/apache2, server_port: '443'}
ip_address: ''
touchscreen_
touchscreen
dependencies: [Django-1-1-1]
executables: [configure, install, restart, start, stop, uninstall, verify]
injectors:
Flasher: {
generic:
path: '/var/deploy/
source: 'https:/
version: '851'
(10:26:33) peter.banka@
(10:27:34) shawn-jabber: If we can keep the existing packages from need to all be rebuilt that would sure be nice
(10:28:42) peter.banka@
(10:28:46) shawn-jabber: I like having a path at the top level being the first place it looks
(10:28:51) peter.banka@
(10:29:05) shawn-jabber: injectors:
ic_server: {path: IConnect_
(10:29:26) shawn-jabber: if add a build key at the same level as path, it could look there next
(10:29:36) peter.banka@
(10:30:08) shawn-jabber: ic_server: {path: IConnect_
(10:30:40) peter.banka@
(10:30:54) shawn-jabber: That's baz, bar and whatever
(10:31:16) peter.banka@
class_name: PythonInstaller
configuration: {}
dependencies: []
executables: [configure, install, uninstall, verify]
injectors:
Python-2.6.4:
source: /var/deploy/
build:
platforms:
centos5.4:
path: /var/deploy/
(10:31:33) peter.banka@
(10:31:58) peter.banka@
Python-2.6.4:
source: /var/deploy/
build:
centos5.4:
path: /var/deploy/
(10:32:16) shawn-jabber: I think build can have all that stuff under it just fine. I want a path key at the same level as source and buld
(10:32:17) shawn-jabber: build
(10:32:26) shawn-jabber: like it is now
(10:32:37) peter.banka@
(10:32:51) peter.banka@
(10:33:23) shawn-jabber: I think that path should be up there with build and source, and if it's not found there it should start looking at how it might build it
(10:33:46) peter.banka@
(10:34:03) shawn-jabber: I'd put it there if I wanted it
(10:34:23) peter.banka@
(10:34:42) shawn-jabber: I don't want to rebuild anything complicated if I just have a static injector tarball sitting in the repos
(10:34:53) peter.banka@
(10:35:01) shawn-jabber: I still like having a path to it as a default
(10:35:13) peter.banka@
(10:37:10) shawn-jabber: I like being able to specify the build though. Really, if you had that default path and it wasn't there, when you did the build you could copy it to that path
(10:37:50) shawn-jabber: next time you'd just grab it
(10:38:09) peter.banka@
class_name: PythonInstaller
configuration: {}
dependencies: []
executables: [configure, install, uninstall, verify]
injectors:
Python-2.6.4:
source: /var/deploy/
build:
centos5.4:
path: /var/deploy/
ubuntu-hardy:
path: /var/deploy/
(10:38:28) peter.banka@
(10:38:59) shawn-jabber: If you make it for what you're doing and don't break my top level path in the ones I'm using it's fine with me
(10:39:19) peter.banka@
(10:39:27) shawn-jabber: I think it's good like that then
(10:40:37) shawn-jabber: With these really simple third party ones having a definite path is fine. Anything custom built will require us to allow for custom names.
(10:41:00) peter.banka@
(10:41:52) shawn-jabber: Let's not worry about that until later. Designing too far ahead ends up making things more complicated than they need to be
(10:41:58) peter.banka@
(10:44:38) peter.banka@
(10:44:55) peter.banka@
(10:45:02) shawn-jabber: Sure, I just mean they might have use for an extension of buildbot or somethign
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Peter Banka
- Direction:
- Needs approval
- Assignee:
- Peter Banka
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by