File locutus.spec of Package locutus
#
# spec file for package locutus
#
# Copyright (c) 2024 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/
#
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: locutus
Version: 0.2.0~rc.6
Release: 0
Summary: Configuration management for Kubernetes
License: Apache-2.0
URL: https://github.com/brancz/locutus
Source: locutus-%{version}.tar.gz
Source1: vendor.tar.gz
BuildRequires: go >= 1.22
%description
Configuration management for Kubernetes. Declaratively define of rollout,
success, failure and rollback, in a Kubernetes native way, without having to
know all the low-level bits, but with the possibility to dive into, explore,
extend and customize everything.
Motivations and comparisons
At CoreOS / Red Hat we built a wide range of automation tools on top of
Kubernetes, sometimes referred to as "Operators" (application specific
Kubernetes controllers), that manage the entire lifecycle of an application or
an application stack, however while suitable for some cases, it's unsuitable
for others. This project is research to some extend, in order to explore how
much of this work can be implemented in a generic way, but still allowing users
who want to have more fine grained control. At best this project can be used
without having to write any Go code, however it is extensible, so that if one
does find that the functionality that comes out of the box everything is
extensible.
To some degree this project compares to the operator-sdk, but this project does
not only embrace level-triggered deployment management but treats edge
triggered deployments (as typically done through CI/CD pipelines) as much of a
first class citizen as level-triggered ones.
%prep
%autosetup -p 1 -a 1
%build
go build \
-mod=vendor \
-buildmode=pie \
-o bin/%{name}
%install
# Install the binary.
install -D -m 0755 bin/%{name} %{buildroot}/%{_bindir}/%{name}
%files
%doc README.md
%license LICENSE
%{_bindir}/%{name}
%changelog