cmd

package
v0.0.0-...-d3d374b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2018 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GeneratedByNamespace = "openshift.io/generated-by"
	GeneratedForJob      = "openshift.io/generated-job"
	GeneratedForJobFor   = "openshift.io/generated-job.for"
	GeneratedByNewApp    = "OpenShiftNewApp"
	GeneratedByNewBuild  = "OpenShiftNewBuild"
)
View Source
const (
	// OpenShiftDisplayName is a common, optional annotation that stores the name displayed by a UI when referencing a resource.
	OpenShiftDisplayName = "openshift.io/display-name"
)

These constants represent common annotations keys

Variables

View Source
var ErrNoDockerfileDetected = errors.New("No Dockerfile was found in the repository and the requested build strategy is 'docker'")

ErrNoDockerfileDetected is the error returned when the requested build strategy is Docker and no Dockerfile is detected in the repository.

View Source
var ErrNoInputs = errors.New("no inputs provided")

ErrNoInputs is returned when no inputs are specified

Functions

func AddComponentInputsToRefBuilder

func AddComponentInputsToRefBuilder(b *app.ReferenceBuilder, r *Resolvers, c *ComponentInputs, g *GenerationInputs) error

AddComponentInputsToRefBuilder set up the components to be used by the reference builder.

func AddDockerfileToSourceRepositories

func AddDockerfileToSourceRepositories(b *app.ReferenceBuilder, dockerfile string) error

AddDockerfile adds a Dockerfile passed in the command line to the reference builder.

func AddMissingComponentsToRefBuilder

func AddMissingComponentsToRefBuilder(
	b *app.ReferenceBuilder, repositories app.SourceRepositories, dockerfileResolver, sourceResolver app.Resolver,
	g *GenerationInputs,
) (app.ComponentReferences, error)

ComponentsForSourceRepositories creates components for repositories that have not been previously associated by a builder. These components have already gone through source code detection and have a SourceRepositoryInfo attached to them.

func AddSourceRepositoriesToRefBuilder

func AddSourceRepositoriesToRefBuilder(b *app.ReferenceBuilder, repos []string, g *GenerationInputs) (app.SourceRepositories, error)

AddSourceRepositoriesToRefBuilder adds the provided repositories to the reference builder, identifies which should be built using Docker, and then returns the full list of source repositories.

func DescribeGeneratedTemplate

func DescribeGeneratedTemplate(out io.Writer, input string, result *templateapi.Template, baseNamespace string)

DescribeGeneratedTemplate writes a description of the provided template to out.

func DetectSource

func DetectSource(repositories []*app.SourceRepository, d app.Detector, g *GenerationInputs) error

DetectSource runs a code detector on the passed in repositories to obtain a SourceRepositoryInfo

func EnsureHasSource

func EnsureHasSource(components app.ComponentReferences, repositories app.SourceRepositories, g *GenerationInputs) error

EnsureHasSource ensure every builder component has source code associated with it. It takes a list of component references that are builders and have not been associated with source, and a set of source repositories that have not been associated with a builder

func InferBuildTypes

func InferBuildTypes(components app.ComponentReferences, g *GenerationInputs) (app.ComponentReferences, error)

InferBuildTypes infers build status and mismatches between source and docker builders

func TransformTemplate

func TransformTemplate(tpl *templateapi.Template, client client.TemplateConfigsNamespacer, namespace string, parameters map[string]string) (*templateapi.Template, error)

TransformTemplate processes a template with the provided parameters, returning an error if transformation fails.

Types

type AppConfig

type AppConfig struct {
	ComponentInputs
	GenerationInputs

	ResolvedComponents *ResolvedComponents

	SkipGeneration bool

	AllowSecretUse              bool
	AllowNonNumericExposedPorts bool
	SecretAccessor              app.SecretAccessor

	AsSearch bool
	AsList   bool
	DryRun   bool

	Out    io.Writer
	ErrOut io.Writer

	KubeClient kclient.Interface

	Resolvers

	Typer        runtime.ObjectTyper
	Mapper       meta.RESTMapper
	ClientMapper resource.ClientMapper

	OSClient        client.Interface
	OriginNamespace string
}

