Skip to content

Commit

Permalink
UPSTREAM: <carry>: openshift: Add spec file for cluster-autoscaler.
Browse files Browse the repository at this point in the history
  • Loading branch information
Avesh Agarwal authored and enxebre committed Oct 28, 2019
1 parent 2ebb7af commit 2cc1cb3
Showing 1 changed file with 139 additions and 0 deletions.
139 changes: 139 additions & 0 deletions cluster-autoscaler.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
#
# This is a template package spec that will support Go builds following the OpenShift conventions.
# It expects a set of standard env vars that define the Git version being built and can also handle
# multi-architecture Linux builds. It has stubs for cross building.
#
# Search for TODO and fill those sections out as appropriate.
#

#debuginfo not supported with Go
%global debug_package %{nil}

# modifying the Go binaries breaks the DWARF debugging
%global __os_install_post %{_rpmconfigdir}/brp-compress

# %commit and %os_git_vars are intended to be set by tito custom builders provided
# in the .tito/lib directory. The values in this spec file will not be kept up to date.
%{!?commit: %global commit HEAD }
%global shortcommit %(c=%{commit}; echo ${c:0:7})
# os_git_vars needed to run hack scripts during rpm builds
%{!?os_git_vars: %global os_git_vars OS_GIT_VERSION='' OS_GIT_COMMIT='' OS_GIT_MAJOR='' OS_GIT_MINOR='' OS_GIT_TREE_STATE='' }

%if 0%{?skip_build}
%global do_build 0
%else
%global do_build 1
%endif
%if 0%{?skip_prep}
%global do_prep 0
%else
%global do_prep 1
%endif

%if 0%{?fedora} || 0%{?epel}
%global need_redistributable_set 0
%else
# Due to library availability, redistributable builds only work on x86_64
%ifarch x86_64
%global need_redistributable_set 1
%else
%global need_redistributable_set 0
%endif
%endif
%{!?make_redistributable: %global make_redistributable %{need_redistributable_set}}

#
# Customize from here.
#

%global golang_version 1.9.1
%{!?version: %global version 1.2.0}
%{!?release: %global release 1}

%if "%{dist}" == ".el7aos"
%global package_name atomic-openshift
%global product_name Atomic OpenShift
%else
%global package_name origin
%global product_name Origin
%endif
%global import_path github.com/openshift/kubernetes-autoscaler

Name: %{package_name}-cluster-autoscaler
Version: %{version}
Release: %{release}%{?dist}
Summary: Cluster Autoscaler for OpenShift and Kubernetes
License: ASL 2.0
URL: https://%{import_path}

Source0: https://%{import_path}/archive/%{commit}/cluster-autoscaler-%{version}.tar.gz
BuildRequires: golang >= %{golang_version}

# If go_arches not defined fall through to implicit golang archs
%if 0%{?go_arches:1}
ExclusiveArch: %{go_arches}
%else
ExclusiveArch: x86_64 aarch64 ppc64le s390x
%endif

### AUTO-BUNDLED-GEN-ENTRY-POINT

%description
Cluster Autoscaler is a component that automatically adjusts
the size of a Kubernetes/OpenShift cluster so that all pods
have a place to run and there are no unneeded nodes.

%prep
%if 0%{do_prep}
%setup -n kubernetes-autoscaler-cluster-autoscaler-%{version}
mkdir `pwd`/../autoscaler
mv * `pwd`/../autoscaler
mkdir -p `pwd`/go/src/k8s.io
mv `pwd`/../autoscaler `pwd`/go/src/k8s.io
%endif

%build
GOPATH=`pwd`/go
cd go/src/k8s.io/autoscaler/cluster-autoscaler
%if 0%{do_build}
%if 0%{make_redistributable}
# Create Binaries for all internally defined arches
%{os_git_vars} make build-binary
%else
# Create Binaries only for building arch
%ifarch x86_64
BUILD_PLATFORM="linux/amd64"
%endif
%ifarch %{ix86}
BUILD_PLATFORM="linux/386"
%endif
%ifarch ppc64le
BUILD_PLATFORM="linux/ppc64le"
%endif
%ifarch %{arm} aarch64
BUILD_PLATFORM="linux/arm64"
%endif
%ifarch s390x
BUILD_PLATFORM="linux/s390x"
%endif
OS_ONLY_BUILD_PLATFORMS="${BUILD_PLATFORM}" %{os_git_vars} make build-binary
%endif
%endif

%install

PLATFORM="$(go env GOHOSTOS)/$(go env GOHOSTARCH)"
install -d %{buildroot}%{_bindir}

# install binary
install -d %{buildroot}%{_bindir}
install -p -m 755 go/src/k8s.io/autoscaler/cluster-autoscaler/cluster-autoscaler %{buildroot}%{_bindir}/cluster-autoscaler

%files
%doc go/src/k8s.io/autoscaler/cluster-autoscaler/README.md
%license go/src/k8s.io/autoscaler/LICENSE
%{_bindir}/cluster-autoscaler

%changelog
* Tue Apr 17 2018 Avesh Agarwal <[email protected]> 1.2.0-1
- Initial cluster autoscaler spec file.

0 comments on commit 2cc1cb3

Please sign in to comment.