363 строки
13 KiB
Plaintext
363 строки
13 KiB
Plaintext
#
|
|
# spec file for package kured
|
|
#
|
|
# Copyright (c) 2021 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
# nodebuginfo
|
|
|
|
|
|
# Remove stripping of Go binaries.
|
|
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
|
|
# Project upstream commit.
|
|
%define commit 2b36eab
|
|
%global debug_package %{nil}
|
|
Summary: Kubernetes daemonset to perform safe automatic node reboots
|
|
Name: kured
|
|
Version: 1.15.0
|
|
Release: 1%{?dist}
|
|
License: Apache-2.0
|
|
Vendor: Microsoft Corporation
|
|
Distribution: Azure Linux
|
|
Group: System/Management
|
|
URL: https://github.com/weaveworks/kured
|
|
#Source0: https://github.com/weaveworks/kured/archive/refs/tags/%{version}.tar.gz
|
|
Source0: %{name}-%{version}.tar.gz
|
|
# Below is a manually created tarball, no download link.
|
|
# We're using pre-populated Go modules from this tarball, since network is disabled during build time.
|
|
# How to re-build this file:
|
|
# 1. wget https://github.com/weaveworks/kured/archive/refs/tags/%%{version}.tar.gz -O %%{name}-%%{version}.tar.gz
|
|
# 2. tar -xf %%{name}-%%{version}.tar.gz
|
|
# 3. cd %%{name}-%%{version}
|
|
# 4. go mod vendor
|
|
# 5. tar --sort=name \
|
|
# --mtime="2021-04-26 00:00Z" \
|
|
# --owner=0 --group=0 --numeric-owner \
|
|
# --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \
|
|
# -cf %%{name}-%%{version}-vendor.tar.gz vendor
|
|
#
|
|
Source1: %{name}-%{version}-vendor.tar.gz
|
|
Patch0: kured-imagePullPolicy.patch
|
|
BuildRequires: fdupes
|
|
BuildRequires: go-go-md2man
|
|
BuildRequires: golang
|
|
ExcludeArch: s390
|
|
|
|
%description
|
|
Kured (KUbernetes REboot Daemon) is a Kubernetes daemonset that
|
|
performs safe automatic node reboots when the need to do so is
|
|
indicated by the package management system of the underlying OS.
|
|
|
|
- Watches for the presence of a reboot sentinel e.g. %{_localstatedir}/run/reboot-required
|
|
|
|
- Utilises a lock in the API server to ensure only one node reboots at a time
|
|
|
|
- Optionally defers reboots in the presence of active Prometheus alerts
|
|
|
|
- Cordons & drains worker nodes before reboot, uncordoning them after
|
|
|
|
%package k8s-yaml
|
|
Summary: Kubernetes yaml file to run kured container
|
|
Group: System/Management
|
|
BuildArch: noarch
|
|
|
|
%description k8s-yaml
|
|
This package contains the yaml file requried to download and run the
|
|
kured container in a kubernetes cluster.
|
|
|
|
%prep
|
|
%setup -q
|
|
%patch 0 -p1
|
|
|
|
%build
|
|
# create vendor folder from the vendor tarball and set vendor mode
|
|
tar -xf %{SOURCE1} --no-same-owner
|
|
|
|
# Build the binary.
|
|
export VERSION=%{version}
|
|
export COMMIT=%{commit}
|
|
go build \
|
|
-mod vendor -v -buildmode=pie \
|
|
-ldflags "-s -w -X main.gitCommit=$COMMIT -X main.version=$VERSION" \
|
|
-o %{name} cmd/kured/*go
|
|
|
|
%install
|
|
# Install the binary.
|
|
install -D -m 0755 %{name} "%{buildroot}/%{_bindir}/%{name}"
|
|
|
|
# Build the man page from markdown documentation.
|
|
go-md2man -in README.md -out %{name}.1
|
|
|
|
# Install the man page.
|
|
install -D -m 0644 %{name}.1 "%{buildroot}/%{_mandir}/man1/%{name}.1"
|
|
rm %{name}.1
|
|
|
|
# Install provided yaml file to download and run the kured container
|
|
mkdir -p %{buildroot}%{_datadir}/k8s-yaml/kured
|
|
cat kured-rbac.yaml kured-ds.yaml > %{buildroot}%{_datadir}/k8s-yaml/kured/kured.yaml
|
|
chmod 644 %{buildroot}%{_datadir}/k8s-yaml/kured/kured.yaml
|
|
sed -i -e 's|image: .*|image: registry.opensuse.org/kubic/kured:%{version}|g' %{buildroot}%{_datadir}/k8s-yaml/kured/kured.yaml
|
|
|
|
%fdupes %{buildroot}
|
|
|
|
%files
|
|
%doc README.md
|
|
%license LICENSE
|
|
%{_bindir}/%{name}
|
|
%{_mandir}/man1/kured.1.*
|
|
|
|
%files k8s-yaml
|
|
%dir %{_datarootdir}/k8s-yaml
|
|
%dir %{_datarootdir}/k8s-yaml/kured
|
|
%{_datarootdir}/k8s-yaml/kured/kured.yaml
|
|
|
|
%changelog
|
|
* Mon Jan 29 2024 Sean Dougherty <sdougherty@microsoft.com> 1.15.0-1
|
|
- Upgrade to 1.15.0 for Mariner 3.0
|
|
|
|
* Mon Oct 16 2023 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 1.9.1-15
|
|
- Bump release to rebuild with go 1.20.10
|
|
|
|
* Tue Oct 10 2023 Dan Streetman <ddstreet@ieee.org> - 1.9.1-14
|
|
- Bump release to rebuild with updated version of Go.
|
|
|
|
* Mon Aug 07 2023 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 1.9.1-13
|
|
- Bump release to rebuild with go 1.19.12
|
|
|
|
* Thu Jul 13 2023 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 1.9.1-12
|
|
- Bump release to rebuild with go 1.19.11
|
|
|
|
* Thu Jun 15 2023 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 1.9.1-11
|
|
- Bump release to rebuild with go 1.19.10
|
|
|
|
* Wed Apr 05 2023 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 1.9.1-10
|
|
- Bump release to rebuild with go 1.19.8
|
|
|
|
* Tue Mar 28 2023 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 1.9.1-9
|
|
- Bump release to rebuild with go 1.19.7
|
|
|
|
* Wed Mar 15 2023 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 1.9.1-8
|
|
- Bump release to rebuild with go 1.19.6
|
|
|
|
* Fri Feb 03 2023 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 1.9.1-7
|
|
- Bump release to rebuild with go 1.19.5
|
|
|
|
* Wed Jan 18 2023 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 1.9.1-6
|
|
- Bump release to rebuild with go 1.19.4
|
|
|
|
* Fri Dec 16 2022 Daniel McIlvaney <damcilva@microsoft.com> - 1.9.1-5
|
|
- Bump release to rebuild with go 1.18.8 with patch for CVE-2022-41717
|
|
|
|
* Tue Nov 01 2022 Olivia Crain <oliviacrain@microsoft.com> - 1.9.1-4
|
|
- Bump release to rebuild with go 1.18.8
|
|
|
|
* Mon Aug 22 2022 Olivia Crain <oliviacrain@microsoft.com> - 1.9.1-3
|
|
- Bump release to rebuild against Go 1.18.5
|
|
|
|
* Tue Jun 14 2022 Muhammad Falak <mwani@microsoft.com> - 1.9.1-2
|
|
- Bump release to rebuild with golang 1.18.3
|
|
|
|
* Wed Feb 09 2022 Henry Li <lihl@microsoft.com> - 1.9.1-1
|
|
- Upgrade to version 1.9.1
|
|
- Remove systemctl-path.patch
|
|
- Update kured-imagePullPolicy.patch
|
|
|
|
* Tue Oct 12 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 1.6.1-2
|
|
- Switching to using a single digit for the 'Release' tag.
|
|
|
|
* Fri Jun 18 2021 Henry Li <lihl@microsoft.com> 1.6.1-1.6
|
|
- Initial CBL-Mariner import from openSUSE Tumbleweed (license: same as "License" tag).
|
|
- License Verified
|
|
- Use golang as build dependency
|
|
- Remove {?ext_man}, which is not supported in CBL-Mariner
|
|
- Add %global debug_package %{nil} to resolve empty file error
|
|
- Use self-built go vendor source
|
|
- Add -v to the go build step
|
|
|
|
* Tue Feb 2 2021 kukuk@suse.com
|
|
- Update to version 1.6.1:
|
|
- add additional parameters to override the drain/reboot slack messages
|
|
- rename message template parameters so they are not related to slack
|
|
- Improve coordinated reboot output
|
|
- Add more logs into gates
|
|
- Added support for time wrap in timewindow.Contains
|
|
|
|
* Tue Nov 24 2020 kukuk@suse.com
|
|
- Update to version 1.5.1:
|
|
* rename annotation-ttl to lock-ttl in all places, follow-up to #213
|
|
* Drain: allow pods grace period to terminate
|
|
* Prepare 1.5.1 release
|
|
* Add lint job
|
|
* Make lint happier in pkg folder
|
|
* Make lint happier
|
|
* Remove prom-active-alerts
|
|
* update docs following #210
|
|
* run 'go mod tidy'
|
|
* Replaced --annotationTTL with --lockTTL and made it work correctly
|
|
* Refactor drain/uncordon
|
|
* Remove kubectl exception in container scanning
|
|
* Bump prometheus
|
|
* Use kubectl as library instead of calling from cli
|
|
* fix: Follow DKL-DI-0004 guideline
|
|
* feat: Add security scanning into CI
|
|
* add missing quote - thanks Karan Arora for reporting
|
|
* Bump helm chart version
|
|
* Remove quote for parameter alert-filter-regexp
|
|
* Release helper
|
|
|
|
* Mon Sep 21 2020 kukuk@suse.com
|
|
- Update to version 1.5.0:
|
|
* Prepare 1.5.0 release
|
|
* Bump helm/kind-action from v1.0.0-rc.1 to v1.0.0
|
|
* Bump helm/chart-testing-action from v1.0.0-rc.2 to v1.0.0
|
|
* Add dependabot
|
|
* Prepare for k8s release 1.19 (Aug 25)
|
|
|
|
* Fri Aug 14 2020 kukuk@suse.com
|
|
- Update to version 1.4.5:
|
|
* document how releases are town wrt Helm bits
|
|
* bump versions for 1.4.5 release
|
|
* Use nindent, not indent
|
|
* chart: update readme
|
|
* Bump chart version
|
|
* Add missing 'end'
|
|
* Chart: Support extraEnvVars
|
|
* update install instructions to use latest
|
|
* update chart version
|
|
* Prep for 1.4.4 release
|
|
* bump and fix
|
|
* split matchLabels template
|
|
* restructured and improved service
|
|
|
|
* Tue Jun 30 2020 dmueller@suse.com
|
|
- Update to version 1.4.3:
|
|
* bump and fix
|
|
* split matchLabels template
|
|
* restructured and improved service
|
|
* bumped kured to upcoming 1.4.3 fixed servicemonitor indent fixed quotes for arguments
|
|
* update things for 1.4.2 release
|
|
* Use GITHUB_TOKEN for releasing chart
|
|
* make markdownlint happier
|
|
* update version
|
|
* prepare chart-release for 1.4.1
|
|
* Revert #139
|
|
- use obs-service for regenerating vendor.tar.gz
|
|
|
|
* Tue Jun 30 2020 Thorsten Kukuk <kukuk@suse.com>
|
|
- Update to version 1.4.2
|
|
- Adding --annotation-ttl for automatic unlock
|
|
- Refresh vendor.tar.xz
|
|
|
|
* Mon May 18 2020 Thorsten Kukuk <kukuk@suse.com>
|
|
- kured-imagePullPolicy.patch: always update the image
|
|
|
|
* Sun May 17 2020 Thorsten Kukuk <kukuk@suse.com>
|
|
- systemctl-path.patch: last systemd update removed symlinks
|
|
from /bin ...
|
|
|
|
* Mon May 11 2020 Thorsten Kukuk <kukuk@suse.com>
|
|
- Update to version 1.4.0
|
|
- Updated kubectl, client-go, etc to k8s 1.17 (#127, #135)
|
|
- Update to go 1.13 (#130)
|
|
- print node id when commanding reboot (#134)
|
|
|
|
* Wed Apr 22 2020 Dominique Leuenberger <dimstar@opensuse.org>
|
|
- Fix build-dependency: we require golang(API) 1.12, not the exact
|
|
go package version 1.12.
|
|
|
|
* Mon Mar 2 2020 Thorsten Kukuk <kukuk@suse.com>
|
|
- Update to version 1.3.0
|
|
- Update k8s client tools to 1.15.x
|
|
- Ad Slack channel name configuration
|
|
- Add reboot window
|
|
- Obsoletes k8s-1.14.diff
|
|
- Remove kured-telemetrics.patch, chances that upstream accepts
|
|
any third party code are nearly zero.
|
|
- Update vendor.tar.xz
|
|
|
|
* Mon Jun 24 2019 kukuk@suse.de
|
|
- k8s-1.14.diff: kubernetes 1.14.1 support from git
|
|
|
|
* Wed Jun 5 2019 kukuk@suse.de
|
|
- Fix path to image in manifest
|
|
|
|
* Wed May 22 2019 kukuk@suse.de
|
|
- Update to version 1.2.0
|
|
- support newer kubernetes versions
|
|
- Adjust kured-telemetrics.patch
|
|
- Update vendor.tar.gz with recent versions
|
|
|
|
* Sat Apr 6 2019 kukuk@suse.de
|
|
- Enable building on s390x
|
|
|
|
* Thu Mar 28 2019 Jan Engelhardt <jengelh@inai.de>
|
|
- Combine %%setup calls.
|
|
|
|
* Thu Mar 28 2019 kukuk@suse.de
|
|
- kured-telemetrics.patch: add hooks for telemetrics data
|
|
- Renamed kured-yaml to kured-k8s-yaml to follow new policy
|
|
|
|
* Thu Feb 28 2019 kukuk@suse.de
|
|
- Change path in yaml file to point to official container image
|
|
|
|
* Fri Jan 18 2019 kukuk@suse.de
|
|
- Create a correct yaml file to download and run the kured container
|
|
image in a kubernetes cluster
|
|
- Create new subpackage containing only the yaml file, so that
|
|
people using the container don't need to install the not needed
|
|
full package.
|
|
|
|
* Thu Nov 15 2018 Jeff Kowalczyk <jkowalczyk@suse.com>
|
|
- Update to kured 1.1.0
|
|
- Upstream bumped dependency on go1.10 via dependency k8s.io/client-go 0.9.0
|
|
https://github.com/kubernetes/client-go
|
|
- Provide dependencies in separate vendor.tar.gz
|
|
- Improvements
|
|
* RBAC support
|
|
* Use the systemctl in the host mount namespace to effect reboots, reducing
|
|
image size and eliminating the potential for incompatibility
|
|
* Notify Slack on drain in addition to reboot
|
|
* Pass through log output from invoked kubectl commands
|
|
* Tolerate NoSchedule taint on node-role.kubernetes.io/master
|
|
* Fixed reversal of daemonset name/namespace arguments and comments in the
|
|
manifest
|
|
- Kubernetes Version Compatibility
|
|
* The daemon image contains a 1.12.x k8s.io/client-go and kubectl binary for
|
|
the purposes of maintaining the lock and draining worker nodes. Kubernetes
|
|
aims to provide forwards & backwards compatibility of one minor version
|
|
between client and server, so this should work on 1.11.x and 1.13.x.
|
|
* Tested in minikube on 1.11.4, 1.12.1 & 1.13.0-alpha.2
|
|
* Tested in production on 1.11.2 & 1.12.2
|
|
|
|
* Thu Sep 13 2018 jkowalczyk@suse.com
|
|
- Remove hardcoded GOARCH=amd64 and GOOS=linux
|
|
- Revise go build arg -ldflags and add -buildmode=pie
|
|
- Together these fix rpmlint warnings:
|
|
* position-independent-executable-suggested
|
|
* statically-linked-binary
|
|
- Upstream kured project code imports package as 'context'. Bump BuildRequires
|
|
to go1.7 wherein import path for package context graduates from
|
|
'golang.org/x/net/context' to the standard library as 'context'.
|
|
https://golang.org/doc/go1.7#context
|
|
- Bump release number
|
|
|
|
* Wed Sep 12 2018 jkowalczyk@suse.com
|
|
- Initial packaging of upstream master branch @ 5731b98 (tagged 1.0.0 + 24)
|
|
- Include 24 commits since release 1.0.0 updating kubernetes version support
|
|
- Dependency sources vendored via dep ensure per upstream build instructions
|
|
- Man page converted from README.md, some HTML formatting artifacts present
|
|
- rpmlint warning: position-independent-executable-suggested
|
|
* go1.11 currently in review status supports option -buildmode=pie
|
|
- rpmlint warning: statically-linked-binary
|
|
* Go binaries are generally statically linked
|