Merge pull request #117677 from 06kellyjac/octant-desktop
This commit is contained in:
commit
aa05808456
@ -6,7 +6,7 @@ let
|
|||||||
x86_64-linux = "Linux-64bit";
|
x86_64-linux = "Linux-64bit";
|
||||||
aarch64-linux = "Linux-arm64";
|
aarch64-linux = "Linux-arm64";
|
||||||
x86_64-darwin = "macOS-64bit";
|
x86_64-darwin = "macOS-64bit";
|
||||||
}."${system}" or (throw "Unsupported system: ${system}");
|
}.${system} or (throw "Unsupported system: ${system}");
|
||||||
baseurl = "https://github.com/vmware-tanzu/octant/releases/download";
|
baseurl = "https://github.com/vmware-tanzu/octant/releases/download";
|
||||||
fetchsrc = version: sha256: fetchzip {
|
fetchsrc = version: sha256: fetchzip {
|
||||||
url = "${baseurl}/v${version}/octant_${version}_${suffix}.tar.gz";
|
url = "${baseurl}/v${version}/octant_${version}_${suffix}.tar.gz";
|
||||||
@ -48,12 +48,14 @@ stdenv.mkDerivation rec {
|
|||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://octant.dev/";
|
homepage = "https://octant.dev/";
|
||||||
changelog = "https://github.com/vmware-tanzu/octant/blob/v${version}/CHANGELOG.md";
|
changelog = "https://github.com/vmware-tanzu/octant/blob/v${version}/CHANGELOG.md";
|
||||||
description = "Highly extensible platform for developers to better understand the complexity of Kubernetes clusters.";
|
description = "Highly extensible platform for developers to better understand the complexity of Kubernetes clusters";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Octant is a tool for developers to understand how applications run on a Kubernetes cluster.
|
Octant is a tool for developers to understand how applications run on a
|
||||||
It aims to be part of the developer's toolkit for gaining insight and approaching complexity found in Kubernetes.
|
Kubernetes cluster.
|
||||||
Octant offers a combination of introspective tooling, cluster navigation, and object management along with a
|
It aims to be part of the developer's toolkit for gaining insight and
|
||||||
plugin system to further extend its capabilities.
|
approaching complexity found in Kubernetes. Octant offers a combination of
|
||||||
|
introspective tooling, cluster navigation, and object management along
|
||||||
|
with a plugin system to further extend its capabilities.
|
||||||
'';
|
'';
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [ jk ];
|
maintainers = with maintainers; [ jk ];
|
||||||
|
78
pkgs/applications/networking/cluster/octant/desktop.nix
Normal file
78
pkgs/applications/networking/cluster/octant/desktop.nix
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
{ lib, stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, undmg }:
|
||||||
|
|
||||||
|
let
|
||||||
|
pname = "octant-desktop";
|
||||||
|
version = "0.18.0";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
inherit (stdenv.hostPlatform) system;
|
||||||
|
|
||||||
|
suffix = {
|
||||||
|
x86_64-linux = "AppImage";
|
||||||
|
x86_64-darwin = "dmg";
|
||||||
|
}.${system} or (throw "Unsupported system: ${system}");
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/vmware-tanzu/octant/releases/download/v${version}/Octant-${version}.${suffix}";
|
||||||
|
sha256 = {
|
||||||
|
x86_64-linux = "sha256-sQxplTJ3xfHELepx+t7FtMpPTxTDoqTAL8oUz4sLaW0=";
|
||||||
|
x86_64-darwin = "sha256-ov9j+SgGXCwUjQaX3eCxVvPwPgUIwtHJ6Lmx2crOfIM=";
|
||||||
|
}.${system};
|
||||||
|
};
|
||||||
|
|
||||||
|
linux = appimageTools.wrapType2 {
|
||||||
|
inherit name src passthru meta;
|
||||||
|
|
||||||
|
profile = ''
|
||||||
|
export LC_ALL=C.UTF-8
|
||||||
|
export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
|
||||||
|
'';
|
||||||
|
|
||||||
|
multiPkgs = null; # no 32bit needed
|
||||||
|
extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
|
||||||
|
extraInstallCommands =
|
||||||
|
let appimageContents = appimageTools.extractType2 { inherit name src; }; in
|
||||||
|
''
|
||||||
|
mv $out/bin/{${name},${pname}}
|
||||||
|
install -Dm444 ${appimageContents}/octant.desktop -t $out/share/applications
|
||||||
|
substituteInPlace $out/share/applications/octant.desktop \
|
||||||
|
--replace 'Exec=AppRun --no-sandbox' 'Exec=${pname}'
|
||||||
|
install -m 444 -D ${appimageContents}/octant.png \
|
||||||
|
$out/share/icons/hicolor/512x512/apps/octant.png
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
darwin = stdenv.mkDerivation {
|
||||||
|
inherit name src passthru meta;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ undmg ];
|
||||||
|
sourceRoot = "Octant.app";
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/Applications/Octant.app
|
||||||
|
cp -R . $out/Applications/Octant.app
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
passthru = { updateScript = ./update-desktop.sh; };
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://octant.dev/";
|
||||||
|
changelog = "https://github.com/vmware-tanzu/octant/blob/v${version}/CHANGELOG.md";
|
||||||
|
description = "Highly extensible platform for developers to better understand the complexity of Kubernetes clusters";
|
||||||
|
longDescription = ''
|
||||||
|
Octant is a tool for developers to understand how applications run on a
|
||||||
|
Kubernetes cluster.
|
||||||
|
It aims to be part of the developer's toolkit for gaining insight and
|
||||||
|
approaching complexity found in Kubernetes. Octant offers a combination of
|
||||||
|
introspective tooling, cluster navigation, and object management along
|
||||||
|
with a plugin system to further extend its capabilities.
|
||||||
|
'';
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = with maintainers; [ jk ];
|
||||||
|
platforms = [ "x86_64-linux" "x86_64-darwin" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
if stdenv.isDarwin
|
||||||
|
then darwin
|
||||||
|
else linux
|
36
pkgs/applications/networking/cluster/octant/update-desktop.sh
Executable file
36
pkgs/applications/networking/cluster/octant/update-desktop.sh
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#!nix-shell -i bash -p curl gnused gawk nix-prefetch
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT="$(dirname "$(readlink -f "$0")")"
|
||||||
|
NIX_DRV="$ROOT/desktop.nix"
|
||||||
|
if [ ! -f "$NIX_DRV" ]; then
|
||||||
|
echo "ERROR: cannot find desktop.nix in $ROOT"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
fetch_arch() {
|
||||||
|
VER="$1"; SUFFIX="$2"
|
||||||
|
URL="https://github.com/vmware-tanzu/octant/releases/download/v${VER}/Octant-${VER}.${SUFFIX}"
|
||||||
|
nix-prefetch "{ stdenv, fetchurl }:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = \"octant-desktop\"; version = \"${VER}\";
|
||||||
|
src = fetchurl { url = \"$URL\"; };
|
||||||
|
}
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
replace_sha() {
|
||||||
|
sed -i "s#$1 = \"sha256-.\{44\}\"#$1 = \"$2\"#" "$NIX_DRV"
|
||||||
|
}
|
||||||
|
|
||||||
|
OCTANT_VER=$(curl -Ls -w "%{url_effective}" -o /dev/null https://github.com/vmware-tanzu/octant/releases/latest | awk -F'/' '{print $NF}' | sed 's/v//')
|
||||||
|
|
||||||
|
OCTANT_DESKTOP_LINUX_X64_SHA256=$(fetch_arch "$OCTANT_VER" "AppImage")
|
||||||
|
OCTANT_DESKTOP_DARWIN_X64_SHA256=$(fetch_arch "$OCTANT_VER" "dmg")
|
||||||
|
|
||||||
|
sed -i "s/version = \".*\"/version = \"$OCTANT_VER\"/" "$NIX_DRV"
|
||||||
|
|
||||||
|
replace_sha "x86_64-linux" "$OCTANT_DESKTOP_LINUX_X64_SHA256"
|
||||||
|
replace_sha "x86_64-darwin" "$OCTANT_DESKTOP_DARWIN_X64_SHA256"
|
@ -28,11 +28,11 @@ replace_sha() {
|
|||||||
OCTANT_VER=$(curl -Ls -w "%{url_effective}" -o /dev/null https://github.com/vmware-tanzu/octant/releases/latest | awk -F'/' '{print $NF}' | sed 's/v//')
|
OCTANT_VER=$(curl -Ls -w "%{url_effective}" -o /dev/null https://github.com/vmware-tanzu/octant/releases/latest | awk -F'/' '{print $NF}' | sed 's/v//')
|
||||||
|
|
||||||
OCTANT_LINUX_X64_SHA256=$(fetch_arch "$OCTANT_VER" "Linux-64bit")
|
OCTANT_LINUX_X64_SHA256=$(fetch_arch "$OCTANT_VER" "Linux-64bit")
|
||||||
OCTANT_DARWIN_X64_SHA256=$(fetch_arch "$OCTANT_VER" "Linux-arm64")
|
OCTANT_LINUX_AARCH64_SHA256=$(fetch_arch "$OCTANT_VER" "Linux-arm64")
|
||||||
OCTANT_LINUX_AARCH64_SHA256=$(fetch_arch "$OCTANT_VER" "macOS-64bit")
|
OCTANT_DARWIN_X64_SHA256=$(fetch_arch "$OCTANT_VER" "macOS-64bit")
|
||||||
|
|
||||||
sed -i "s/version = \".*\"/version = \"$OCTANT_VER\"/" "$NIX_DRV"
|
sed -i "s/version = \".*\"/version = \"$OCTANT_VER\"/" "$NIX_DRV"
|
||||||
|
|
||||||
replace_sha "x86_64-linux" "$OCTANT_LINUX_X64_SHA256"
|
replace_sha "x86_64-linux" "$OCTANT_LINUX_X64_SHA256"
|
||||||
replace_sha "x86_64-darwin" "$OCTANT_LINUX_AARCH64_SHA256"
|
replace_sha "aarch64-linux" "$OCTANT_LINUX_AARCH64_SHA256"
|
||||||
replace_sha "aarch64-linux" "$OCTANT_DARWIN_X64_SHA256"
|
replace_sha "x86_64-darwin" "$OCTANT_DARWIN_X64_SHA256"
|
||||||
|
@ -562,6 +562,7 @@ in
|
|||||||
ociTools = callPackage ../build-support/oci-tools { };
|
ociTools = callPackage ../build-support/oci-tools { };
|
||||||
|
|
||||||
octant = callPackage ../applications/networking/cluster/octant { };
|
octant = callPackage ../applications/networking/cluster/octant { };
|
||||||
|
octant-desktop = callPackage ../applications/networking/cluster/octant/desktop.nix { };
|
||||||
starboard-octant-plugin = callPackage ../applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix { };
|
starboard-octant-plugin = callPackage ../applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix { };
|
||||||
|
|
||||||
pathsFromGraph = ../build-support/kernel/paths-from-graph.pl;
|
pathsFromGraph = ../build-support/kernel/paths-from-graph.pl;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user