in gke-deploy/cmd/prepare/prepare.go [85:138]
func prepare(_ *cobra.Command, options *options) error {
ctx := context.Background()
var im name.Reference
if options.image != "" {
ref, err := name.ParseReference(options.image)
if err != nil {
return err
}
im = ref
}
if options.filename == "" && options.image == "" {
return fmt.Errorf("omitting -f|--filename requires -i|--image to be set")
}
if options.output == "" {
return fmt.Errorf("value of -o|--output cannot be empty")
}
if options.exposePort < 0 {
return fmt.Errorf("value of -x|--expose must be > 0")
}
if options.exposePort > 0 && options.appName == "" {
return fmt.Errorf("exposing a deployed workload object requires -a|--app to be set")
}
if options.createApplicationCR && options.appName == "" {
return fmt.Errorf("creating an Application CR requires -a|--app to be set")
}
labelsMap, err := common.CreateMapFromEqualDelimitedStrings(options.labels)
if err != nil {
return err
}
annotationsMap, err := common.CreateMapFromEqualDelimitedStrings(options.annotations)
if err != nil {
return err
}
applicationLinks, err := common.CreateApplicationLinksListFromEqualDelimitedStrings(options.applicationLinks)
if err != nil {
return err
}
useGsutil := common.UseGsutil(options.filename, options.output)
d, err := common.CreateDeployer(ctx, useGsutil, false /* useGcloud */, options.verbose, false /* serverDryRun */)
if err != nil {
return err
}
if err := d.Prepare(ctx, im, options.appName, options.appVersion, options.filename, common.SuggestedOutputPath(options.output), common.ExpandedOutputPath(options.output), options.namespace, labelsMap, annotationsMap, options.exposePort, options.recursive, options.createApplicationCR, applicationLinks); err != nil {
return fmt.Errorf("failed to prepare deployment: %v", err)
}
return nil
}