def main(): parser = ArgumentParser(description=_PROG_HELP) schema_values_common.add_to_argument_parser(parser) parser.add_argument('--manifests', required=True, help='The yaml file containing all resources') args = parser.parse_args() schema = schema_values_common.load_schema(args) resources = load_resources_yaml(args.manifests) app = find_application_resource(resources) mp_deploy_info = app.get('metadata', {}).get( 'annotations', {}).get('marketplace.cloud.google.com/deploy-info') if not mp_deploy_info: raise Exception( 'Application resource is missing ' '"marketplace.cloud.google.com/deploy-info" annotation') validate_deploy_info_annotation(mp_deploy_info, schema) version = app.get('spec', {}).get('descriptor', {}).get('version') if not version or not isinstance(version, str): raise Exception( 'Application resource must have a valid spec.descriptor.version value' ) if schema.is_v2(): published_version = schema.x_google_marketplace.published_version if version != published_version: raise Exception( 'Application resource\'s spec.descriptor.version "{}" does not match ' 'schema.yaml\'s publishedVersion "{}"'.format( version, published_version))
def main(): parser = ArgumentParser(description=_PROG_HELP) schema_values_common.add_to_argument_parser(parser) parser.add_argument('--output', '-o', help=_OUTPUT_HELP, choices=[OUTPUT_SHELL_VARS, OUTPUT_YAML], default=OUTPUT_YAML) parser.add_argument('--param', help='If specified, outputs the value of a single ' 'parameter unescaped. The value here is a JSON ' 'which should partially match the parameter schema.') args = parser.parse_args() schema = schema_values_common.load_schema(args) values = schema_values_common.load_values(args) try: if args.param: definition = json.loads(args.param) sys.stdout.write(output_param(values, schema, definition)) return if args.output == OUTPUT_SHELL_VARS: sys.stdout.write(output_shell_vars(values)) elif args.output == OUTPUT_YAML: sys.stdout.write(output_yaml(values)) finally: sys.stdout.flush()
def main(): parser = ArgumentParser(description=_PROG_HELP) schema_values_common.add_to_argument_parser(parser) parser.add_argument('--deployer_image', required=True, help='The full deployer image, required') parser.add_argument('--deployer_image_digest', required=True, help='The digest of the deployer image, required') args = parser.parse_args() schema = schema_values_common.load_schema(args) schema.validate() if (schema.x_google_marketplace is None or not schema.x_google_marketplace.is_v2()): raise Exception('schema.yaml must be in v2 version') x = schema.x_google_marketplace meta = collections.OrderedDict([ ('releaseDate', _utcnow_timestamp()), ('url', args.deployer_image), ('digest', args.deployer_image_digest), ('releaseNote', x.published_version_meta.release_note), ]) if x.published_version_meta.release_types: meta['releaseTypes'] = x.published_version_meta.release_types if x.published_version_meta.recommended is not None: meta['recommended'] = x.published_version_meta.recommended sys.stdout.write(_ordered_dump(meta, default_flow_style=False, indent=2)) sys.stdout.flush()
def main(): parser = ArgumentParser(description=_PROG_HELP) schema_values_common.add_to_argument_parser(parser) parser.add_argument('--output', '-o', help=_OUTPUT_HELP, choices=[OUTPUT_SHELL_VARS, OUTPUT_YAML], default=OUTPUT_YAML) parser.add_argument( '--xtype', help='If specified, outputs the values of the given x-google-marketplace' ' property.') parser.add_argument( '--key', help='If specified, outputs the keys, rather than the values') args = parser.parse_args() schema = schema_values_common.load_schema(args) values = schema_values_common.load_values(args) try: if args.xtype: sys.stdout.write(output_xtype(values, schema, args.xtype, args.key)) return if args.output == OUTPUT_SHELL_VARS: sys.stdout.write(output_shell_vars(values)) elif args.output == OUTPUT_YAML: sys.stdout.write(output_yaml(values)) finally: sys.stdout.flush()
def main(): parser = ArgumentParser(description=_PROG_HELP) schema_values_common.add_to_argument_parser( parser, values_file='/data/values.yaml', values_dir='/data/values') parser.add_argument('--final_values_file', help='Where the final value file should be written to', default='/data/final_values.yaml') args = parser.parse_args() schema = schema_values_common.load_schema(args) values = schema_values_common.load_values(args) values = expand(values, schema) write_values(values, args.final_values_file)
def main(): parser = ArgumentParser(description=_PROG_HELP) schema_values_common.add_to_argument_parser(parser) args = parser.parse_args() schema = schema_values_common.load_schema(args) schema.validate() if (schema.x_google_marketplace is None or not schema.x_google_marketplace.is_v2()): raise Exception('schema.yaml must be in v2 version') sys.stdout.write(schema.x_google_marketplace.published_version) sys.stdout.flush()
def main(): parser = ArgumentParser(description=_PROG_HELP) schema_values_common.add_to_argument_parser(parser) parser.add_argument('--deployer_image', required=True) parser.add_argument('--deployer_entrypoint', default=None) args = parser.parse_args() schema = schema_values_common.load_schema(args) values = schema_values_common.load_values(args) manifests = process(schema, values, deployer_image=args.deployer_image, deployer_entrypoint=args.deployer_entrypoint) print yaml.safe_dump_all(manifests, default_flow_style=False, indent=2)
def main(): parser = ArgumentParser(description=_PROG_HELP) schema_values_common.add_to_argument_parser(parser) parser.add_argument('--final_values_file', help='Where the final value file should be written to', default='/data/final_values.yaml') parser.add_argument( '--app_uid', help= 'The application UID for populating into APPLICATION_UID properties', default='') args = parser.parse_args() schema = schema_values_common.load_schema(args) values = schema_values_common.load_values(args) values = expand(values, schema, app_uid=args.app_uid) write_values(values, args.final_values_file)
def main(): parser = ArgumentParser(description=_PROG_HELP) schema_values_common.add_to_argument_parser(parser) parser.add_argument( '--empty_if_not_supported', action='store_true', help='For a v1 schema, do not fail but output empty string instead') args = parser.parse_args() schema = schema_values_common.load_schema(args) schema.validate() if (schema.x_google_marketplace is None or not schema.x_google_marketplace.is_v2()): if args.empty_if_not_supported: sys.stderr.write('schema.yaml is not in v2 version. Skipping') sys.stderr.flush() return raise Exception('schema.yaml must be in v2 version') sys.stdout.write(schema.x_google_marketplace.published_version) sys.stdout.flush()
def main(): parser = ArgumentParser(description=_PROG_HELP) schema_values_common.add_to_argument_parser(parser) parser.add_argument('--deployer_image', required=True) parser.add_argument('--deployer_entrypoint', default=None) parser.add_argument('--deployer_service_account_name', required=True) parser.add_argument('--version_repo', default=None) parser.add_argument('--image_pull_secret', default=None) args = parser.parse_args() schema = schema_values_common.load_schema(args) values = schema_values_common.load_values(args) manifests = process( schema, values, deployer_image=args.deployer_image, deployer_entrypoint=args.deployer_entrypoint, version_repo=args.version_repo, image_pull_secret=args.image_pull_secret, deployer_service_account_name=args.deployer_service_account_name) print(yaml.safe_dump_all(manifests, default_flow_style=False, indent=2))