SHA256
1
0
forked from pool/hubble
hubble/hubble.spec

143 lines
5.2 KiB
RPMSpec

#
# spec file for package hubble
#
# 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: hubble
Version: 1.16.0
Release: 0
Summary: Network, Service & Security Observability for Kubernetes using eBPF
License: Apache-2.0
URL: https://github.com/cilium/hubble
Source: hubble-%{version}.tar.gz
Source1: vendor.tar.gz
BuildRequires: go >= 1.22
%description
Hubble is a fully distributed networking and security observability platform
for cloud native workloads. It is built on top of Cilium and eBPF to enable
deep visibility into the communication and behavior of services as well as the
networking infrastructure in a completely transparent manner.
Hubble can answer questions such as:
* Service dependencies & communication map:
- What services are communicating with each other? How frequently? What
does the service dependency graph look like?
- What HTTP calls are being made? What Kafka topics does a service consume
from or produce to?
* Operational monitoring & alerting:
- Is any network communication failing? Why is communication failing? Is it
DNS? Is it an application or network problem? Is the communication broken
on layer 4 (TCP) or layer 7 (HTTP)?
- Which services have experienced a DNS resolution problems in the last 5
minutes? Which services have experienced an interrupted TCP connection
recently or have seen connections timing out? What is the rate of unanswered
TCP SYN requests?
* Application monitoring:
- What is the rate of 5xx or 4xx HTTP response codes for a particular
service or across all clusters?
- What is the 95th and 99th percentile latency between HTTP requests and
responses in my cluster? Which services are performing the worst? What is
the latency between two services?
* Security observability:
- Which services had connections blocked due to network policy? What
services have been accessed from outside the cluster? Which services have
resolved a particular DNS name?
%package -n %{name}-bash-completion
Summary: Bash Completion for %{name}
Group: System/Shells
Requires: %{name} = %{version}
Requires: bash-completion
Supplements: (%{name} and bash-completion)
BuildArch: noarch
%description -n %{name}-bash-completion
Bash command line completion support for %{name}.
%package -n %{name}-fish-completion
Summary: Fish Completion for %{name}
Group: System/Shells
Requires: %{name} = %{version}
Supplements: (%{name} and fish)
BuildArch: noarch
%description -n %{name}-fish-completion
Fish command line completion support for %{name}.
%package -n %{name}-zsh-completion
Summary: Zsh Completion for %{name}
Group: System/Shells
Requires: %{name} = %{version}
Supplements: (%{name} and zsh)
BuildArch: noarch
%description -n %{name}-zsh-completion
zsh command line completion support for %{name}.
%prep
%autosetup -p 1 -a 1
%build
COMMIT_HASH="$(sed -n 's/commit: \(.*\)/\1/p' %_sourcedir/hubble.obsinfo)"
go build \
-mod=vendor \
-buildmode=pie \
-ldflags=" \
-X github.com/cilium/cilium/hubble/pkg.GitBranch=main \
-X github.com/cilium/cilium/hubble/pkg.GitHash=${COMMIT_HASH:0:8} \
-X github.com/cilium/cilium/hubble/pkg.Version=%{version}" \
-o bin/hubble .
%install
# Install the binary.
install -D -m 0755 bin/%{name} "%{buildroot}/%{_bindir}/%{name}"
# create the bash completion file
mkdir -p %{buildroot}%{_datarootdir}/bash-completion/completions/
%{buildroot}/%{_bindir}/%{name} completion bash > %{buildroot}%{_datarootdir}/bash-completion/completions/%{name}
# create the fish completion file
mkdir -p %{buildroot}%{_datarootdir}/fish/vendor_completions.d/
%{buildroot}/%{_bindir}/%{name} completion fish > %{buildroot}%{_datarootdir}/fish/vendor_completions.d/%{name}.fish
# create the zsh completion file
mkdir -p %{buildroot}%{_datarootdir}/zsh_completion.d/
%{buildroot}/%{_bindir}/%{name} completion zsh > %{buildroot}%{_datarootdir}/zsh_completion.d/_%{name}
%files
%doc README.md
%license LICENSE
%{_bindir}/%{name}
%files -n %{name}-bash-completion
%dir %{_datarootdir}/bash-completion/completions/
%{_datarootdir}/bash-completion/completions/%{name}
%files -n %{name}-fish-completion
%dir %{_datarootdir}/fish
%dir %{_datarootdir}/fish/vendor_completions.d
%{_datarootdir}/fish/vendor_completions.d/%{name}.fish
%files -n %{name}-zsh-completion
%defattr(-,root,root)
%dir %{_datarootdir}/zsh_completion.d/
%{_datarootdir}/zsh_completion.d/_%{name}
%changelog