From 527538be344f13b52d791ba153f5163704178a29 Mon Sep 17 00:00:00 2001 From: Paul van der Linden Date: Fri, 2 Apr 2021 12:14:47 +0200 Subject: [PATCH] optional jsonnet --- kapitan/targets.py | 6 ++---- kapitan/utils.py | 16 ++++++++++------ requirements.txt | 2 +- setup.py | 3 +++ 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/kapitan/targets.py b/kapitan/targets.py index 1bdfcdc9c..c9c5b0862 100644 --- a/kapitan/targets.py +++ b/kapitan/targets.py @@ -31,7 +31,7 @@ from kapitan.inputs.external import External from kapitan.remoteinventory.fetch import fetch_inventories, list_sources from kapitan.resources import inventory_reclass -from kapitan.utils import dictionary_hash, directory_hash, hashable_lru_cache +from kapitan.utils import dictionary_hash, directory_hash, hashable_lru_cache, JSONNET_AVAILABLE from kapitan.validator.kubernetes_validator import KubernetesManifestValidator from reclass.errors import NotFoundError, ReclassException @@ -40,9 +40,7 @@ def check_jsonnet_import(): - try: - import _gojsonnet - except ImportError: + if not JSONNET_AVAILABLE: logger.info( "Note: jsonnet is not yet supported on ARM/M1. You can still use kadet and jinja2 for templating" ) diff --git a/kapitan/utils.py b/kapitan/utils.py index 518cd8cb7..80a997a37 100644 --- a/kapitan/utils.py +++ b/kapitan/utils.py @@ -21,7 +21,16 @@ from functools import lru_cache, wraps from hashlib import sha256 -import _gojsonnet as jsonnet +JSONNET_AVAILABLE = True +try: + import _gojsonnet as jsonnet + logging.debug('Using GO jsonnet over C jsonnet') +except ImportError: + try: + import _jsonnet as jsonnet + except ImportError: + JSONNET_AVAILABLE = False + import jinja2 import requests import yaml @@ -39,11 +48,6 @@ logger = logging.getLogger(__name__) -try: - import _jsonnet as jsonnet -except ImportError as e: - logger.debug("Could not import jsonnet: %s", e) - try: from yaml import CSafeLoader as YamlLoader diff --git a/requirements.txt b/requirements.txt index e0b3327c0..8a1d0d301 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # kapitan dependencies -gojsonnet==0.17.0 +jsonnet==0.16.0 pyyaml>=5.3.1 toml==0.10.1 Jinja2>=2.11.2 diff --git a/setup.py b/setup.py index 18e47e83a..9c921313f 100644 --- a/setup.py +++ b/setup.py @@ -75,4 +75,7 @@ def install_deps(): "kapitan=kapitan.cli:main", ], }, + extras_require={ + "gojsonnet": ["gojsonnet==0.17.0"] + } )