Skip to content

Conversation

@thraxil
Copy link

@thraxil thraxil commented Nov 6, 2018

Using this PR to hold work on getting devstack running using our version.

@thraxil
Copy link
Author

thraxil commented Nov 6, 2018

@OmarIthawi @thatguynishant this is where I'm putting work on getting our fork running in an appsembler devstack.

@OmarIthawi
Copy link

Thanks @thraxil! Please ping me if there's anything I can do.

@thraxil
Copy link
Author

thraxil commented Nov 8, 2018

Latest commit makes edx-platform use the appsembler/tahoe/master branch. Really ugly hacking of the repo.sh script to do that. I'm sure we could make it cleaner. I'm not sure how much effort it's worth putting into that.

@OmarIthawi
Copy link

@thraxil the hack isn't really that ugly. It would be great if we can continue with that until we have the devstack.

If it turns out to be a real problem, we can consider something else like refactoring and upstreaming the changes.

@thraxil
Copy link
Author

thraxil commented Nov 9, 2018

building the docker image got this far:

skipping: [127.0.0.1] => (item={'_ansible_parsed': True, u'stat': {u'exists': False}, '_ansible_item_result': True, '_ansible_no_log': False, u'changed': False, 'item': u'/edx/app/edxapp/edx-platform/requirements/edx/custom.txt', 'invocation': {'module_name': u'stat', u'module_args': {u'checksum_algorithm': u'sha1', u'mime': False, u'get_checksum': True, u'follow': False, u'path': u'/edx/app/edxapp/edx-platform/requirements/edx/custom.txt', u'get_md5': True}}}) 
changed: [127.0.0.1] => (item={'_ansible_parsed': True, u'stat': {u'uid': 1003, u'exists': True, u'woth': False, u'mtime': 1541771090.534777, u'inode': 35085, u'isgid': False, u'size': 9323, u'executable': False, u'roth': True, u'isuid': False, u'readable': True, u'isreg': True, u'pw_name': u'edxapp', u'gid': 1004, u'ischr': False, u'wusr': True, u'writeable': True, u'xoth': False, u'islnk': False, u'nlink': 1, u'issock': False, u'rgrp': True, u'gr_name': u'edxapp', u'path': u'/edx/app/edxapp/edx-platform/requirements/edx/development.txt', u'xusr': False, u'atime': 1541771094.1948242, u'md5': u'71d46036c29cccad0123398a5896fbbf', u'isdir': False, u'ctime': 1541771090.534777, u'isblk': False, u'xgrp': False, u'dev': 252, u'wgrp': False, u'isfifo': False, u'mode': u'0644', u'checksum': u'6dd7ff309787f39619bb4a940cc1e314dd60eb54', u'rusr': True}, '_ansible_item_result': True, '_ansible_no_log': False, u'changed': False, 'item': u'/edx/app/edxapp/edx-platform/requirements/edx/development.txt', 'invocation': {'module_name': u'stat', u'module_args': {u'checksum_algorithm': u'sha1', u'mime': False, u'get_checksum': True, u'follow': False, u'path': u'/edx/app/edxapp/edx-platform/requirements/edx/development.txt', u'get_md5': True}}})

TASK [edxapp : Create private requirements file] *******************************
fatal: [127.0.0.1]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'private_requirements_file' is undefined\n\nThe error appears to have been in '/edx/app/edx_ansible/edx_ansible/playbooks/roles/edxapp/tasks/deploy.yml': line 170, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n# as 'EDXAPP_EXTRA_REQUIREMENTS'\n- name: Create private requirements file\n  ^ here\n"}
	to retry, use: --limit @/edx/app/edx_ansible/edx_ansible/docker/plays/edxapp.retry

PLAY RECAP *********************************************************************
127.0.0.1                  : ok=62   changed=48   unreachable=0    failed=1   

The command '/bin/sh -c sudo /edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook edxapp.yml     -c local -i '127.0.0.1,'     -t 'install,assets,devstack'     --extra-vars="edx_platform_version=${OPENEDX_RELEASE}"     --extra-vars="@/ansible_overrides.yml"     --extra-vars="@/devstack.yml"     --extra-vars="@/devstack/ansible_overrides.yml"     && rm -rf /edx/app/edxapp/edx-platform' returned a non-zero code: 2

I feel like this is very close to an error that we periodically see in the Travis CI tests...

@thraxil
Copy link
Author

thraxil commented Nov 9, 2018

OK, I've fixed that issue in appsembler/configuration#178 and pushed an appsembler/edxapp:hawthorn image to docker hub.

@thraxil thraxil changed the title WIP: appsembler hawthorn devstack Appsembler hawthorn devstack Nov 9, 2018
@thraxil
Copy link
Author

thraxil commented Nov 9, 2018

OK, I haven't fully tested it yet, especially with AMC running alongside it. But I think the basics are all here.

make dev.clone should pull down the right stuff and checkout the Tahoe Hawthorn branch of edx-platform, make pull should pull the right docker images, and so forth.

@OmarIthawi @thatguynishant it's probably at a good point for you both to check it out and see if I missed anything obvious.

@OmarIthawi
Copy link

Thank you so much @thraxil for taking the lead on this. Haven't tried it yet. But looks pretty good in general.

A couple of points:

  • Did you try the make dev.reset? This is a feature that I rely on occasionally to wipe out my environment.
  • Are we pinning stuff to open-release/hawthorn.master when possible? If not, then this devstack will build on moving targets that will soon fail.
  • Who has access to appsembler on DockerHub?

Thank you again!

Copy link

@OmarIthawi OmarIthawi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a couple of questions ☝️. Please feel free to tag me again for another review when the questions are addressed.

Overall, looks good to me.

Thanks @thraxil!

@thatguynishant
Copy link

@thraxil
Copy link
Author

thraxil commented Nov 15, 2018

@OmarIthawi

  • Did you try the make dev.reset? This is a feature that I rely on occasionally to wipe out my environment.

make dev.reset runs (essentially) ./repo.sh reset, then pull. Those both seem to work for me, so it ought to be fine.

  • Are we pinning stuff to open-release/hawthorn.master when possible? If not, then this devstack will build on moving targets that will soon fail.

I'm not really sure what that means or where we would set it.

  • Who has access to appsembler on DockerHub?
    dockerhub

And we can add anyone we need to. Once we've got it stabilized, no one should be pushing directly there anyway; it ought to be built and pushed from cloudbuild/jenkins automatically.

@OmarIthawi
Copy link

OmarIthawi commented Nov 15, 2018

@thraxil I think we should hardcode the OPENEDX_RELEASE to open-release/hawthorn.master for the purpose of using Hawthorn, except, of course, the edx-platform itself.:

devstack/repo.sh

Lines 20 to 24 in da48689

if [ -n "${OPENEDX_RELEASE}" ]; then
OPENEDX_GIT_BRANCH=open-release/${OPENEDX_RELEASE}
else
OPENEDX_GIT_BRANCH=master
fi

@thraxil
Copy link
Author

thraxil commented Nov 26, 2018

@thatguynishant I cherry picked a couple of your commits into this PR.

@thatguynishant
Copy link

@thraxil I think it's good to go. We should merge this.

@OmarIthawi
Copy link

@thraxil @thatguynishant thank you for all of your work here! I think we should merge this.

I'll poke around soon and get my own devstack install. Hopefully will do that before Monday Dec 10th.

@thraxil thraxil merged commit 331bff3 into hawthorn Dec 5, 2018
@OmarIthawi OmarIthawi deleted the appsembler-hawthorn branch May 21, 2019 11:47
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

Successfully merging this pull request may close these issues.

4 participants