Skip to content

Commit 73d948b

Browse files
TUN-6210: Add cloudflared.repo to make it easy for yum installs
This PR provides a cloudflared.repo template that can simply then be added to yum repos by running ``` sudo dnf config-manager --add-repo ``` removing the requirement for yum installers to handcraft this or run echo commands.
1 parent 5e6f606 commit 73d948b

File tree

1 file changed

+50
-2
lines changed

1 file changed

+50
-2
lines changed

release_pkgs.py

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,26 @@ def create_rpm_pkgs(self, artifacts_path, gpg_key_name):
120120

121121
self._sign_repomd()
122122

123+
"""
124+
creates a <binary>.repo file with details like so
125+
[cloudflared-stable]
126+
name=cloudflared-stable
127+
baseurl=https://pkg.cloudflare.com/cloudflared/rpm
128+
enabled=1
129+
type=rpm
130+
gpgcheck=1
131+
gpgkey=https://pkg.cloudflare.com/cloudflare-main.gpg
132+
"""
133+
def create_repo_file(self, file_path, binary_name, baseurl, gpgkey_url):
134+
with open(file_path, "w+") as repo_file:
135+
repo_file.write(f"[{binary_name}-stable]")
136+
repo_file.write(f"{binary_name}-stable")
137+
repo_file.write(f"baseurl={baseurl}/rpm")
138+
repo_file.write("enabled=1")
139+
repo_file.write("type=rpm")
140+
repo_file.write("gpgcheck=1")
141+
repo_file.write(f"gpgkey={gpgkey_url}")
142+
123143
def _sign_rpms(self, file_path):
124144
p = Popen(["rpm" , "--define", f"_gpg_name {gpg_key_name}", "--addsign", file_path], stdout=PIPE, stderr=PIPE)
125145
out, err = p.communicate()
@@ -246,9 +266,19 @@ def create_deb_packaging(pkg_creator, pkg_uploader, releases, gpg_key_id, binary
246266
upload_from_directories(pkg_uploader, "dists", release_version, binary_name)
247267
upload_from_directories(pkg_uploader, "pool", release_version, binary_name)
248268

249-
def create_rpm_packaging(pkg_creator, pkg_uploader, artifacts_path, release_version, binary_name, gpg_key_name):
269+
def create_rpm_packaging(
270+
pkg_creator,
271+
pkg_uploader,
272+
artifacts_path,
273+
release_version,
274+
binary_name,
275+
gpg_key_name,
276+
base_url,
277+
gpg_key_url,
278+
):
250279
print(f"creating rpm pkgs...")
251280
pkg_creator.create_rpm_pkgs(artifacts_path, gpg_key_name)
281+
pkg_creator.create_repo_file(artifacts_path, binary_name, base_url, gpg_key_url)
252282

253283
print("uploading latest to r2...")
254284
upload_from_directories(pkg_uploader, "rpm", None, binary_name)
@@ -294,6 +324,15 @@ def parse_args():
294324
signing packages"
295325
)
296326

327+
parser.add_argument(
328+
"--gpg-public-key-url", default=os.environ.get("GPG_PUBLIC_KEY_URL"), help="GPG public key url that\
329+
downloaders can use to verify signing"
330+
)
331+
332+
parser.add_argument(
333+
"--pkg-upload-url", default=os.environ.get("PKG_URL"), help="URL to be used by downloaders"
334+
)
335+
297336
parser.add_argument(
298337
"--deb-based-releases", default=["bookworm", "bullseye", "buster", "jammy", "impish", "focal", "bionic"],
299338
help="list of debian based releases that need to be packaged for"
@@ -324,4 +363,13 @@ def parse_args():
324363
create_deb_packaging(pkg_creator, pkg_uploader, args.deb_based_releases, gpg_key_id, args.binary, args.archs,
325364
"main", args.release_tag)
326365

327-
create_rpm_packaging(pkg_creator, pkg_uploader, "./built_artifacts", args.release_tag, args.binary, gpg_key_name)
366+
create_rpm_packaging(
367+
pkg_creator,
368+
pkg_uploader,
369+
"./built_artifacts",
370+
args.release_tag,
371+
args.binary,
372+
gpg_key_name,
373+
args.gpg_public_key_url,
374+
args.pkg_upload_url,
375+
)

0 commit comments

Comments
 (0)