System configuration for the OpenDev Collaboratory
4918594aa4
After investigating why every release seems to take hours, we noticed that even in zero-delta updates where nothing has changed upstream, we'd get a utimensat() call that updated the modified time nanoseconds portion; e.g. lstat("Everything/x86_64/Packages/a/arch-install-scripts-23-1.fc31.noarch.rpm", {st_mode=S_IFREG|0644, st_size=28004, ...}) = 0 utimensat(AT_FDCWD, "Everything/x86_64/Packages/a/arch-install-scripts-23-1.fc31.noarch.rpm", [UTIME_NOW, {tv_sec=1585676005, tv_nsec=6041000} /* 2020-03-31T17:33:25.006041000+0000 */], AT_SYMLINK_NOFOLLOW) = 0 This does not apply; in fact openafs uses the ns field as some sort of generation counter [1]. This update is enough to convince openafs the file has changed and it needs to be resynced, meaning that basically every rsync run results in a full release. This unnecessary update been fixed with [2] but is only in rsync 3.1.3+; our bionic host is currently 3.1.2. Dropping "-t" from the rsync commands avoids transferring modification times and should avoid this problem. While looking, "-D" turns on "--devices" and "--specials" to transfer block devices and named sockets/fifos. Turn this off. Also remove "-p" if it was present. We already did this for centos with Ib5db052cdd23e39aecbeead15cf08d4bd7fcab38 and Fedora with Id24196791f80cd99fe8a330fb2c7c6d893fc9995, where odd upstream permissions such as setgid on directories can't be synced to afs. Consistently remove it. Also switch back the fedora updates to just "-v"; we had it at "-i" for debugging. [1] http://eavesdrop.openstack.org/irclogs/%23opendev/%23opendev.2020-06-15.log.html#t2020-06-15T02:58:08-2 [2] https://git.samba.org/?p=rsync.git;a=patch;h=0f8e9e2d8638e47d646a6baba694b303ac84e695 Change-Id: I78f3d4990b168c71185eb1c4900ceeaca4b6a16f |
||
---|---|---|
doc | ||
docker | ||
hiera | ||
inventory | ||
kubernetes | ||
launch | ||
manifests | ||
modules/openstack_project | ||
playbooks | ||
roles | ||
roles-test | ||
testinfra | ||
tools | ||
zuul.d | ||
.ansible-lint | ||
.gitignore | ||
.gitreview | ||
bindep.txt | ||
COPYING.GPL | ||
Gemfile | ||
install_modules.sh | ||
install_puppet.sh | ||
make_swap.sh | ||
modules.env | ||
mount_volume.sh | ||
Rakefile | ||
README.rst | ||
run_k8s_ansible.sh | ||
run_puppet.sh | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
Puppet Modules
These are a set of puppet manifests and modules that are currently being used to manage the OpenStack Project infrastructure.
The main entry point is in manifests/site.pp.
In general, most of the modules here are designed to be able to be run either in agent or apply mode.
These puppet modules require puppet 2.7 or greater. Additionally, the site.pp manifest assumes the existence of hiera.
See http://docs.openstack.org/infra/system-config for more information.
Documentation
The documentation presented at http://docs.openstack.org/infra/system-config comes from https://opendev.org/opendev/system-config repo's docs/source. To build the documentation use
tox -evenv python setup.py build_sphinx