diff --git a/.gitignore b/.gitignore index f4c7d990a..8d5d5088b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,12 +8,85 @@ temp .tox .cache *.bak -*.egg-info -*.pyc -*.pyo *.tfstate *.tfstate.backup **/*.sw[pon] /ssh-bastion.conf **/*.sw[pon] vagrant/ + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# IPython Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# dotenv +.env + +# virtualenv +venv/ +ENV/ diff --git a/ansible.cfg b/ansible.cfg index d1741836a..aecb198a0 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -10,3 +10,4 @@ fact_caching_connection = /tmp stdout_callback = skippy library = ./library callback_whitelist = profile_tasks +roles_path = roles:$VIRTUAL_ENV/usr/local/share/kubespray/roles:$VIRTUAL_ENV/usr/local/share/ansible/roles diff --git a/contrib/packaging/rpm/ansible-kubespray.spec b/contrib/packaging/rpm/ansible-kubespray.spec new file mode 100644 index 000000000..1876e0c35 --- /dev/null +++ b/contrib/packaging/rpm/ansible-kubespray.spec @@ -0,0 +1,60 @@ +%global srcname ansible_kubespray + +%{!?upstream_version: %global upstream_version %{version}%{?milestone}} + +Name: ansible-kubespray +Version: XXX +Release: XXX +Summary: Ansible modules for installing Kubernetes + +Group: System Environment/Libraries +License: ASL 2.0 +Vendor: Kubespray +Url: https://github.com/kubernetes-incubator/kubespray +Source0: https://github.com/kubernetes-incubator/kubespray/archive/%{upstream_version}.tar.gz + +BuildArch: noarch +BuildRequires: git +BuildRequires: python2-devel +BuildRequires: python-setuptools +BuildRequires: python-d2to1 +BuildRequires: python-pbr + +Requires: ansible +Requires: python-jinja2 +Requires: python-netaddr + +%description + +Ansible-kubespray is a set of Ansible modules and playbooks for +installing a Kubernetes cluster. If you have questions, join us +on the https://slack.k8s.io, channel '#kubespray'. + +%prep +%autosetup -n %{name}-%{upstream_version} -S git + + +%build +%{__python2} setup.py build + + +%install +export PBR_VERSION=%{version} +export SKIP_PIP_INSTALL=1 +%{__python2} setup.py install --skip-build --root %{buildroot} + + +%files +%doc README.md +%doc inventory/inventory.example +%config /etc/kubespray/ansible.cfg +%config /etc/kubespray/inventory/group_vars/all.yml +%config /etc/kubespray/inventory/group_vars/k8s-cluster.yml +%license LICENSE +%{python2_sitelib}/%{srcname}-%{version}-py%{python2_version}.egg-info +/usr/local/share/kubespray/roles/ +/usr/local/share/kubespray/playbooks/ +%defattr(-,root,root) + + +%changelog diff --git a/requirements.txt b/requirements.txt index 6458113ac..31181e7ac 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +pbr>=1.6 ansible>=2.3.0 netaddr jinja2>=2.9.6 diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 000000000..3e147d6b8 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,52 @@ +[metadata] +name = ansible-kubespray +summary = Ansible modules for installing Kubernetes +description-file = + README.md +author = Kubespray +author-email = smainklh@gmail.com +home-page = https://github.com/kubernetes-incubator/kubespray +classifier = + License :: OSI Approved :: Apache Software License + Development Status :: 4 - Beta + Intended Audience :: Developers + Intended Audience :: System Administrators + Intended Audience :: Information Technology + Topic :: Utilities + +[global] +setup-hooks = + pbr.hooks.setup_hook + +[files] +data_files = + /usr/local/share/kubespray/playbooks/ = + cluster.yml + upgrade-cluster.yml + scale.yml + reset.yml + extra_playbooks/upgrade-only-k8s.yml + /usr/local/share/kubespray/roles = roles/* +doc_files = + README.md + inventory/inventory.example +config_files = + /etc/kubespray/ = + ansible.cfg + /etc/kubespray/inventory/ = + inventory/group_vars/all.yml + inventory/group_vars/k8s-cluster.yml + +[wheel] +universal = 1 + +[pbr] +skip_authors = True +skip_changelog = True + +[bdist_rpm] +group = "System Environment/Libraries" +requires = + ansible + python-jinja2 + python-netaddr diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..6a931a61c --- /dev/null +++ b/setup.py @@ -0,0 +1,19 @@ +# Copyright Red Hat, Inc. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import setuptools + +setuptools.setup( + setup_requires=['pbr'], + pbr=True)