Merge branch 'main' into update-versions
This commit is contained in:
commit
ccaa29275d
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -2,3 +2,4 @@
|
||||
*.tar.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
|
9
.gitmodules
vendored
9
.gitmodules
vendored
@ -4,3 +4,12 @@
|
||||
[submodule "cri-tools"]
|
||||
path = cri-tools
|
||||
url = https://src.opensuse.org/pool/cri-tools.git
|
||||
[submodule "fakeroot"]
|
||||
path = fakeroot
|
||||
url = https://src.opensuse.org/pool/fakeroot.git
|
||||
[submodule "crudini"]
|
||||
path = crudini
|
||||
url = https://src.opensuse.org/pool/crudini.git
|
||||
[submodule "autoconf"]
|
||||
path = autoconf
|
||||
url = https://src.opensuse.org/SLFO-pool/autoconf.git
|
||||
|
@ -190,10 +190,6 @@ staging_build:
|
||||
source_package: metallb-speaker-image
|
||||
source_project: isv:SUSE:Edge:Factory
|
||||
target_project: isv:SUSE:Edge:Factory:Staging
|
||||
- branch_package:
|
||||
source_package: venv
|
||||
source_project: isv:SUSE:Edge:Factory
|
||||
target_project: isv:SUSE:Edge:Factory:Staging
|
||||
- branch_package:
|
||||
source_package: ironic-image
|
||||
source_project: isv:SUSE:Edge:Factory
|
||||
|
@ -2,14 +2,14 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">values.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -2,14 +2,14 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">values.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
1
autoconf
Submodule
1
autoconf
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 015427056954e149061e5c176e72f6067ebe4fb010fb697aba7bcfbb0e6d5568
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
1
crudini
Submodule
1
crudini
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit c24bedd13bbd6ec8ac6edfc9b7495c94667e77af6dfbc681255650a392f4024c
|
@ -2,7 +2,7 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -2,14 +2,14 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">values.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
1
fakeroot
Submodule
1
fakeroot
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit a93afedfbd09dc0396c3f9edf415f3ad22cd24c7f0ff9ff72407d10c748ce0a5
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
BIN
ipcalc/ipcalc-1.0.3.tar.bz2
(Stored with Git LFS)
Normal file
BIN
ipcalc/ipcalc-1.0.3.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
50
ipcalc/ipcalc-disable-network-tests.patch
Normal file
50
ipcalc/ipcalc-disable-network-tests.patch
Normal file
@ -0,0 +1,50 @@
|
||||
Index: ipcalc-1.0.0/tests/meson.build
|
||||
===================================================================
|
||||
--- ipcalc-1.0.0.orig/tests/meson.build
|
||||
+++ ipcalc-1.0.0/tests/meson.build
|
||||
@@ -64,14 +64,6 @@ test('RandomIPv6Explicit',
|
||||
ipcalc.full_path() + ' -6 -r 24' + '|grep Address'
|
||||
]
|
||||
)
|
||||
-test('HostnameIPv6Localhost',
|
||||
- testrunner,
|
||||
- args : [
|
||||
- '--test-outfile',
|
||||
- ipcalc.full_path() + ' -6 -o localhost',
|
||||
- files('hostname-localhost-ipv6')
|
||||
- ]
|
||||
-)
|
||||
test('HostnameIPv4Localhost',
|
||||
testrunner,
|
||||
args : [
|
||||
@@ -88,30 +80,6 @@ test('HostnameIPv4LocalhostJson',
|
||||
files('hostname-localhost-ipv4-json')
|
||||
]
|
||||
)
|
||||
-test('IPIPv6Localhost',
|
||||
- testrunner,
|
||||
- args : [
|
||||
- '--test-outfile',
|
||||
- ipcalc.full_path() + ' -h ::1',
|
||||
- files('ip-localhost-ipv6')
|
||||
- ]
|
||||
-)
|
||||
-test('IPIPv4Localhost',
|
||||
- testrunner,
|
||||
- args : [
|
||||
- '--test-outfile',
|
||||
- ipcalc.full_path() + ' -h 127.0.0.1',
|
||||
- files('ip-localhost-ipv4')
|
||||
- ]
|
||||
-)
|
||||
-test('IPIPv4LocalhostJson',
|
||||
- testrunner,
|
||||
- args : [
|
||||
- '--test-outfile',
|
||||
- ipcalc.full_path() + ' -j -h 127.0.0.1',
|
||||
- files('ip-localhost-ipv4-json')
|
||||
- ]
|
||||
-)
|
||||
# --class-prefix tests
|
||||
test('AssignClassPrefix12',
|
||||
testrunner,
|
64
ipcalc/ipcalc.changes
Normal file
64
ipcalc/ipcalc.changes
Normal file
@ -0,0 +1,64 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 27 15:11:20 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.0.3:
|
||||
* When --no-decorate is given the default output will
|
||||
* include no colors
|
||||
* Correctly split networks with /31
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 2 20:43:13 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.0.2:
|
||||
* Fix ULA prefix generator to use only defined ULA range
|
||||
* Corrected manpage generation
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 16 15:16:34 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.0.1:
|
||||
- The application will now build even without ronn
|
||||
- Improved JSON output on single host input
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 3 20:54:10 UTC 2021 - Atri Bhattacharya <badshah400@gmail.com>
|
||||
|
||||
- Update to version 1.0.0:
|
||||
* Manpage was converted to markdown.
|
||||
- Switch to using meson for building; BuildRequires: meson >=
|
||||
0.49.
|
||||
- Addtional BuildRequires now needed: pkgconfig(libmaxminddb),
|
||||
rubygem(ronn).
|
||||
- Add ipcalc-disable-network-tests.patch: Disable tests requiring
|
||||
network.
|
||||
- Run tests as part of %check section.
|
||||
- New upstream URL and Source URL.
|
||||
- Drop patch patch-queue: no longer needed.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 4 10:07:35 UTC 2015 - mpluskal@suse.com
|
||||
|
||||
- Cleanup spec file with spec-clenaer
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jun 26 22:24:37 UTC 2011 - lazy.kent@opensuse.org
|
||||
|
||||
- refreshed patch to fix build in openSUSE >= 11.3
|
||||
- splitted off rpm changelog to changes
|
||||
- corrected License tag
|
||||
- added Authors
|
||||
- formatted spec
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 18 00:00:00 UTC 2007 - guru@unixtech.be
|
||||
|
||||
- moved to openSUSE Build Service
|
||||
- added minor patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Oct 22 00:00:00 UTC 2006 - guru@unixtech.be
|
||||
|
||||
- new upstream version
|
||||
- rewrote spec file
|
||||
|
||||
|
61
ipcalc/ipcalc.spec
Normal file
61
ipcalc/ipcalc.spec
Normal file
@ -0,0 +1,61 @@
|
||||
#
|
||||
# spec file for package ipcalc
|
||||
#
|
||||
# Copyright (c) 2023 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/
|
||||
#
|
||||
|
||||
|
||||
Name: ipcalc
|
||||
Version: 1.0.3
|
||||
Release: 0
|
||||
Summary: IPv4/IPv6 tool assisting in network calculations on the command line
|
||||
License: GPL-2.0-or-later
|
||||
Group: Productivity/Networking/System
|
||||
URL: https://gitlab.com/ipcalc/ipcalc
|
||||
Source0: https://gitlab.com/ipcalc/ipcalc/-/archive/%{version}/%{name}-%{version}.tar.bz2
|
||||
# PATCH-FEATURE-OPENSUSE ipcalc-disable-network-tests.patch badshah400@gmail.com -- Disable tests requiring network
|
||||
Patch0: ipcalc-disable-network-tests.patch
|
||||
BuildRequires: meson >= 0.49
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(libmaxminddb)
|
||||
Conflicts: netcalc
|
||||
|
||||
%description
|
||||
ipcalc is a modern tool to assist in network address calculations for IPv4 and
|
||||
IPv6. It acts both as a tool to output human readable information about a
|
||||
network or address, as well as a tool suitable to be used by scripts or other
|
||||
programs. It supports printing a summary about the provided network address,
|
||||
multiple command line options per information to be printed, transparent IPv6
|
||||
support, and in addition it will use libGeoIP if available to provide
|
||||
geographic information.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%meson
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
%check
|
||||
%meson_test
|
||||
|
||||
%files
|
||||
%doc README.md NEWS
|
||||
%license COPYING
|
||||
%{_bindir}/ipcalc
|
||||
|
||||
%changelog
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -2,14 +2,14 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">values.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
||||
|
@ -2,14 +2,14 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">values.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
@ -16,7 +16,7 @@
|
||||
#
|
||||
|
||||
|
||||
Name: nm-configurator-031
|
||||
Name: nm-configurator
|
||||
Version: 0.3.1
|
||||
Release: 0
|
||||
Summary: NM Configurator
|
||||
|
8
openstack-ironic-image/_constraints
Normal file
8
openstack-ironic-image/_constraints
Normal file
@ -0,0 +1,8 @@
|
||||
<constraints>
|
||||
<hardware>
|
||||
<processors>4</processors>
|
||||
<disk>
|
||||
<size unit="G">12</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</constraints>
|
105
openstack-ironic-image/config.sh
Normal file
105
openstack-ironic-image/config.sh
Normal file
@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
|
||||
test -f /.kconfig && . /.kconfig
|
||||
test -f /.profile && . /.profile
|
||||
|
||||
#======================================
|
||||
# Greeting...
|
||||
#--------------------------------------
|
||||
echo "Configure image: [$kiwi_iname]..."
|
||||
|
||||
#==========================================
|
||||
# setup build day
|
||||
#------------------------------------------
|
||||
baseSetupBuildDay
|
||||
|
||||
#======================================
|
||||
# Mount system filesystems
|
||||
#--------------------------------------
|
||||
#baseMount
|
||||
|
||||
#==========================================
|
||||
# remove unneded kernel files
|
||||
#------------------------------------------
|
||||
suseStripKernel
|
||||
baseStripLocales en_US.utf-8 C.utf8
|
||||
|
||||
#======================================
|
||||
# Setup baseproduct link
|
||||
#--------------------------------------
|
||||
suseSetupProduct
|
||||
|
||||
#======================================
|
||||
# Add missing gpg keys to rpm
|
||||
#--------------------------------------
|
||||
suseImportBuildKey
|
||||
|
||||
#======================================
|
||||
# Activate services
|
||||
#--------------------------------------
|
||||
baseInsertService openstack-ironic-python-agent
|
||||
baseInsertService suse-ironic-image-setup
|
||||
baseInsertService suse-network-setup
|
||||
baseInsertService sshd
|
||||
baseInsertService NetworkManager
|
||||
#suseInsertService sshd
|
||||
#suseInsertService openstack-ironic-python-agent
|
||||
#suseInsertService suse-ironic-image-setup
|
||||
|
||||
echo 'DEFAULT_TIMEZONE="UTC"' >> /etc/sysconfig/clock
|
||||
baseUpdateSysConfig /etc/sysconfig/clock HWCLOCK "-u"
|
||||
baseUpdateSysConfig /etc/sysconfig/clock TIMEZONE UTC
|
||||
baseUpdateSysConfig /etc/sysconfig/network/dhcp DHCLIENT_SET_HOSTNAME no
|
||||
baseUpdateSysConfig /etc/sysconfig/network/dhcp WRITE_HOSTNAME_TO_HOSTS no
|
||||
|
||||
#==========================================
|
||||
# generate autologin@ service
|
||||
# based on getty@ service
|
||||
#------------------------------------------
|
||||
#sed 's/^ExecStart=.*/\0 --autologin root/' /usr/lib/systemd/system/getty@.service > /etc/systemd/system/autologin\@.service
|
||||
sed -E 's/^(ExecStart=.*\/agetty).*(--noclear.*)/\1 \2 --autologin root/' /usr/lib/systemd/system/getty@.service > /etc/systemd/system/autologin\@.service
|
||||
|
||||
#==========================================
|
||||
# add fstab entry for tmpfs based /tmp
|
||||
#------------------------------------------
|
||||
echo 'tmpfs /tmp tmpfs size=3G 0 0' >> /etc/fstab
|
||||
|
||||
#==========================================
|
||||
# remove package docs and manuals
|
||||
#------------------------------------------
|
||||
#baseStripDocs
|
||||
#baseStripMans
|
||||
#baseStripInfos
|
||||
|
||||
#======================================
|
||||
# only basic version of vim is
|
||||
# installed; no syntax highlighting
|
||||
#--------------------------------------
|
||||
sed -i -e's/^syntax on/" syntax on/' /etc/vimrc
|
||||
|
||||
#======================================
|
||||
# Remove yast if not in use
|
||||
#--------------------------------------
|
||||
#suseRemoveYaST
|
||||
|
||||
#======================================
|
||||
# Remove package manager
|
||||
#--------------------------------------
|
||||
#suseStripPackager
|
||||
|
||||
#rm -f usr/lib/perl5/*/*/auto/Encode/??/??.so # 9MB
|
||||
|
||||
#======================================
|
||||
# Umount kernel filesystems
|
||||
#--------------------------------------
|
||||
#baseCleanMount
|
||||
|
||||
ln -s /sbin/init /init
|
||||
|
||||
#==========================================
|
||||
# umount
|
||||
#------------------------------------------
|
||||
umount /proc >/dev/null 2>&1
|
||||
|
||||
exit 0
|
||||
|
173
openstack-ironic-image/openstack-ironic-image.kiwi
Normal file
173
openstack-ironic-image/openstack-ironic-image.kiwi
Normal file
@ -0,0 +1,173 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<image schemaversion="7.4" name="openstack-ironic-image">
|
||||
<description type="system">
|
||||
<author>Cloud developers</author>
|
||||
<contact>cloud-devel@suse.de</contact>
|
||||
<specification>kernel and ramdisk image for metal3</specification>
|
||||
</description>
|
||||
<profiles>
|
||||
<profile name="default" description="Booting default profile" import="true"/>
|
||||
</profiles>
|
||||
<preferences>
|
||||
<locale>en_US</locale>
|
||||
<packagemanager>zypper</packagemanager>
|
||||
<rpm-check-signatures>false</rpm-check-signatures>
|
||||
<timezone>UTC</timezone>
|
||||
<version>1.0.0</version>
|
||||
</preferences>
|
||||
<preferences profiles="default">
|
||||
<type image="kis" initrd_system="none" compressed="false"/>
|
||||
</preferences>
|
||||
|
||||
<users>
|
||||
<user password="*" home="/root" name="root" groups="root"/>
|
||||
</users>
|
||||
|
||||
<repository alias="build-binaries" type="rpm-md" priority="99">
|
||||
<source path="dir:///.build.binaries"/>
|
||||
</repository>
|
||||
|
||||
<drivers>
|
||||
<file name="crypto/*"/>
|
||||
<file name="drivers/acpi/*"/>
|
||||
<file name="drivers/acpi/dock.ko"/>
|
||||
<file name="drivers/ata/*"/>
|
||||
<file name="drivers/block/brd.ko"/>
|
||||
<file name="drivers/block/cciss.ko"/>
|
||||
<file name="drivers/block/loop.ko"/>
|
||||
<file name="drivers/block/virtio_blk.ko"/>
|
||||
<file name="drivers/cdrom/*"/>
|
||||
<file name="drivers/char/hw_random/virtio-rng.ko"/>
|
||||
<file name="drivers/char/lp.ko"/>
|
||||
<file name="drivers/char/ipmi/*"/>
|
||||
<file name="drivers/firmware/iscsi_ibft.ko"/>
|
||||
<file name="drivers/firmware/edd.ko"/>
|
||||
<file name="drivers/gpu/drm/*"/>
|
||||
<file name="drivers/hid/*"/>
|
||||
<file name="drivers/hv/*"/>
|
||||
<file name="drivers/hwmon/*"/>
|
||||
<file name="drivers/ide/*"/>
|
||||
<file name="drivers/input/keyboard/*"/>
|
||||
<file name="drivers/input/mouse/*"/>
|
||||
<file name="drivers/md/*"/>
|
||||
<file name="drivers/message/fusion/*"/>
|
||||
<file name="drivers/misc/hpilo.ko"/>
|
||||
<file name="drivers/net/*"/>
|
||||
<file name="drivers/parport/*"/>
|
||||
<file name="drivers/scsi/*"/>
|
||||
<file name="drivers/staging/hv/*"/>
|
||||
<file name="drivers/target/*"/>
|
||||
<file name="drivers/thermal/*"/>
|
||||
<file name="drivers/usb/*"/>
|
||||
<file name="drivers/virtio/*"/>
|
||||
<file name="fs/binfmt_aout.ko"/>
|
||||
<file name="fs/binfmt_misc.ko"/>
|
||||
<file name="fs/overlayfs/*"/>
|
||||
<file name="fs/btrfs/*"/>
|
||||
<file name="fs/exportfs/*"/>
|
||||
<file name="fs/ext4/*"/>
|
||||
<file name="fs/fat/*"/>
|
||||
<file name="fs/fuse/*"/>
|
||||
<file name="fs/hfs/*"/>
|
||||
<file name="fs/jbd2/*"/>
|
||||
<file name="fs/nfs/*"/>
|
||||
<file name="fs/mbcache.ko"/>
|
||||
<file name="fs/nls/nls_cp437.ko"/>
|
||||
<file name="fs/nls/nls_iso8859-1.ko"/>
|
||||
<file name="fs/nls/nls_utf8.ko"/>
|
||||
<file name="fs/quota_v1.ko"/>
|
||||
<file name="fs/quota_v2.ko"/>
|
||||
<file name="fs/squashfs/*"/>
|
||||
<file name="fs/udf/*"/>
|
||||
<file name="fs/vfat/*"/>
|
||||
<file name="fs/xfs/*"/>
|
||||
<file name="fs/isofs/*"/>
|
||||
<file name="lib/crc-t10dif.ko"/>
|
||||
<file name="lib/crc16.ko"/>
|
||||
<file name="lib/libcrc32c.ko"/>
|
||||
<file name="lib/zlib_deflate/zlib_deflate.ko"/>
|
||||
<file name="net/packet/*"/>
|
||||
</drivers>
|
||||
|
||||
<packages type="delete">
|
||||
<package name="gpg2"/>
|
||||
<package name="libcairo2"/>
|
||||
<package name="libpango-1_0-0"/>
|
||||
<package name="libX11-6"/>
|
||||
<package name="libXext6"/>
|
||||
<package name="libXft2"/>
|
||||
<package name="libXrender1"/>
|
||||
<package name="libX11-data"/>
|
||||
<package name="libXau6"/>
|
||||
<package name="libxcb-render0"/>
|
||||
<package name="libxcb-shm0"/>
|
||||
<package name="libxcb1"/>
|
||||
<package name="plymouth"/>
|
||||
<package name="plymouth-branding-SLE"/>
|
||||
</packages>
|
||||
|
||||
<packages type="image">
|
||||
<package name="checkmedia"/>
|
||||
<package name="plymouth-branding-SLE"/>
|
||||
<package name="plymouth-dracut"/>
|
||||
<package name="plymouth-theme-bgrt"/>
|
||||
<package name="grub2-branding-SLE"/>
|
||||
<package name="iputils"/>
|
||||
<package name="vim"/>
|
||||
<package name="grub2"/>
|
||||
<package name="grub2-x86_64-efi" arch="x86_64"/>
|
||||
<package name="grub2-i386-pc"/>
|
||||
<package name="syslinux"/>
|
||||
<package name="lvm2"/>
|
||||
<package name="plymouth"/>
|
||||
<package name="fontconfig"/>
|
||||
<package name="fonts-config"/>
|
||||
<package name="openssh"/>
|
||||
<package name="iproute2"/>
|
||||
<package name="which"/>
|
||||
<package name="kernel-firmware"/>
|
||||
<package name="kernel-default"/>
|
||||
<package name="NetworkManager"/>
|
||||
<package name="nm-configurator"/>
|
||||
<package name="timezone"/>
|
||||
<package name="haveged"/>
|
||||
<!-- ironic-python-agent specific -->
|
||||
<package name="openstack-ironic-python-agent"/>
|
||||
<package name="hdparm"/>
|
||||
<package name="qemu-tools"/>
|
||||
<package name="python311-proliantutils" arch="x86_64"/>
|
||||
<package name="lshw"/>
|
||||
<package name="dmidecode" arch="aarch64"/>
|
||||
<package name="dmidecode" arch="x86_64"/>
|
||||
<package name="efibootmgr" arch="aarch64" />
|
||||
<package name="efibootmgr" arch="x86_64" />
|
||||
<package name="gptfdisk"/>
|
||||
<package name="open-iscsi"/>
|
||||
<package name="hwinfo"/>
|
||||
<package name="ipmitool"/>
|
||||
<package name="iputils"/>
|
||||
<package name="lvm2"/>
|
||||
<package name="net-tools"/>
|
||||
<package name="ntp"/>
|
||||
<package name="parted"/>
|
||||
<package name="psmisc"/>
|
||||
<package name="timezone"/>
|
||||
<package name="which"/>
|
||||
<package name="kbd"/>
|
||||
</packages>
|
||||
|
||||
<packages type="kis">
|
||||
<package name="gfxboot-branding-SLE"/>
|
||||
<package name="dracut-kiwi-oem-repart"/>
|
||||
<package name="dracut-kiwi-oem-dump"/>
|
||||
</packages>
|
||||
|
||||
<packages type="bootstrap">
|
||||
<package name="glibc-locale"/>
|
||||
<package name="udev"/>
|
||||
<package name="filesystem"/>
|
||||
<package name="cracklib-dict-full"/>
|
||||
<package name="ca-certificates"/>
|
||||
<package name="sles-release"/>
|
||||
</packages>
|
||||
</image>
|
167
openstack-ironic-image/openstack-ironic-image.spec
Normal file
167
openstack-ironic-image/openstack-ironic-image.spec
Normal file
@ -0,0 +1,167 @@
|
||||
#
|
||||
# spec file for package openstack-ironic-image
|
||||
#
|
||||
# Copyright (c) 2023 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/
|
||||
#
|
||||
# needsrootforbuild
|
||||
# needsbinariesforbuild
|
||||
|
||||
|
||||
Name: openstack-ironic-image
|
||||
Version: 2.0.0
|
||||
Release: 0
|
||||
Summary: Kernel and ramdisk image for OpenStack Ironic
|
||||
License: SUSE-EULA
|
||||
Group: System/Management
|
||||
URL: https://github.com/SUSE-Cloud/
|
||||
Source0: config.sh
|
||||
Source10: openstack-ironic-image.kiwi
|
||||
Source20: root.tar.bz2
|
||||
|
||||
BuildRequires: -post-build-checks
|
||||
BuildRequires: bash
|
||||
BuildRequires: kiwi
|
||||
BuildRequires: kiwi-tools
|
||||
BuildRequires: zypper
|
||||
BuildArch: noarch
|
||||
|
||||
BuildRequires: checkmedia
|
||||
BuildRequires: acl
|
||||
BuildRequires: ca-certificates
|
||||
BuildRequires: cracklib-dict-full
|
||||
BuildRequires: cron
|
||||
BuildRequires: dbus-1
|
||||
BuildRequires: elfutils
|
||||
BuildRequires: filesystem
|
||||
BuildRequires: fipscheck
|
||||
BuildRequires: fontconfig
|
||||
BuildRequires: fonts-config
|
||||
BuildRequires: gptfdisk
|
||||
BuildRequires: grub2
|
||||
BuildRequires: grub2-x86_64-efi
|
||||
BuildRequires: haveged
|
||||
BuildRequires: hdparm
|
||||
BuildRequires: hwinfo
|
||||
BuildRequires: ipmitool
|
||||
BuildRequires: iproute2
|
||||
BuildRequires: iputils
|
||||
BuildRequires: kernel-default
|
||||
BuildRequires: kernel-firmware
|
||||
BuildRequires: lvm2
|
||||
BuildRequires: net-tools
|
||||
BuildRequires: ntp
|
||||
BuildRequires: open-iscsi
|
||||
BuildRequires: openssh
|
||||
BuildRequires: openstack-ironic-python-agent
|
||||
BuildRequires: pam-config
|
||||
BuildRequires: parted
|
||||
BuildRequires: patterns-base-minimal_base
|
||||
BuildRequires: pinentry
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: Mesa-gallium
|
||||
BuildRequires: plymouth
|
||||
BuildRequires: plymouth-scripts
|
||||
BuildRequires: python311-proliantutils
|
||||
BuildRequires: psmisc
|
||||
BuildRequires: qemu-tools
|
||||
BuildRequires: sg3_utils
|
||||
BuildRequires: sles-release
|
||||
BuildRequires: sudo
|
||||
BuildRequires: suse-build-key
|
||||
BuildRequires: systemd-presets-branding-SLE
|
||||
BuildRequires: timezone
|
||||
BuildRequires: udev
|
||||
BuildRequires: vim
|
||||
BuildRequires: wpa_supplicant
|
||||
BuildRequires: dhcp-client
|
||||
BuildRequires: which
|
||||
BuildRequires: NetworkManager
|
||||
BuildRequires: nm-configurator
|
||||
BuildRequires: logrotate
|
||||
BuildRequires: plymouth-dracut
|
||||
BuildRequires: plymouth-theme-bgrt
|
||||
BuildRequires: dracut-kiwi-oem-dump
|
||||
BuildRequires: dracut-kiwi-oem-repart
|
||||
BuildRequires: gfxboot-branding-SLE
|
||||
BuildRequires: grub2-branding-SLE
|
||||
BuildRequires: open-iscsi
|
||||
BuildRequires: plymouth-branding-SLE
|
||||
BuildRequires: lshw
|
||||
BuildRequires: kbd
|
||||
%ifarch aarch64
|
||||
BuildRequires: dmidecode
|
||||
BuildRequires: efibootmgr
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
BuildRequires: dmidecode
|
||||
BuildRequires: efibootmgr
|
||||
BuildRequires: syslinux
|
||||
%endif
|
||||
|
||||
%description
|
||||
Kernel and ramdisk image for use with Metal3
|
||||
|
||||
%package %{_arch}
|
||||
Summary: Kernel and ramdisk image for Metal3
|
||||
Group: System/Management
|
||||
Provides: openstack-ironic-python-agent = %{version}
|
||||
Obsoletes: openstack-ironic-python-agent < %{version}
|
||||
|
||||
%description %{_arch}
|
||||
Kernel and ramdisk image for use with Metal3
|
||||
For %{_arch}
|
||||
|
||||
%prep
|
||||
mkdir -p /tmp/openstack-ironic-image/build /tmp/openstack-ironic-image/root /tmp/openstack-ironic-image/img
|
||||
|
||||
cp -a %{SOURCE0} /tmp/openstack-ironic-image/config.sh
|
||||
|
||||
cp -a %{SOURCE10} /tmp/openstack-ironic-image/config.kiwi
|
||||
|
||||
tar -xC /tmp/openstack-ironic-image/root -f %{SOURCE20}
|
||||
|
||||
%build
|
||||
if ! which kiwi; then
|
||||
cat <<EOF >&2
|
||||
kiwi not found in \$PATH; most likely this build was missing
|
||||
the --userootforbuild option. If you are invoking osc build
|
||||
manually, please use 'make buildlocal' instead.
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
kiwi-ng --debug --profile default system build --description /tmp/openstack-ironic-image --target-dir /tmp/openstack-ironic-image/img
|
||||
|
||||
%install
|
||||
TDIR=`mktemp -d /tmp/openstack-ironic-image.XXXXX`
|
||||
cd /tmp/openstack-ironic-image/img/build/image-root
|
||||
find . | cpio --create --format=newc --quiet > $TDIR/initrdtmp
|
||||
cd $TDIR
|
||||
gzip -9 -f initrdtmp
|
||||
INITRDGZ=`ls *.gz | head -1`
|
||||
gzip -cd $INITRDGZ | xz --check=crc32 -c9 > initrd.xz
|
||||
INITRD=`ls *.xz | head -1`
|
||||
|
||||
ls /tmp/openstack-ironic-image/img/openstack-ironic-image*
|
||||
KERNEL=`ls /tmp/openstack-ironic-image/img/openstack-ironic-image*default*kernel | head -1`
|
||||
|
||||
mkdir -p %{buildroot}/srv/tftpboot/openstack-ironic-image
|
||||
install -p -m 644 $KERNEL $INITRD %{buildroot}/srv/tftpboot/openstack-ironic-image/
|
||||
|
||||
%files %{_arch}
|
||||
%defattr(644,root,root)
|
||||
%dir %attr(755, root, root) /srv/tftpboot/openstack-ironic-image
|
||||
%attr(644, root, root) /srv/tftpboot/openstack-ironic-image/*
|
||||
|
||||
%changelog
|
BIN
openstack-ironic-image/root.tar.bz2
(Stored with Git LFS)
Normal file
BIN
openstack-ironic-image/root.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
10
rancher-turtles-airgap-resources-chart/Chart.yaml
Normal file
10
rancher-turtles-airgap-resources-chart/Chart.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:0.3.3
|
||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:0.3.3-%RELEASE%
|
||||
apiVersion: v2
|
||||
appVersion: 0.11.0
|
||||
description: Rancher Turtles utility chart for airgap scenarios
|
||||
home: https://github.com/rancher/turtles/
|
||||
icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg
|
||||
name: rancher-turtles-airgap-resources
|
||||
type: application
|
||||
version: 0.3.3
|
26
rancher-turtles-airgap-resources-chart/README.md
Normal file
26
rancher-turtles-airgap-resources-chart/README.md
Normal file
@ -0,0 +1,26 @@
|
||||
# Deploy Rancher Turtles in airgapped scenarios
|
||||
|
||||
To simplify deployment of the suse-edge rancher-turtles wrapper chart in airgapped scenarios
|
||||
this chart deploys the corresponding ConfigMap resources, as described in the
|
||||
[Rancher Turtles Documentation](https://turtles.docs.rancher.com/getting-started/air-gapped-environment)
|
||||
|
||||
In addition to installing the chart, it will be necessary to adjust the rancher-turtles chart values:
|
||||
|
||||
```
|
||||
cluster-api-operator:
|
||||
cluster-api:
|
||||
core:
|
||||
fetchConfig:
|
||||
selector: "{\"matchLabels\": {\"provider-components\": \"core\"}}"
|
||||
rke2:
|
||||
bootstrap:
|
||||
fetchConfig:
|
||||
selector: "{\"matchLabels\": {\"provider-components\": \"rke2-bootstrap\"}}"
|
||||
controlPlane:
|
||||
fetchConfig:
|
||||
selector: "{\"matchLabels\": {\"provider-components\": \"rke2-control-plane\"}}"
|
||||
metal3:
|
||||
infrastructure:
|
||||
fetchConfig:
|
||||
selector: "{\"matchLabels\": {\"provider-components\": \"metal3\"}}"
|
||||
```
|
8
rancher-turtles-airgap-resources-chart/_service
Normal file
8
rancher-turtles-airgap-resources-chart/_service
Normal file
@ -0,0 +1,8 @@
|
||||
<services>
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
6
rancher-turtles-chart/Chart.lock
Normal file
6
rancher-turtles-chart/Chart.lock
Normal file
@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: cluster-api-operator
|
||||
repository: https://kubernetes-sigs.github.io/cluster-api-operator
|
||||
version: 0.12.0
|
||||
digest: sha256:c167c074ca89ef7a520ec18a5afd380b9edaee513810aa3ac0e0bda51db9c526
|
||||
generated: "2024-08-22T14:23:18.589443298Z"
|
32
rancher-turtles-chart/Chart.yaml
Normal file
32
rancher-turtles-chart/Chart.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:0.3.3
|
||||
#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:0.3.3-%RELEASE%
|
||||
annotations:
|
||||
catalog.cattle.io/certified: rancher
|
||||
catalog.cattle.io/display-name: Rancher Turtles - the Cluster API Extension
|
||||
catalog.cattle.io/kube-version: '>= 1.23.0-0'
|
||||
catalog.cattle.io/namespace: rancher-turtles-system
|
||||
catalog.cattle.io/os: linux
|
||||
catalog.cattle.io/permits-os: linux
|
||||
catalog.cattle.io/rancher-version: '>= 2.9.0-1'
|
||||
catalog.cattle.io/release-name: rancher-turtles
|
||||
catalog.cattle.io/scope: management
|
||||
catalog.cattle.io/type: cluster-tool
|
||||
apiVersion: v2
|
||||
appVersion: 0.11.0
|
||||
dependencies:
|
||||
- condition: cluster-api-operator.enabled
|
||||
name: cluster-api-operator
|
||||
repository: file://./charts/cluster-api-operator
|
||||
version: 0.12.0
|
||||
description: Rancher Turtles is an extension to Rancher that brings full Cluster API
|
||||
integration to Rancher.
|
||||
home: https://github.com/rancher/turtles/
|
||||
icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg
|
||||
keywords:
|
||||
- rancher
|
||||
- cluster-api
|
||||
- capi
|
||||
- provisioning
|
||||
name: rancher-turtles
|
||||
type: application
|
||||
version: 0.3.3+up0.11.0
|
5
rancher-turtles-chart/README.md
Normal file
5
rancher-turtles-chart/README.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Rancher Turtles Chart
|
||||
|
||||
This chart installs the Rancher Turtles operator and optionally the Cluster API Operator using Helm.
|
||||
|
||||
Checkout the [documentation](https://turtles.docs.rancher.com) for further information.
|
6
rancher-turtles-chart/RELEASE_NOTES.md
Normal file
6
rancher-turtles-chart/RELEASE_NOTES.md
Normal file
@ -0,0 +1,6 @@
|
||||
## Changes since test/v0.11.0
|
||||
---
|
||||
## :chart_with_upwards_trend: Overview
|
||||
|
||||
|
||||
_Thanks to all our contributors!_ 😊
|
15
rancher-turtles-chart/_service
Normal file
15
rancher-turtles-chart/_service
Normal file
@ -0,0 +1,15 @@
|
||||
<services>
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">values.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
5
rancher-turtles-chart/app-readme.md
Normal file
5
rancher-turtles-chart/app-readme.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Rancher Turtles - The Cluster API Extension for Rancher
|
||||
|
||||
Rancher Turtles brings enhanced integration of Cluster API with Rancher.
|
||||
|
||||
For more information, including a getting started guide, see the [official documentation](https://turtles.docs.rancher.com).
|
@ -0,0 +1,23 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
@ -0,0 +1,6 @@
|
||||
apiVersion: v2
|
||||
appVersion: 0.12.0
|
||||
description: Cluster API Operator
|
||||
name: cluster-api-operator
|
||||
type: application
|
||||
version: 0.12.0
|
@ -0,0 +1,24 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "capi-operator.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "capi-operator.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@ -0,0 +1,56 @@
|
||||
# Addon provider
|
||||
{{- if .Values.addon }}
|
||||
{{- $addons := split ";" .Values.addon }}
|
||||
{{- $addonNamespace := "" }}
|
||||
{{- $addonName := "" }}
|
||||
{{- $addonVersion := "" }}
|
||||
{{- range $addon := $addons }}
|
||||
{{- $addonArgs := split ":" $addon }}
|
||||
{{- $addonArgsLen := len $addonArgs }}
|
||||
{{- if eq $addonArgsLen 3 }}
|
||||
{{- $addonNamespace = $addonArgs._0 }}
|
||||
{{- $addonName = $addonArgs._1 }}
|
||||
{{- $addonVersion = $addonArgs._2 }}
|
||||
{{- else if eq $addonArgsLen 2 }}
|
||||
{{- $addonNamespace = print $addonArgs._0 "-addon-system" }}
|
||||
{{- $addonName = $addonArgs._0 }}
|
||||
{{- $addonVersion = $addonArgs._1 }}
|
||||
{{- else if eq $addonArgsLen 1 }}
|
||||
{{- $addonNamespace = print $addonArgs._0 "-addon-system" }}
|
||||
{{- $addonName = $addonArgs._0 }}
|
||||
{{- else }}
|
||||
{{- fail "addon provider argument should have the following format helm:v1.0.0 or mynamespace:helm:v1.0.0" }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "1"
|
||||
"argocd.argoproj.io/sync-wave": "1"
|
||||
name: {{ $addonNamespace }}
|
||||
---
|
||||
apiVersion: operator.cluster.x-k8s.io/v1alpha2
|
||||
kind: AddonProvider
|
||||
metadata:
|
||||
name: {{ $addonName }}
|
||||
namespace: {{ $addonNamespace }}
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "2"
|
||||
"argocd.argoproj.io/sync-wave": "2"
|
||||
{{- if or $addonVersion $.Values.secretName }}
|
||||
spec:
|
||||
{{- end}}
|
||||
{{- if $addonVersion }}
|
||||
version: {{ $addonVersion }}
|
||||
{{- end }}
|
||||
{{- if $.Values.secretName }}
|
||||
secretName: {{ $.Values.secretName }}
|
||||
{{- end }}
|
||||
{{- if $.Values.secretNamespace }}
|
||||
secretNamespace: {{ $.Values.secretNamespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -0,0 +1,55 @@
|
||||
# Bootstrap provider
|
||||
{{- if .Values.bootstrap }}
|
||||
{{- $bootstraps := split ";" .Values.bootstrap }}
|
||||
{{- $bootstrapNamespace := "" }}
|
||||
{{- $bootstrapName := "" }}
|
||||
{{- $bootstrapVersion := "" }}
|
||||
{{- range $bootstrap := $bootstraps }}
|
||||
{{- $bootstrapArgs := split ":" $bootstrap }}
|
||||
{{- $bootstrapArgsLen := len $bootstrapArgs }}
|
||||
{{- if eq $bootstrapArgsLen 3 }}
|
||||
{{- $bootstrapNamespace = $bootstrapArgs._0 }}
|
||||
{{- $bootstrapName = $bootstrapArgs._1 }}
|
||||
{{- $bootstrapVersion = $bootstrapArgs._2 }}
|
||||
{{- else if eq $bootstrapArgsLen 2 }}
|
||||
{{- $bootstrapNamespace = print $bootstrapArgs._0 "-bootstrap-system" }}
|
||||
{{- $bootstrapName = $bootstrapArgs._0 }}
|
||||
{{- $bootstrapVersion = $bootstrapArgs._1 }}
|
||||
{{- else if eq $bootstrapArgsLen 1 }}
|
||||
{{- $bootstrapNamespace = print $bootstrapArgs._0 "-bootstrap-system" }}
|
||||
{{- $bootstrapName = $bootstrapArgs._0 }}
|
||||
{{- else }}
|
||||
{{- fail "bootstrap provider argument should have the following format kubeadm:v1.0.0 or mynamespace:kubeadm:v1.0.0" }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "1"
|
||||
name: {{ $bootstrapNamespace }}
|
||||
---
|
||||
apiVersion: operator.cluster.x-k8s.io/v1alpha2
|
||||
kind: BootstrapProvider
|
||||
metadata:
|
||||
name: {{ $bootstrapName }}
|
||||
namespace: {{ $bootstrapNamespace }}
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "2"
|
||||
{{- if or $bootstrapVersion $.Values.configSecret.name }}
|
||||
spec:
|
||||
{{- end}}
|
||||
{{- if $bootstrapVersion }}
|
||||
version: {{ $bootstrapVersion }}
|
||||
{{- end }}
|
||||
{{- if $.Values.configSecret.name }}
|
||||
configSecret:
|
||||
name: {{ $.Values.configSecret.name }}
|
||||
{{- if $.Values.configSecret.namespace }}
|
||||
namespace: {{ $.Values.configSecret.namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -0,0 +1,55 @@
|
||||
# Control plane provider
|
||||
{{- if .Values.controlPlane }}
|
||||
{{- $controlPlanes := split ";" .Values.controlPlane }}
|
||||
{{- $controlPlaneNamespace := "" }}
|
||||
{{- $controlPlaneName := "" }}
|
||||
{{- $controlPlaneVersion := "" }}
|
||||
{{- range $controlPlane := $controlPlanes }}
|
||||
{{- $controlPlaneArgs := split ":" $controlPlane }}
|
||||
{{- $controlPlaneArgsLen := len $controlPlaneArgs }}
|
||||
{{- if eq $controlPlaneArgsLen 3 }}
|
||||
{{- $controlPlaneNamespace = $controlPlaneArgs._0 }}
|
||||
{{- $controlPlaneName = $controlPlaneArgs._1 }}
|
||||
{{- $controlPlaneVersion = $controlPlaneArgs._2 }}
|
||||
{{- else if eq $controlPlaneArgsLen 2 }}
|
||||
{{- $controlPlaneNamespace = print $controlPlaneArgs._0 "-control-plane-system" }}
|
||||
{{- $controlPlaneName = $controlPlaneArgs._0 }}
|
||||
{{- $controlPlaneVersion = $controlPlaneArgs._1 }}
|
||||
{{- else if eq $controlPlaneArgsLen 1 }}
|
||||
{{- $controlPlaneNamespace = print $controlPlaneArgs._0 "-control-plane-system" }}
|
||||
{{- $controlPlaneName = $controlPlaneArgs._0 }}
|
||||
{{- else }}
|
||||
{{- fail "controlplane provider argument should have the following format kubeadm:v1.0.0 or mynamespace:kubeadm:v1.0.0" }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "1"
|
||||
name: {{ $controlPlaneNamespace }}
|
||||
---
|
||||
apiVersion: operator.cluster.x-k8s.io/v1alpha2
|
||||
kind: ControlPlaneProvider
|
||||
metadata:
|
||||
name: {{ $controlPlaneName }}
|
||||
namespace: {{ $controlPlaneNamespace }}
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "2"
|
||||
{{- if or $controlPlaneVersion $.Values.configSecret.name }}
|
||||
spec:
|
||||
{{- end}}
|
||||
{{- if $controlPlaneVersion }}
|
||||
version: {{ $controlPlaneVersion }}
|
||||
{{- end }}
|
||||
{{- if $.Values.configSecret.name }}
|
||||
configSecret:
|
||||
name: {{ $.Values.configSecret.name }}
|
||||
{{- if $.Values.configSecret.namespace }}
|
||||
namespace: {{ $.Values.configSecret.namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -0,0 +1,31 @@
|
||||
{{- if or .Values.addon .Values.bootstrap .Values.controlPlane .Values.infrastructure }}
|
||||
# Deploy core components if not specified
|
||||
{{- if not .Values.core }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "1"
|
||||
name: capi-system
|
||||
---
|
||||
apiVersion: operator.cluster.x-k8s.io/v1alpha2
|
||||
kind: CoreProvider
|
||||
metadata:
|
||||
name: cluster-api
|
||||
namespace: capi-system
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "2"
|
||||
{{- with .Values.configSecret }}
|
||||
spec:
|
||||
configSecret:
|
||||
name: {{ .name }}
|
||||
{{- if .namespace }}
|
||||
namespace: {{ .namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@ -0,0 +1,63 @@
|
||||
# Core provider
|
||||
{{- if .Values.core }}
|
||||
{{- $coreArgs := split ":" .Values.core }}
|
||||
{{- $coreArgsLen := len $coreArgs }}
|
||||
{{- $coreVersion := "" }}
|
||||
{{- $coreNamespace := "" }}
|
||||
{{- $coreName := "" }}
|
||||
{{- $coreVersion := "" }}
|
||||
{{- if eq $coreArgsLen 3 }}
|
||||
{{- $coreNamespace = $coreArgs._0 }}
|
||||
{{- $coreName = $coreArgs._1 }}
|
||||
{{- $coreVersion = $coreArgs._2 }}
|
||||
{{- else if eq $coreArgsLen 2 }}
|
||||
{{- $coreNamespace = "capi-system" }}
|
||||
{{- $coreName = $coreArgs._0 }}
|
||||
{{- $coreVersion = $coreArgs._1 }}
|
||||
{{- else if eq $coreArgsLen 1 }}
|
||||
{{- $coreNamespace = "capi-system" }}
|
||||
{{- $coreName = $coreArgs._0 }}
|
||||
{{- else }}
|
||||
{{- fail "core provider argument should have the following format cluster-api:v1.0.0 or mynamespace:cluster-api:v1.0.0" }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "1"
|
||||
name: {{ $coreNamespace }}
|
||||
---
|
||||
apiVersion: operator.cluster.x-k8s.io/v1alpha2
|
||||
kind: CoreProvider
|
||||
metadata:
|
||||
name: {{ $coreName }}
|
||||
namespace: {{ $coreNamespace }}
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "2"
|
||||
"argocd.argoproj.io/sync-wave": "2"
|
||||
{{- if or $coreVersion $.Values.configSecret.name }}
|
||||
spec:
|
||||
{{- end}}
|
||||
{{- if $coreVersion }}
|
||||
version: {{ $coreVersion }}
|
||||
{{- end }}
|
||||
{{- if $.Values.manager }}
|
||||
manager:
|
||||
{{- if and $.Values.manager.featureGates $.Values.manager.featureGates.core }}
|
||||
featureGates:
|
||||
{{- range $key, $value := $.Values.manager.featureGates.core }}
|
||||
{{ $key }}: {{ $value }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $.Values.configSecret.name }}
|
||||
configSecret:
|
||||
name: {{ $.Values.configSecret.name }}
|
||||
{{- if $.Values.configSecret.namespace }}
|
||||
namespace: {{ $.Values.configSecret.namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -0,0 +1,146 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "capi-operator.fullname" . }}
|
||||
namespace: '{{ .Release.Namespace }}'
|
||||
labels:
|
||||
app: {{ template "capi-operator.name" . }}
|
||||
app.kubernetes.io/name: {{ template "capi-operator.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/component: "controller"
|
||||
control-plane: controller-manager
|
||||
clusterctl.cluster.x-k8s.io/core: capi-operator
|
||||
{{- with .Values.deploymentLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.deploymentAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ template "capi-operator.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/component: "controller"
|
||||
control-plane: controller-manager
|
||||
clusterctl.cluster.x-k8s.io/core: capi-operator
|
||||
{{- with .Values.strategy }}
|
||||
strategy:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "capi-operator.name" . }}
|
||||
app.kubernetes.io/name: {{ template "capi-operator.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/component: "controller"
|
||||
control-plane: controller-manager
|
||||
clusterctl.cluster.x-k8s.io/core: capi-operator
|
||||
{{- with .Values.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: capi-operator-manager
|
||||
automountServiceAccountToken: true
|
||||
{{- with .Values.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- args:
|
||||
{{- if .Values.logLevel }}
|
||||
- --v={{ .Values.logLevel }}
|
||||
{{- end }}
|
||||
{{- if .Values.healthAddr }}
|
||||
- --health-addr={{ .Values.healthAddr }}
|
||||
{{- end }}
|
||||
{{- if .Values.metricsBindAddr }}
|
||||
- --metrics-bind-addr={{ .Values.metricsBindAddr }}
|
||||
{{- end }}
|
||||
{{- if .Values.diagnosticsAddress }}
|
||||
- --diagnostics-address={{ .Values.diagnosticsAddress }}
|
||||
{{- end }}
|
||||
{{- if .Values.insecureDiagnostics }}
|
||||
- --insecure-diagnostics={{ .Values.insecureDiagnostics }}
|
||||
{{- end }}
|
||||
{{- with .Values.leaderElection }}
|
||||
- --leader-elect={{ .enabled }}
|
||||
{{- if .leaseDuration }}
|
||||
- --leader-elect-lease-duration={{ .leaseDuration }}
|
||||
{{- end }}
|
||||
{{- if .renewDeadline }}
|
||||
- --leader-elect-renew-deadline={{ .renewDeadline }}
|
||||
{{- end }}
|
||||
{{- if .retryPeriod }}
|
||||
- --leader-elect-retry-period={{ .retryPeriod }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
command:
|
||||
- /manager
|
||||
{{- with .Values.image.manager }}
|
||||
image: "{{- if .registry -}}{{ .registry }}/{{- end -}}{{ .repository }}{{- if (.digest) -}} @{{ .digest }}{{- else -}}:{{ default $.Chart.AppVersion .tag }} {{- end -}}"
|
||||
{{- end }}
|
||||
imagePullPolicy: {{ .Values.image.manager.pullPolicy }}
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: 9443
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
- containerPort: {{ ( split ":" $.Values.metricsBindAddr)._1 | int }}
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
{{- with .Values.resources.manager }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.env.manager }}
|
||||
env:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.containerSecurityContext.manager }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.volumeMounts.manager }}
|
||||
volumeMounts:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
terminationGracePeriodSeconds: 10
|
||||
{{- with .Values.volumes }}
|
||||
volumes:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.topologySpreadConstraints }}
|
||||
topologySpreadConstraints:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.podDnsPolicy }}
|
||||
dnsPolicy: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.podDnsConfig }}
|
||||
dnsConfig:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
@ -0,0 +1,64 @@
|
||||
{{- if .Values.infrastructure }}
|
||||
|
||||
# Deploy bootstrap, and infrastructure components if not specified
|
||||
{{- if not .Values.bootstrap }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "1"
|
||||
"argocd.argoproj.io/sync-wave": "1"
|
||||
name: capi-kubeadm-bootstrap-system
|
||||
---
|
||||
apiVersion: operator.cluster.x-k8s.io/v1alpha2
|
||||
kind: BootstrapProvider
|
||||
metadata:
|
||||
name: kubeadm
|
||||
namespace: capi-kubeadm-bootstrap-system
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "2"
|
||||
"argocd.argoproj.io/sync-wave": "2"
|
||||
{{- with .Values.configSecret }}
|
||||
spec:
|
||||
configSecret:
|
||||
name: {{ .name }}
|
||||
{{- if .namespace }}
|
||||
namespace: {{ .namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- if not .Values.controlPlane }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "1"
|
||||
"argocd.argoproj.io/sync-wave": "1"
|
||||
name: capi-kubeadm-control-plane-system
|
||||
---
|
||||
apiVersion: operator.cluster.x-k8s.io/v1alpha2
|
||||
kind: ControlPlaneProvider
|
||||
metadata:
|
||||
name: kubeadm
|
||||
namespace: capi-kubeadm-control-plane-system
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "2"
|
||||
"argocd.argoproj.io/sync-wave": "2"
|
||||
{{- with .Values.configSecret }}
|
||||
spec:
|
||||
configSecret:
|
||||
name: {{ .name }}
|
||||
{{- if .namespace }}
|
||||
namespace: {{ .namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- end }}
|
@ -0,0 +1,84 @@
|
||||
{{- define "recursivePrinter" }}
|
||||
{{- range $key, $value := . }}
|
||||
{{- if kindIs "map" $value }}
|
||||
{{ $key }}:
|
||||
{{- include "recursivePrinter" $value | indent 2 }}
|
||||
{{- else }}
|
||||
{{ $key }}: {{ $value }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
# Infrastructure providers
|
||||
{{- if .Values.infrastructure }}
|
||||
{{- $infrastructures := split ";" .Values.infrastructure }}
|
||||
{{- $infrastructureNamespace := "" }}
|
||||
{{- $infrastructureName := "" }}
|
||||
{{- $infrastructureVersion := "" }}
|
||||
{{- range $infrastructure := $infrastructures }}
|
||||
{{- $infrastructureArgs := split ":" $infrastructure }}
|
||||
{{- $infrastructureArgsLen := len $infrastructureArgs }}
|
||||
{{- if eq $infrastructureArgsLen 3 }}
|
||||
{{- $infrastructureNamespace = $infrastructureArgs._0 }}
|
||||
{{- $infrastructureName = $infrastructureArgs._1 }}
|
||||
{{- $infrastructureVersion = $infrastructureArgs._2 }}
|
||||
{{- else if eq $infrastructureArgsLen 2 }}
|
||||
{{- $infrastructureNamespace = print $infrastructureArgs._0 "-infrastructure-system" }}
|
||||
{{- $infrastructureName = $infrastructureArgs._0 }}
|
||||
{{- $infrastructureVersion = $infrastructureArgs._1 }}
|
||||
{{- else if eq $infrastructureArgsLen 1 }}
|
||||
{{- $infrastructureNamespace = print $infrastructureArgs._0 "-infrastructure-system" }}
|
||||
{{- $infrastructureName = $infrastructureArgs._0 }}
|
||||
{{- else }}
|
||||
{{- fail "infrastructure provider argument should have the following format aws:v1.0.0 or mynamespace:aws:v1.0.0" }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "1"
|
||||
"argocd.argoproj.io/sync-wave": "1"
|
||||
name: {{ $infrastructureNamespace }}
|
||||
---
|
||||
apiVersion: operator.cluster.x-k8s.io/v1alpha2
|
||||
kind: InfrastructureProvider
|
||||
metadata:
|
||||
name: {{ $infrastructureName }}
|
||||
namespace: {{ $infrastructureNamespace }}
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install"
|
||||
"helm.sh/hook-weight": "2"
|
||||
"argocd.argoproj.io/sync-wave": "2"
|
||||
{{- if or $infrastructureVersion $.Values.configSecret.name $.Values.manager $.Values.additionalDeployments }}
|
||||
spec:
|
||||
{{- end }}
|
||||
{{- if $infrastructureVersion }}
|
||||
version: {{ $infrastructureVersion }}
|
||||
{{- end }}
|
||||
{{- if $.Values.manager }}
|
||||
manager:
|
||||
{{- if and (kindIs "map" $.Values.manager.featureGates) (hasKey $.Values.manager.featureGates $infrastructureName) }}
|
||||
{{- range $key, $value := $.Values.manager.featureGates }}
|
||||
{{- if eq $key $infrastructureName }}
|
||||
featureGates:
|
||||
{{- range $k, $v := $value }}
|
||||
{{ $k }}: {{ $v }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $.Values.configSecret.name }}
|
||||
configSecret:
|
||||
name: {{ $.Values.configSecret.name }}
|
||||
{{- if $.Values.configSecret.namespace }}
|
||||
namespace: {{ $.Values.configSecret.namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $.Values.additionalDeployments }}
|
||||
additionalDeployments:
|
||||
{{- include "recursivePrinter" $.Values.additionalDeployments | indent 2 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,69 @@
|
||||
---
|
||||
# ---
|
||||
# Cluster API provider options
|
||||
core: ""
|
||||
bootstrap: ""
|
||||
controlPlane: ""
|
||||
infrastructure: ""
|
||||
addon: ""
|
||||
manager.featureGates: {}
|
||||
# ---
|
||||
# Common configuration secret options
|
||||
configSecret: {}
|
||||
# ---
|
||||
# CAPI operator deployment options
|
||||
logLevel: 2
|
||||
replicaCount: 1
|
||||
leaderElection:
|
||||
enabled: true
|
||||
image:
|
||||
manager:
|
||||
repository: registry.k8s.io/capi-operator/cluster-api-operator
|
||||
tag: v0.12.0
|
||||
pullPolicy: IfNotPresent
|
||||
env:
|
||||
manager: []
|
||||
healthAddr: ":8081"
|
||||
metricsBindAddr: "127.0.0.1:8080"
|
||||
diagnosticsAddress: "8443"
|
||||
insecureDiagnostics: false
|
||||
imagePullSecrets: {}
|
||||
resources:
|
||||
manager:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 150Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
containerSecurityContext: {}
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/arch
|
||||
operator: In
|
||||
values:
|
||||
- amd64
|
||||
- arm64
|
||||
- ppc64le
|
||||
- key: kubernetes.io/os
|
||||
operator: In
|
||||
values:
|
||||
- linux
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/master
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/control-plane
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: capi-operator-webhook-service-cert
|
||||
volumeMounts:
|
||||
manager:
|
||||
- mountPath: /tmp/k8s-webhook-server/serving-certs
|
||||
name: cert
|
||||
readOnly: true
|
78
rancher-turtles-chart/questions.yml
Normal file
78
rancher-turtles-chart/questions.yml
Normal file
@ -0,0 +1,78 @@
|
||||
namespace: rancher-turtles-system
|
||||
questions:
|
||||
- variable: rancherTurtles.features.default
|
||||
default: "false"
|
||||
description: "Customize install settings"
|
||||
label: Customize install settings
|
||||
type: boolean
|
||||
show_subquestion_if: true
|
||||
group: "Rancher Turtles Extra Settings"
|
||||
subquestions:
|
||||
- variable: cluster-api-operator.cert-manager.enabled
|
||||
default: false
|
||||
type: boolean
|
||||
description: "Flag to enable or disable installation of cert-manager. If set to false then you will need to install cert-manager manually"
|
||||
label: "Enable Cert Manager"
|
||||
- variable: rancherTurtles.features.cluster-api-operator.cleanup
|
||||
default: true
|
||||
description: "Specify that the CAPI Operator post-delete cleanup job will be performed"
|
||||
type: boolean
|
||||
label: Cleanup CAPI Operator installation
|
||||
group: "CAPI Operator cleanup settings"
|
||||
show_subquestion_if: true
|
||||
subquestions:
|
||||
- variable: rancherTurtles.features.cluster-api-operator.kubectlImage
|
||||
default: "rancher/kubectl:v1.30.3"
|
||||
description: "Specify the image to use when cleaning up the Cluster API Operator manifests"
|
||||
type: string
|
||||
label: Cleanup Image
|
||||
group: "CAPI Operator cleanup settings"
|
||||
- variable: rancherTurtles.features.rancher-webhook.cleanup
|
||||
default: true
|
||||
description: "Specify that the Rancher embedded cluster api webhooks should be removed"
|
||||
type: boolean
|
||||
label: Cleanup Rancher Embedded CAPI Webhooks
|
||||
group: "Rancher webhook cleanup settings"
|
||||
show_subquestion_if: true
|
||||
subquestions:
|
||||
- variable: rancherTurtles.features.rancher-webhook.kubectlImage
|
||||
default: "rancher/kubectl:v1.30.3"
|
||||
description: "Specify the image to use when cleaning up the webhooks"
|
||||
type: string
|
||||
label: Webhook Cleanup Image
|
||||
group: "Rancher webhook cleanup settings"
|
||||
- variable: rancherTurtles.features.rancher-kubeconfigs.label
|
||||
default: false
|
||||
description: "(Experimental) Specify that the kubeconfigs generated by Rancher should be automatically patched to contain the CAPI expected labels"
|
||||
type: boolean
|
||||
label: Label Rancher Kubeconfigs
|
||||
group: "Rancher Turtles Features Settings"
|
||||
- variable: rancherTurtles.features.managementv3-cluster.enabled
|
||||
default: true
|
||||
description: "Use v3/management cluster manifest for import, instead of v1/provisioning"
|
||||
type: boolean
|
||||
label: Use management v3 cluster manifest
|
||||
group: "Rancher Turtles Features Settings"
|
||||
- variable: rancherTurtles.features.managementv3-cluster-migration.enabled
|
||||
default: false
|
||||
description: "Automatically migrate between provisioning and management clusters on upgrade"
|
||||
type: boolean
|
||||
label: All imported clusters will use new cluster manifest, replacing old cluster manifest.
|
||||
group: "Rancher Turtles Features Settings"
|
||||
- variable: cluster-api-operator.cluster-api.rke2.enabled
|
||||
default: "true"
|
||||
description: "Flag to enable or disable installation of the RKE2 provider for Cluster API. By default this is enabled."
|
||||
label: "Enable RKE2 Provider"
|
||||
type: boolean
|
||||
- variable: rancherTurtles.features.propagate-labels.enabled
|
||||
default: false
|
||||
description: "(Experimental) Specify that the labels from CAPI should be propagated to Rancher"
|
||||
type: boolean
|
||||
label: Propagate CAPI Labels
|
||||
group: "Rancher Turtles Features Settings"
|
||||
- variable: rancherTurtles.features.addon-provider-fleet.enabled
|
||||
default: false
|
||||
description: "Enable Fleet Addon Provider functionality in Rancher Turtles"
|
||||
type: boolean
|
||||
label: Seamless integration with Fleet and CAPI
|
||||
group: "Rancher Turtles Features Settings"
|
44
rancher-turtles-chart/templates/addon-provider-fleet.yaml
Normal file
44
rancher-turtles-chart/templates/addon-provider-fleet.yaml
Normal file
@ -0,0 +1,44 @@
|
||||
{{- if index .Values "rancherTurtles" "features" "addon-provider-fleet" "enabled" }}
|
||||
---
|
||||
apiVersion: turtles-capi.cattle.io/v1alpha1
|
||||
kind: CAPIProvider
|
||||
metadata:
|
||||
name: fleet
|
||||
namespace: '{{ .Values.rancherTurtles.namespace }}'
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
type: addon
|
||||
additionalManifests:
|
||||
name: fleet-addon-config
|
||||
namespace: '{{ .Values.rancherTurtles.namespace }}'
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: fleet-addon-config
|
||||
namespace: '{{ .Values.rancherTurtles.namespace }}'
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "2"
|
||||
data:
|
||||
manifests: |-
|
||||
apiVersion: addons.cluster.x-k8s.io/v1alpha1
|
||||
kind: FleetAddonConfig
|
||||
metadata:
|
||||
name: fleet-addon-config
|
||||
spec:
|
||||
clusterClass:
|
||||
patchResource: true
|
||||
setOwnerReferences: true
|
||||
cluster:
|
||||
patchResource: true
|
||||
setOwnerReferences: true
|
||||
selector:
|
||||
matchLabels:
|
||||
cluster-api.cattle.io/rancher-auto-import: "true"
|
||||
namespaceSelector:
|
||||
matchLabels:
|
||||
cluster-api.cattle.io/rancher-auto-import: "true"
|
||||
{{- end }}
|
19
rancher-turtles-chart/templates/azure-rbac.yaml
Normal file
19
rancher-turtles-chart/templates/azure-rbac.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: caprke2-azure-aggregated-role
|
||||
labels:
|
||||
cluster.x-k8s.io/aggregate-to-capz-manager: "true"
|
||||
rules:
|
||||
- apiGroups:
|
||||
- bootstrap.cluster.x-k8s.io
|
||||
resources:
|
||||
- rke2configs
|
||||
verbs:
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
34
rancher-turtles-chart/templates/clusterctl-config.yaml
Normal file
34
rancher-turtles-chart/templates/clusterctl-config.yaml
Normal file
@ -0,0 +1,34 @@
|
||||
{{- if index .Values "cluster-api-operator" "enabled" }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: clusterctl-config
|
||||
namespace: '{{ .Values.rancherTurtles.namespace }}'
|
||||
data:
|
||||
clusterctl.yaml: |
|
||||
providers:
|
||||
# Cluster API core provider
|
||||
- name: "cluster-api"
|
||||
url: "https://github.com/kubernetes-sigs/cluster-api/releases/v1.7.5/core-components.yaml"
|
||||
type: "CoreProvider"
|
||||
|
||||
# Infrastructure providers
|
||||
- name: "metal3"
|
||||
url: "https://github.com/metal3-io/cluster-api-provider-metal3/releases/v1.7.1/infrastructure-components.yaml"
|
||||
type: "InfrastructureProvider"
|
||||
|
||||
# Bootstrap providers
|
||||
- name: "rke2"
|
||||
url: "https://github.com/rancher/cluster-api-provider-rke2/releases/v0.7.0/bootstrap-components.yaml"
|
||||
type: "BootstrapProvider"
|
||||
|
||||
# ControlPlane providers
|
||||
- name: "rke2"
|
||||
url: "https://github.com/rancher/cluster-api-provider-rke2/releases/v0.7.0/control-plane-components.yaml"
|
||||
type: "ControlPlaneProvider"
|
||||
|
||||
# Addon providers
|
||||
# - name: "fleet"
|
||||
# url: "https://github.com/rancher-sandbox/cluster-api-addon-provider-fleet/releases/v0.3.1/addon-components.yaml"
|
||||
# type: "AddonProvider"
|
||||
{{- end }}
|
82
rancher-turtles-chart/templates/core-provider.yaml
Normal file
82
rancher-turtles-chart/templates/core-provider.yaml
Normal file
@ -0,0 +1,82 @@
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "enabled" }}
|
||||
{{- $namespace := index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }}
|
||||
{{- if not (lookup "v1" "Namespace" "" $namespace) }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "1"
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: turtles-capi.cattle.io/v1alpha1
|
||||
kind: CAPIProvider
|
||||
metadata:
|
||||
name: cluster-api
|
||||
namespace: {{ index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }}
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
name: cluster-api
|
||||
type: core
|
||||
version: {{ index .Values "cluster-api-operator" "cluster-api" "version" }}
|
||||
additionalManifests:
|
||||
name: capi-additional-rbac-roles
|
||||
namespace: {{ index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }}
|
||||
configSecret:
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
|
||||
{{ else }}
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "configSecret" "defaultName" }}
|
||||
{{- end }}
|
||||
{{- if or (index .Values "cluster-api-operator" "cluster-api" "core" "fetchConfig" "url") (index .Values "cluster-api-operator" "cluster-api" "core" "fetchConfig" "selector") }}
|
||||
fetchConfig:
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "core" "fetchConfig" "url" }}
|
||||
url: {{ index .Values "cluster-api-operator" "cluster-api" "core" "fetchConfig" "url" }}
|
||||
{{- end }}
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "core" "fetchConfig" "selector" }}
|
||||
selector: {{ index .Values "cluster-api-operator" "cluster-api" "core" "fetchConfig" "selector" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "core" "imageUrl" }}
|
||||
deployment:
|
||||
containers:
|
||||
- name: manager
|
||||
imageUrl: {{ index .Values "cluster-api-operator" "cluster-api" "core" "imageUrl" }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: capi-additional-rbac-roles
|
||||
namespace: {{ index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }}
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "2"
|
||||
data:
|
||||
manifests: |-
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: provisioning-rke-cattle-io
|
||||
labels:
|
||||
cluster.x-k8s.io/aggregate-to-manager: "true"
|
||||
rules:
|
||||
- apiGroups: ["rke.cattle.io"]
|
||||
resources: ["*"]
|
||||
verbs: ["*"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: provisioning-rke-machine-cattle-io
|
||||
labels:
|
||||
cluster.x-k8s.io/aggregate-to-manager: "true"
|
||||
rules:
|
||||
- apiGroups: ["rke-machine.cattle.io"]
|
||||
resources: ["*"]
|
||||
verbs: ["*"]
|
||||
{{- end }}
|
80
rancher-turtles-chart/templates/deployment.yaml
Normal file
80
rancher-turtles-chart/templates/deployment.yaml
Normal file
@ -0,0 +1,80 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
name: rancher-turtles-controller-manager
|
||||
namespace: '{{ .Values.rancherTurtles.namespace }}'
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
control-plane: controller-manager
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/default-container: manager
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
spec:
|
||||
{{- if .Values.rancherTurtles.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.rancherTurtles.imagePullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- args:
|
||||
- --leader-elect
|
||||
- --feature-gates=etcd-snapshot-restore={{ index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "enabled"}},propagate-labels={{ index .Values "rancherTurtles" "features" "propagate-labels" "enabled"}},managementv3-cluster={{ index .Values "rancherTurtles" "features" "managementv3-cluster" "enabled"}},rancher-kube-secret-patch={{ index .Values "rancherTurtles" "features" "rancher-kubeconfigs" "label"}}
|
||||
{{- range .Values.rancherTurtles.managerArguments }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
command:
|
||||
- /manager
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: POD_UID
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.uid
|
||||
{{- if (contains "sha256:" .Values.rancherTurtles.imageVersion) }}
|
||||
image: '{{ .Values.rancherTurtles.image }}@{{ .Values.rancherTurtles.imageVersion }}'
|
||||
{{- else }}
|
||||
image: '{{ .Values.rancherTurtles.image }}:{{ .Values.rancherTurtles.imageVersion }}'
|
||||
{{- end}}
|
||||
imagePullPolicy: '{{ .Values.rancherTurtles.imagePullPolicy }}'
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 9440
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 20
|
||||
name: manager
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /readyz
|
||||
port: 9440
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 64Mi
|
||||
serviceAccountName: rancher-turtles-manager
|
||||
terminationGracePeriodSeconds: 10
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/master
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/control-plane
|
55
rancher-turtles-chart/templates/metal3-infrastructure.yaml
Normal file
55
rancher-turtles-chart/templates/metal3-infrastructure.yaml
Normal file
@ -0,0 +1,55 @@
|
||||
{{- if and (index .Values "cluster-api-operator" "cluster-api" "enabled") (index .Values "cluster-api-operator" "cluster-api" "metal3" "enabled") }}
|
||||
{{- $namespace := index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "namespace" }}
|
||||
{{- if not (lookup "v1" "Namespace" "" $namespace) }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "1"
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "namespace" }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: turtles-capi.cattle.io/v1alpha1
|
||||
kind: CAPIProvider
|
||||
metadata:
|
||||
name: metal3
|
||||
namespace: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "namespace" }}
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
name: metal3
|
||||
type: infrastructure
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
|
||||
version: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
|
||||
{{- end }}
|
||||
configSecret:
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
|
||||
{{ else }}
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "configSecret" "defaultName" }}
|
||||
{{- end }}
|
||||
{{- if or (index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "fetchConfig" "url") (index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "fetchConfig" "selector") }}
|
||||
fetchConfig:
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "fetchConfig" "url" }}
|
||||
url: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "fetchConfig" "url" }}
|
||||
{{- end }}
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "fetchConfig" "selector" }}
|
||||
selector: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "fetchConfig" "selector" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "imageUrl" }}
|
||||
deployment:
|
||||
containers:
|
||||
- name: manager
|
||||
imageUrl: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "imageUrl" }}
|
||||
additionalDeployments:
|
||||
ipam-controller-manager:
|
||||
deployment:
|
||||
containers:
|
||||
- imageUrl: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "imageUrl" }}
|
||||
name: manager
|
||||
{{- end }}
|
||||
{{- end }}
|
166
rancher-turtles-chart/templates/post-delete-job.yaml
Normal file
166
rancher-turtles-chart/templates/post-delete-job.yaml
Normal file
@ -0,0 +1,166 @@
|
||||
{{- if index .Values "rancherTurtles" "features" "cluster-api-operator" "cleanup" }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: post-delete-job
|
||||
namespace: '{{ .Values.rancherTurtles.namespace }}'
|
||||
annotations:
|
||||
"helm.sh/hook": post-delete
|
||||
"helm.sh/hook-weight": "1"
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: post-delete-job-delete-webhooks
|
||||
annotations:
|
||||
"helm.sh/hook": post-delete
|
||||
"helm.sh/hook-weight": "1"
|
||||
rules:
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- validatingwebhookconfigurations
|
||||
- mutatingwebhookconfigurations
|
||||
verbs:
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments
|
||||
verbs:
|
||||
- delete
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: post-delete-job-webhook-cleanup
|
||||
annotations:
|
||||
"helm.sh/hook": post-delete
|
||||
"helm.sh/hook-weight": "1"
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: post-delete-job
|
||||
namespace: rancher-turtles-system
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: post-delete-job-delete-webhooks
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: cluster-api-operator-mutatingwebhook-cleanup
|
||||
namespace: '{{ .Values.rancherTurtles.namespace }}'
|
||||
annotations:
|
||||
"helm.sh/hook": post-delete
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
serviceAccountName: post-delete-job
|
||||
containers:
|
||||
- name: cluster-api-operator-mutatingwebhook-cleanup
|
||||
image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
|
||||
command: ["kubectl"]
|
||||
args:
|
||||
- delete
|
||||
- mutatingwebhookconfigurations.admissionregistration.k8s.io
|
||||
- capi-mutating-webhook-configuration
|
||||
- capi-kubeadm-bootstrap-mutating-webhook-configuration
|
||||
- capi-kubeadm-control-plane-mutating-webhook-configuration
|
||||
- rke2-bootstrap-mutating-webhook-configuration
|
||||
- rke2-control-plane-mutating-webhook-configuration
|
||||
- --ignore-not-found=true
|
||||
restartPolicy: Never
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: cluster-api-operator-validatingwebhook-cleanup
|
||||
namespace: '{{ .Values.rancherTurtles.namespace }}'
|
||||
annotations:
|
||||
"helm.sh/hook": post-delete
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
serviceAccountName: post-delete-job
|
||||
containers:
|
||||
- name: cluster-api-operator-validatingwebhook-cleanup
|
||||
image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
|
||||
command: ["kubectl"]
|
||||
args:
|
||||
- delete
|
||||
- validatingwebhookconfigurations.admissionregistration.k8s.io
|
||||
- capi-validating-webhook-configuration
|
||||
- capi-kubeadm-bootstrap-validating-webhook-configuration
|
||||
- capi-kubeadm-control-plane-validating-webhook-configuration
|
||||
- rke2-bootstrap-validating-webhook-configuration
|
||||
- rke2-control-plane-validating-webhook-configuration
|
||||
- --ignore-not-found=true
|
||||
restartPolicy: Never
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: cluster-api-operator-deployment-cleanup
|
||||
namespace: '{{ .Values.rancherTurtles.namespace }}'
|
||||
annotations:
|
||||
"helm.sh/hook": post-delete
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
serviceAccountName: post-delete-job
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- name: delete-capi-controller-manager
|
||||
image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
|
||||
command: ["kubectl"]
|
||||
args:
|
||||
- delete
|
||||
- deployments.apps/capi-controller-manager
|
||||
- -n
|
||||
- {{ index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }}
|
||||
- --ignore-not-found=true
|
||||
- name: delete-capi-kubeadm-bootstrap-controller-manager
|
||||
image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
|
||||
command: ["kubectl"]
|
||||
args:
|
||||
- delete
|
||||
- deployments.apps/capi-kubeadm-bootstrap-controller-manager
|
||||
- -n
|
||||
- capi-kubeadm-bootstrap-system
|
||||
- --ignore-not-found=true
|
||||
- name: delete-capi-kubeadm-control-plane-controller-manager
|
||||
image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
|
||||
command: ["kubectl"]
|
||||
args:
|
||||
- delete
|
||||
- deployments.apps/capi-kubeadm-control-plane-controller-manager
|
||||
- -n
|
||||
- capi-kubeadm-control-plane-system
|
||||
- --ignore-not-found=true
|
||||
- name: delete-rke2-kubeadm-bootstrap-controller-manager
|
||||
image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
|
||||
command: ["kubectl"]
|
||||
args:
|
||||
- delete
|
||||
- deployments.apps/rke2-bootstrap-controller-manager
|
||||
- -n
|
||||
- {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "namespace" }}
|
||||
- --ignore-not-found=true
|
||||
- name: delete-rke2-control-plane-controller-manager
|
||||
image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }}
|
||||
command: ["kubectl"]
|
||||
args:
|
||||
- delete
|
||||
- deployments.apps/rke2-control-plane-controller-manager
|
||||
- -n
|
||||
- {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "namespace" }}
|
||||
- --ignore-not-found=true
|
||||
{{- end }}
|
78
rancher-turtles-chart/templates/post-upgrade-job.yaml
Normal file
78
rancher-turtles-chart/templates/post-upgrade-job.yaml
Normal file
@ -0,0 +1,78 @@
|
||||
{{- if eq (index .Values "rancherTurtles" "features" "managementv3-cluster-migration" "enabled") true }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: post-upgrade-job
|
||||
namespace: rancher-turtles-system
|
||||
annotations:
|
||||
"helm.sh/hook": post-upgrade
|
||||
"helm.sh/hook-weight": "1"
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: post-upgrade-job-delete-clusters
|
||||
annotations:
|
||||
"helm.sh/hook": post-upgrade
|
||||
"helm.sh/hook-weight": "1"
|
||||
rules:
|
||||
- apiGroups:
|
||||
- provisioning.cattle.io
|
||||
resources:
|
||||
- clusters
|
||||
verbs:
|
||||
- list
|
||||
- delete
|
||||
- apiGroups:
|
||||
- management.cattle.io
|
||||
resources:
|
||||
- clusters
|
||||
verbs:
|
||||
- list
|
||||
- delete
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: post-upgrade-job-delete-clusters
|
||||
annotations:
|
||||
"helm.sh/hook": post-upgrade
|
||||
"helm.sh/hook-weight": "1"
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: post-upgrade-job
|
||||
namespace: rancher-turtles-system
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: post-upgrade-job-delete-clusters
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: post-upgrade-delete-clusters
|
||||
annotations:
|
||||
"helm.sh/hook": post-upgrade
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
serviceAccountName: post-upgrade-job
|
||||
containers:
|
||||
- name: post-upgrade-delete-clusters
|
||||
image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }}
|
||||
args:
|
||||
- delete
|
||||
{{- if eq (index .Values "rancherTurtles" "features" "managementv3-cluster" "enabled") true }}
|
||||
- clusters.provisioning.cattle.io
|
||||
{{- else }}
|
||||
- clusters.management.cattle.io
|
||||
{{- end }}
|
||||
- --selector=cluster-api.cattle.io/owned
|
||||
- -A
|
||||
- --ignore-not-found=true
|
||||
- --wait
|
||||
restartPolicy: OnFailure
|
||||
{{- end }}
|
67
rancher-turtles-chart/templates/pre-delete-job.yaml
Normal file
67
rancher-turtles-chart/templates/pre-delete-job.yaml
Normal file
@ -0,0 +1,67 @@
|
||||
{{- if index .Values "rancherTurtles" "features" "rancher-webhook" "cleanup" }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: pre-delete-job
|
||||
namespace: rancher-turtles-system
|
||||
annotations:
|
||||
"helm.sh/hook": pre-delete
|
||||
"helm.sh/hook-weight": "-2"
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: pre-delete-job-delete-capiproviders
|
||||
annotations:
|
||||
"helm.sh/hook": pre-delete
|
||||
"helm.sh/hook-weight": "-2"
|
||||
rules:
|
||||
- apiGroups:
|
||||
- turtles-capi.cattle.io
|
||||
resources:
|
||||
- capiproviders
|
||||
verbs:
|
||||
- list
|
||||
- delete
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: pre-delete-job-capiprovider-cleanup
|
||||
annotations:
|
||||
"helm.sh/hook": pre-delete
|
||||
"helm.sh/hook-weight": "-2"
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: pre-delete-job
|
||||
namespace: rancher-turtles-system
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: pre-delete-job-delete-capiproviders
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: rancher-capiprovider-cleanup
|
||||
namespace: rancher-turtles-system
|
||||
annotations:
|
||||
"helm.sh/hook": pre-delete
|
||||
"helm.sh/hook-weight": "-1"
|
||||
spec:
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
serviceAccountName: pre-delete-job
|
||||
containers:
|
||||
- name: rancher-capiprovider-cleanup
|
||||
image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }}
|
||||
args:
|
||||
- delete
|
||||
- capiproviders
|
||||
- -A
|
||||
- --all
|
||||
- --cascade=foreground
|
||||
restartPolicy: Never
|
||||
{{- end }}
|
99
rancher-turtles-chart/templates/pre-install-job.yaml
Normal file
99
rancher-turtles-chart/templates/pre-install-job.yaml
Normal file
@ -0,0 +1,99 @@
|
||||
{{- if index .Values "rancherTurtles" "features" "embedded-capi" "disabled" }}
|
||||
---
|
||||
apiVersion: management.cattle.io/v3
|
||||
kind: Feature
|
||||
metadata:
|
||||
name: embedded-cluster-api
|
||||
annotations:
|
||||
"helm.sh/hook": pre-install
|
||||
"helm.sh/hook-weight": "1"
|
||||
spec:
|
||||
value: false
|
||||
{{- end }}
|
||||
{{- if index .Values "rancherTurtles" "features" "rancher-webhook" "cleanup" }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: pre-install-job
|
||||
namespace: rancher-turtles-system
|
||||
annotations:
|
||||
"helm.sh/hook": pre-install
|
||||
"helm.sh/hook-weight": "1"
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: pre-install-job-delete-webhooks
|
||||
annotations:
|
||||
"helm.sh/hook": pre-install
|
||||
"helm.sh/hook-weight": "1"
|
||||
rules:
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- validatingwebhookconfigurations
|
||||
- mutatingwebhookconfigurations
|
||||
verbs:
|
||||
- delete
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: pre-install-job-webhook-cleanup
|
||||
annotations:
|
||||
"helm.sh/hook": pre-install
|
||||
"helm.sh/hook-weight": "1"
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: pre-install-job
|
||||
namespace: rancher-turtles-system
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: pre-install-job-delete-webhooks
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: rancher-mutatingwebhook-cleanup
|
||||
annotations:
|
||||
"helm.sh/hook": pre-install
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
serviceAccountName: pre-install-job
|
||||
containers:
|
||||
- name: rancher-mutatingwebhook-cleanup
|
||||
image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }}
|
||||
args:
|
||||
- delete
|
||||
- mutatingwebhookconfigurations.admissionregistration.k8s.io
|
||||
- mutating-webhook-configuration
|
||||
- --ignore-not-found=true
|
||||
restartPolicy: Never
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: rancher-validatingwebhook-cleanup
|
||||
annotations:
|
||||
"helm.sh/hook": pre-install
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
serviceAccountName: pre-install-job
|
||||
containers:
|
||||
- name: rancher-validatingwebhook-cleanup
|
||||
image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }}
|
||||
args:
|
||||
- delete
|
||||
- validatingwebhookconfigurations.admissionregistration.k8s.io
|
||||
- validating-webhook-configuration
|
||||
- --ignore-not-found=true
|
||||
restartPolicy: Never
|
||||
{{- end }}
|
3338
rancher-turtles-chart/templates/rancher-turtles-components.yaml
Normal file
3338
rancher-turtles-chart/templates/rancher-turtles-components.yaml
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,123 @@
|
||||
{{- if index .Values "rancherTurtles" "features" "etcd-snapshot-restore" "enabled" }}
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: etcdmachinesnapshots.turtles-capi.cattle.io
|
||||
spec:
|
||||
group: turtles-capi.cattle.io
|
||||
names:
|
||||
kind: EtcdMachineSnapshot
|
||||
listKind: EtcdMachineSnapshotList
|
||||
plural: etcdmachinesnapshots
|
||||
singular: etcdmachinesnapshot
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: EtcdMachineSnapshot is the Schema for the EtcdMachineSnapshot
|
||||
API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: EtcdMachineSnapshotSpec defines the desired state of EtcdMachineSnapshot.
|
||||
properties:
|
||||
foo:
|
||||
type: string
|
||||
required:
|
||||
- foo
|
||||
type: object
|
||||
status:
|
||||
default: {}
|
||||
description: EtcdMachineSnapshotStatus defines observed state of EtcdMachineSnapshot.
|
||||
properties:
|
||||
bar:
|
||||
type: string
|
||||
required:
|
||||
- bar
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
name: etcdsnapshotrestores.turtles-capi.cattle.io
|
||||
spec:
|
||||
group: turtles-capi.cattle.io
|
||||
names:
|
||||
kind: EtcdSnapshotRestore
|
||||
listKind: EtcdSnapshotRestoreList
|
||||
plural: etcdsnapshotrestores
|
||||
singular: etcdsnapshotrestore
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: EtcdSnapshotRestore is the schema for the EtcdSnapshotRestore
|
||||
API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: EtcdSnapshotRestoreSpec defines the desired state of EtcdSnapshotRestore.
|
||||
properties:
|
||||
foo:
|
||||
type: string
|
||||
required:
|
||||
- foo
|
||||
type: object
|
||||
status:
|
||||
default: {}
|
||||
description: EtcdSnapshotRestoreStatus defines observed state of EtcdSnapshotRestore.
|
||||
properties:
|
||||
bar:
|
||||
type: string
|
||||
required:
|
||||
- bar
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
{{- end }}
|
49
rancher-turtles-chart/templates/rke2-bootstrap.yaml
Normal file
49
rancher-turtles-chart/templates/rke2-bootstrap.yaml
Normal file
@ -0,0 +1,49 @@
|
||||
{{- if and (index .Values "cluster-api-operator" "cluster-api" "enabled") (index .Values "cluster-api-operator" "cluster-api" "rke2" "enabled") }}
|
||||
{{- $namespace := index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "namespace" }}
|
||||
{{- if not (lookup "v1" "Namespace" "" $namespace) }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "1"
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "namespace" }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: turtles-capi.cattle.io/v1alpha1
|
||||
kind: CAPIProvider
|
||||
metadata:
|
||||
name: rke2-bootstrap
|
||||
namespace: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "namespace" }}
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
name: rke2
|
||||
type: bootstrap
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
|
||||
version: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
|
||||
{{- end }}
|
||||
configSecret:
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
|
||||
{{ else }}
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "configSecret" "defaultName" }}
|
||||
{{- end }}
|
||||
{{- if or (index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "fetchConfig" "url") (index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "fetchConfig" "selector") }}
|
||||
fetchConfig:
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "fetchConfig" "url" }}
|
||||
url: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "fetchConfig" "url" }}
|
||||
{{- end }}
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "fetchConfig" "selector" }}
|
||||
selector: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "fetchConfig" "selector" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "imageUrl" }}
|
||||
deployment:
|
||||
containers:
|
||||
- name: manager
|
||||
imageUrl: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "imageUrl" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
49
rancher-turtles-chart/templates/rke2-controlplane.yaml
Normal file
49
rancher-turtles-chart/templates/rke2-controlplane.yaml
Normal file
@ -0,0 +1,49 @@
|
||||
{{- if and (index .Values "cluster-api-operator" "cluster-api" "enabled") (index .Values "cluster-api-operator" "cluster-api" "rke2" "enabled") }}
|
||||
{{- $namespace := index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "namespace" }}
|
||||
{{- if not (lookup "v1" "Namespace" "" $namespace) }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "1"
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "namespace" }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: turtles-capi.cattle.io/v1alpha1
|
||||
kind: CAPIProvider
|
||||
metadata:
|
||||
name: rke2-control-plane
|
||||
namespace: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "namespace" }}
|
||||
annotations:
|
||||
"helm.sh/hook": "post-install, post-upgrade"
|
||||
"helm.sh/hook-weight": "2"
|
||||
spec:
|
||||
name: rke2
|
||||
type: controlPlane
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
|
||||
version: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
|
||||
{{- end }}
|
||||
configSecret:
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
|
||||
{{ else }}
|
||||
name: {{ index .Values "cluster-api-operator" "cluster-api" "configSecret" "defaultName" }}
|
||||
{{- end }}
|
||||
{{- if or (index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "fetchConfig" "url") (index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "fetchConfig" "selector") }}
|
||||
fetchConfig:
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "fetchConfig" "url" }}
|
||||
url: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "fetchConfig" "url" }}
|
||||
{{- end }}
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "fetchConfig" "selector" }}
|
||||
selector: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "fetchConfig" "selector" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "imageUrl" }}
|
||||
deployment:
|
||||
containers:
|
||||
- name: manager
|
||||
imageUrl: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "controlPlane" "imageUrl" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
90
rancher-turtles-chart/values.yaml
Normal file
90
rancher-turtles-chart/values.yaml
Normal file
@ -0,0 +1,90 @@
|
||||
rancherTurtles:
|
||||
image: registry.rancher.com/rancher/rancher/turtles
|
||||
imageVersion: v0.11.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
namespace: rancher-turtles-system
|
||||
managerArguments: []
|
||||
imagePullSecrets: []
|
||||
features:
|
||||
cluster-api-operator:
|
||||
cleanup: true
|
||||
kubectlImage: rancher/kubectl:v1.30.3
|
||||
embedded-capi:
|
||||
disabled: false
|
||||
rancher-webhook:
|
||||
cleanup: false
|
||||
kubectlImage: rancher/kubectl:v1.30.3
|
||||
rancher-kubeconfigs:
|
||||
label: false
|
||||
managementv3-cluster:
|
||||
enabled: true
|
||||
managementv3-cluster-migration:
|
||||
enabled: false
|
||||
propagate-labels:
|
||||
enabled: false
|
||||
etcd-snapshot-restore:
|
||||
enabled: false
|
||||
addon-provider-fleet:
|
||||
enabled: false
|
||||
cluster-api-operator:
|
||||
enabled: true
|
||||
cert-manager:
|
||||
enabled: false
|
||||
image:
|
||||
manager:
|
||||
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%cluster-api-operator"
|
||||
tag: 0.12.0
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: capi-operator-webhook-service-cert
|
||||
- name: clusterctl-config
|
||||
configMap:
|
||||
name: clusterctl-config
|
||||
volumeMounts:
|
||||
manager:
|
||||
- mountPath: /tmp/k8s-webhook-server/serving-certs
|
||||
name: cert
|
||||
readOnly: true
|
||||
- mountPath: /config
|
||||
name: clusterctl-config
|
||||
readOnly: true
|
||||
cluster-api:
|
||||
enabled: true
|
||||
configSecret:
|
||||
name: ""
|
||||
defaultName: capi-env-variables
|
||||
core:
|
||||
namespace: capi-system
|
||||
imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%cluster-api-controller:1.7.5"
|
||||
fetchConfig:
|
||||
url: ""
|
||||
selector: ""
|
||||
rke2:
|
||||
enabled: true
|
||||
version: ""
|
||||
bootstrap:
|
||||
namespace: rke2-bootstrap-system
|
||||
imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%cluster-api-provider-rke2-bootstrap:0.7.1"
|
||||
fetchConfig:
|
||||
url: ""
|
||||
selector: ""
|
||||
controlPlane:
|
||||
namespace: rke2-control-plane-system
|
||||
imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%cluster-api-provider-rke2-controlplane:0.7.1"
|
||||
fetchConfig:
|
||||
url: ""
|
||||
selector: ""
|
||||
metal3:
|
||||
enabled: true
|
||||
version: ""
|
||||
infrastructure:
|
||||
namespace: capm3-system
|
||||
imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%cluster-api-provider-metal3:1.7.1"
|
||||
fetchConfig:
|
||||
url: ""
|
||||
selector: ""
|
||||
ipam:
|
||||
namespace: capm3-system
|
||||
imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%ip-address-manager:1.7.1"
|
@ -2,7 +2,7 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
||||
|
@ -2,14 +2,14 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">values.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
</service>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Chart.yaml</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
</service>
|
||||
</services>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_env" mode="buildtime">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %img_prefix)</param>
|
||||
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||
<param name="var">IMG_PREFIX</param>
|
||||
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||
<param name="var">IMG_REPO</param>
|
||||
|
Loading…
Reference in New Issue
Block a user