Skip to content
Snippets Groups Projects
Commit c90d8b7c authored by vegall's avatar vegall Committed by garciadeblas
Browse files

feature: helm charts repos with certs


Change-Id: Ic212c265dd6ad40bb6032f3e1155501e51fea78a
Signed-off-by: default avatarLuis Vega <lvega@whitestack.com>
Signed-off-by: default avatargarciadeblas <gerardo.garciadeblas@telefonica.com>
parent 9cdadd6b
Branches v14.0
Tags v14.0.3
No related merge requests found
......@@ -14,7 +14,7 @@
# under the License.
import click
from osmclient.common.exceptions import NotFound
from osmclient.common.exceptions import NotFound, ClientException
from osmclient.cli_commands import utils
from prettytable import PrettyTable
import yaml
......@@ -42,6 +42,16 @@ logger = logging.getLogger("osmclient")
default=None,
help="OSM repository: The password of the OSM repository",
)
@click.option(
"--oci",
is_flag=True,
help="enable OCI (only for helm-chart repos, default: false, automatically set to true for oci:// URI)",
)
@click.option(
"--ca-file",
default=None,
help="cert to use when adding a repository (only for helm)",
)
@click.pass_context
def repo_add(ctx, **kwargs):
"""adds a repo to OSM
......@@ -52,6 +62,21 @@ def repo_add(ctx, **kwargs):
kwargs = {k: v for k, v in kwargs.items() if v is not None}
repo = kwargs
repo["url"] = repo.pop("uri")
if repo["url"].startswith("oci://"):
repo["oci"] = True
if "ca_file" in kwargs:
try:
with open(kwargs["ca_file"], "r") as ca_cert:
repo["cacert"] = ca_cert.read()
repo.pop("ca_file")
except FileNotFoundError:
raise ClientException("CA file not found !")
except EOFError:
raise ClientException("Empty CA file !")
except PermissionError:
raise ClientException("Can not read CA file ! Insufficient permissions")
except Exception as e:
raise ClientException(f"Can not read the cert file ! Error: {e}")
if repo["type"] in ["helm-chart", "juju-bundle"]:
ctx.obj.repo.create(repo["name"], repo)
else:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment