Skip to content

Commit

Permalink
support private quay instance, update operator-framework#170
Browse files Browse the repository at this point in the history
  • Loading branch information
jkandasa committed Oct 22, 2019
1 parent 2ccc123 commit 768dda4
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
7 changes: 6 additions & 1 deletion operatorcourier/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ def build_and_verify(source_dir=None, yamls=None, ui_validate_io=False,

def build_verify_and_push(namespace, repository, revision, token,
source_dir=None, yamls=None,
validation_output=None):
validation_output=None,
quay_host='quay.io', verify_host=True):
"""Build verify and push constructs the operator bundle,
verifies it, and pushes it to an external app registry.
Currently the only supported app registry is the one
Expand All @@ -74,6 +75,10 @@ def build_verify_and_push(namespace, repository, revision, token,
:param source_dir: Path to local directory of yaml files to be read
:param yamls: List of yaml strings to create bundle with
:param validation_output: Path to optional output file for validation logs
:param quay_host: (optional) Supply this parameter if you use private quay instance.
Defaults to 'quay.io'
:param verify_host: (optional) ``quay_host`` TLS/CA verification.
Either a boolean or a string. Defaults to ``True``
:raises TypeError: When called with both source_dir and yamls specified
Expand Down
14 changes: 10 additions & 4 deletions operatorcourier/push.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,18 @@ class PushCmd():
def __init__(self):
pass

def push(self, bundle_dir, namespace, repository, release, auth_token):
def push(self, bundle_dir, namespace, repository, release, auth_token,
quay_host, verify_host):
"""Push takes a bundle and pushes it to the specified app registry repository.
:param bundle_dir: Path to generated local directory that contains the bundle.
:param namespace: Namespace that contains the repository for the application.
:param repository: Repository name of the application described by the bundle.
:param release: Release version of the bundle.
:param auth_token: Authentication token used to push to Quay.io.
:param quay_host: (optional) quay instance host. Defaults to 'quay.io'
:param verify_host: (optional) ``quay_host`` TLS/CA verification.
Either a boolean or a string. Defaults to ``True``
"""
logger.info('Generating 64 bit bundle and pushing to app registry.')
filterOutFiles(bundle_dir, BLACK_LIST)
Expand All @@ -45,14 +49,16 @@ def _create_base64_bundle(self, bundle_dir, repository):
result64 = base64.b64encode(result).decode("utf-8")
return result64

def _push_to_registry(self, namespace, repository, release, bundle, auth_token):
push_uri = 'https://quay.io/cnr/api/v1/packages/%s/%s' % (namespace, repository)
def _push_to_registry(self, namespace, repository, release, bundle, auth_token,
quay_host, verify_host):
push_uri = 'https://%s/cnr/api/v1/packages/%s/%s' % (quay_host, namespace,
repository)
logger.info('Pushing bundle to %s' % push_uri)
headers = {'Content-Type': 'application/json', 'Authorization': auth_token}
json = {'blob': bundle, 'release': release, "media_type": "helm"}

try:
r = requests.post(push_uri, json=json, headers=headers)
r = requests.post(push_uri, json=json, headers=headers, verify=verify_host)
except requests.RequestException as e:
msg = str(e)
logger.error(msg)
Expand Down

0 comments on commit 768dda4

Please sign in to comment.