AppConfig contains all the necessary configuration for an application

func NewAppConfig

func NewAppConfig() *AppConfig

NewAppConfig returns a new AppConfig, but you must set your typer, mapper, and clientMapper after the command has been run and flags have been parsed.

func (*AppConfig) AddArguments

func (c *AppConfig) AddArguments(args []string) []string

AddArguments converts command line arguments into the appropriate bucket based on what they look like

func (*AppConfig) DockerRegistrySearcher

func (c *AppConfig) DockerRegistrySearcher() app.Searcher

func (*AppConfig) GetBuildEnvironment

func (c *AppConfig) GetBuildEnvironment(environment app.Environment) app.Environment

func (*AppConfig) HasArguments

func (c *AppConfig) HasArguments() bool

func (*AppConfig) Querying

func (c *AppConfig) Querying() bool

func (*AppConfig) Run

func (c *AppConfig) Run() (*AppResult, error)

Run executes the provided config to generate objects.

func (*AppConfig) RunQuery

func (c *AppConfig) RunQuery() (*QueryResult, error)

RunQuery executes the provided config and returns the result of the resolution.

func (*AppConfig) SetOpenShiftClient

func (c *AppConfig) SetOpenShiftClient(osclient client.Interface, OriginNamespace string, dockerclient *docker.Client)

SetOpenShiftClient sets the passed OpenShift client in the application configuration

type AppResult

type AppResult struct {
	List *kapi.List

	Name      string
	HasSource bool
	Namespace string

	GeneratedJobs bool
}

AppResult contains the results of an application

type ComponentInputs

type ComponentInputs struct {
	SourceRepositories []string

	Components    []string
	ImageStreams  []string
	DockerImages  []string
	Templates     []string
	TemplateFiles []string

	Groups []string
}

ComponentInputs are transformed into ResolvedComponents

type ErrRequiresExplicitAccess

type ErrRequiresExplicitAccess struct {
	Match app.ComponentMatch
	Input app.GeneratorInput
}

func (ErrRequiresExplicitAccess) Error

type GenerationInputs

type GenerationInputs struct {
	TemplateParameters []string
	Environment        []string
	Labels             map[string]string

	AddEnvironmentToBuild bool

	InsecureRegistry bool

	Strategy string

	Name     string
	To       string
	NoOutput bool

	OutputDocker  bool
	Dockerfile    string
	ExpectToBuild bool
	BinaryBuild   bool
	ContextDir    string

	SourceImage     string
	SourceImagePath string

	Secrets []string

	AllowMissingImageStreamTags bool

	Deploy           bool
	AsTestDeployment bool

	AllowGenerationErrors bool
}

GenerationInputs control how new-app creates output TODO: split these into finer grained structs

type QueryResult

type QueryResult struct {
	Matches app.ComponentMatches
	List    *kapi.List
}

QueryResult contains the results of a query (search or list)

type ResolvedComponents

type ResolvedComponents struct {
	Components   app.ComponentReferences
	Repositories app.SourceRepositories
}

ResolvedComponents is the input to generation

func Resolve

Resolve transforms unstructured inputs (component names, templates, images) into a set of resolved components, or returns an error.

type Resolvers

type Resolvers struct {
	DockerSearcher                  app.Searcher
	ImageStreamSearcher             app.Searcher
	ImageStreamByAnnotationSearcher app.Searcher
	TemplateSearcher                app.Searcher
	TemplateFileSearcher            app.Searcher

	AllowMissingImages bool

	Detector app.Detector
}

Resolvers are used to identify source repositories, images, or templates in different contexts

func (*Resolvers) DockerfileResolver

func (r *Resolvers) DockerfileResolver() app.Resolver

func (*Resolvers) ImageSourceResolver

func (r *Resolvers) ImageSourceResolver() app.Resolver

func (*Resolvers) SourceResolver

func (r *Resolvers) SourceResolver() app.Resolver

TODO: why does this differ from ImageSourceResolver?

type UsageError

type UsageError interface {
	UsageError(commandName string) string
}

UsageError is an interface for printing usage errors

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL