Skip to content

Commit

Permalink
Merge pull request kubernetes-sigs#1544 from bogdando/rpm_spec
Browse files Browse the repository at this point in the history
[WIP] Support pbr builds and prepare for RPM packaging as the ansible-kubespray artifact
  • Loading branch information
bogdando authored Aug 21, 2017
2 parents 97031f9 + 668d028 commit 1b3ced1
Show file tree
Hide file tree
Showing 6 changed files with 209 additions and 3 deletions.
79 changes: 76 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -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/
1 change: 1 addition & 0 deletions ansible.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -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
60 changes: 60 additions & 0 deletions contrib/packaging/rpm/ansible-kubespray.spec
Original file line number Diff line number Diff line change
@@ -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 <[email protected]>
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
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
pbr>=1.6
ansible>=2.3.0
netaddr
jinja2>=2.9.6
52 changes: 52 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
[metadata]
name = ansible-kubespray
summary = Ansible modules for installing Kubernetes
description-file =
README.md
author = Kubespray
author-email = [email protected]
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
19 changes: 19 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -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)

0 comments on commit 1b3ced1

Please sign in to comment.