From 2320ff1b5301b2702afc465488065454fc171df6 Mon Sep 17 00:00:00 2001 From: jaydee Date: Mon, 1 Dec 2025 18:10:46 +0100 Subject: [PATCH] build --- port.py | 12 +++++++++++- portainer.py | 13 +++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/port.py b/port.py index 9fbc8dc..62f3b1d 100644 --- a/port.py +++ b/port.py @@ -10,7 +10,7 @@ from concurrent.futures import ThreadPoolExecutor logger = logging.getLogger(__name__) from tabulate import tabulate from git import Repo # pip install gitpython - +import base64 class Portainer: """ Simple wrapper around the module-level Portainer helper functions. @@ -694,3 +694,13 @@ class Portainer: def __repr__(self): pass + + def create_secret(self, name, value, endpoint_id=None, timeout=None): + endpoint_id = int(self.endpoints["by_name"][endpoint_id]) + path = f"/endpoints/{endpoint_id}/docker/secrets/create" + encoded = base64.b64encode(value.encode()).decode() + data = { + "Name": name, + "Data": encoded + } + self.api_post(path, data, timeout=timeout) \ No newline at end of file diff --git a/portainer.py b/portainer.py index 70fede8..70e4734 100755 --- a/portainer.py +++ b/portainer.py @@ -30,6 +30,7 @@ parser.add_argument("--get-stack", metavar="NAME_OR_ID", help="Get stack by name parser.add_argument("--autostart", "-a", action="store_true", help="Auto-start created stacks") parser.add_argument("--start-stack", "-x", action='store_true') parser.add_argument("--stop-stack", "-o", action='store_true') +parser.add_argument("--secrets", "-q", action='store_true') parser.add_argument("--debug", "-D", action='store_true') parser.add_argument("--create-stack","-n", action='store_true') parser.add_argument("--create-stack_new2","-N", action='store_true') @@ -104,9 +105,17 @@ if __name__ == "__main__": token = portainer_api_key # Example: list endpoints por = Portainer(base, token) + if args.secrets: + secrets = { + "gitea_runner_registration_token": "8nmKqJhkvYwltmNfF2o9vs0tzo70ufHSQpVg6ymb", + } - if args.delete_stack: - por.delete_stack(args.endpoint_id,args.stack,) + for key, value in secrets.items(): + por.create_secret(key, value, args.endpoint_id, args.timeout) + sys.exit() + + if args.delete_stack: + por.delete_stack(args.endpoint_id, args.stack,) sys.exit() if args.create_stack: