occlient

package
v0.0.16 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2018 License: Apache-2.0 Imports: 56 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OpenShiftNameSpace = "openshift"

	// ComponentPortAnnotationName annotation is used on the secrets that are created for each exposed port of the component
	ComponentPortAnnotationName = "component-port"

	// EnvS2IScriptsURL is an env var exposed to https://github.com/redhat-developer/odo-supervisord-image/blob/master/assemble-and-restart to indicate location of s2i scripts in this case assemble script
	EnvS2IScriptsURL = "ODO_S2I_SCRIPTS_URL"

	// EnvS2IScriptsProtocol is an env var exposed to https://github.com/redhat-developer/odo-supervisord-image/blob/master/assemble-and-restart to indicate the way to access location of s2i scripts indicated by ${${EnvS2IScriptsURL}} above
	EnvS2IScriptsProtocol = "ODO_S2I_SCRIPTS_PROTOCOL"

	// EnvS2ISrcOrBinPath is an env var exposed by s2i to indicate where the builder image expects the component source or binary to reside
	EnvS2ISrcOrBinPath = "ODO_S2I_SRC_BIN_PATH"

	// S2IScriptsURLLabel S2I script location Label name
	// Ref: https://docs.openshift.com/enterprise/3.2/creating_images/s2i.html#build-process
	S2IScriptsURLLabel = "io.openshift.s2i.scripts-url"

	// S2ISrcOrBinLabel is the label that is provides, path where S2I expects component source or binary
	S2ISrcOrBinLabel = "io.openshift.s2i.destination"

	// EnvS2IDeploymentDir is an env var exposed to https://github.com/redhat-developer/odo-supervisord-image/blob/master/assemble-and-restart to indicate s2i deployment directory
	EnvS2IDeploymentDir = "ODO_S2I_DEPLOYMENT_DIR"

	// DefaultS2ISrcOrBinPath is the default path where S2I expects source/binary artifacts in absence of $S2ISrcOrBinLabel in builder image
	// Ref: https://github.com/openshift/source-to-image/blob/master/docs/builder_image.md#required-image-contents
	DefaultS2ISrcOrBinPath = "/tmp"
)

Variables

View Source
var S2IDeploymentsDir = []string{
	"com.redhat.deployments-dir",
	"org.jboss.deployments-dir",
}

S2IDeploymentsDir is a set of possible S2I labels that provides S2I deployments directory This label is not uniform across different builder images. This slice is expected to grow as odo adds support to more component types and/or the respective builder images use different labels

Functions

func FakeNew added in v0.0.6

func FakeNew() (*Client, *FakeClientset)

FakeNew creates new fake client for testing returns Client that is filled with fake clients and FakeClientSet that holds fake Clientsets to access Actions, Reactors etc... in fake client

func ParseImageName added in v0.0.9

func ParseImageName(image string) (string, string, string, string, error)

parseImageName parse image reference returns (imageNamespace, imageName, tag, digest, error) if image is referenced by tag (name:tag) than digest is "" if image is referenced by digest (name@digest) than tag is ""

Types

type Client added in v0.0.3

type Client struct {
	KubeConfig clientcmd.ClientConfig
	Namespace  string
	// contains filtered or unexported fields
}

func New added in v0.0.3

func New(connectionCheck bool) (*Client, error)

func (*Client) AddEnvironmentVariablesToDeploymentConfig added in v0.0.4

func (c *Client) AddEnvironmentVariablesToDeploymentConfig(envs []corev1.EnvVar, dc *appsv1.DeploymentConfig) error

AddEnvironmentVariablesToDeploymentConfig adds the given environment variables to the only container in the Deployment Config and updates in the cluster

func (*Client) AddPVCToDeploymentConfig added in v0.0.4

func (c *Client) AddPVCToDeploymentConfig(dc *appsv1.DeploymentConfig, pvc string, path string) error

AddPVCToDeploymentConfig adds the given PVC to the given Deployment Config at the given path

func (*Client) BootstrapSupervisoredS2I added in v0.0.5

func (c *Client) BootstrapSupervisoredS2I(componentName string, commonObjectMeta metav1.ObjectMeta, builderImage string, inputPorts []string, envVars []string) error

BootstrapSupervisoredS2I uses S2I (Source To Image) to inject Supervisor into the application container. Odo uses https://github.com/ochinchina/supervisord which is pre-built in a ready-to-deploy InitContainer. The supervisord binary is copied over to the application container using a temporary volume and overrides the built-in S2I run function for the supervisord run command instead.

Supervisor keeps the pod running (as PID 1), so you it is possible to trigger assembly script inside running pod, and than restart application using Supervisor without need to restart the container/Pod.

func (*Client) CleanupAfterSupervisor added in v0.0.9

func (c *Client) CleanupAfterSupervisor(dcName string, annotations map[string]string) error

CleanupAfterSupervisor removes the supervisor from the deployment config dcName is the name of the deployment config to be updated projectName is the name of the project annotations are the updated annotations for the new deployment config

func (*Client) CopyFile added in v0.0.5

func (c *Client) CopyFile(localPath string, targetPodName string, targetPath string, copyFiles []string) error

CopyFile copies localPath directory or list of files in copyFiles list to the directory in running Pod. copyFiles is list of changed files captured during `odo watch` as well as binary file path During copying binary components, localPath represent base directory path to binary and copyFiles contains path of binary During copying local source components, localPath represent base directory path whereas copyFiles is empty During `odo watch`, localPath represent base directory path whereas copyFiles contains list of changed Files

func (*Client) CreateBuildConfig added in v0.0.14

func (c *Client) CreateBuildConfig(commonObjectMeta metav1.ObjectMeta, builderImage string, gitURL string, envVars []corev1.EnvVar) (buildv1.BuildConfig, error)

CreateBuildConfig creates a buildConfig using the builderImage as well as gitURL. envVars is the array containing the environment variables

func (*Client) CreateNewProject added in v0.0.3

func (c *Client) CreateNewProject(projectName string) error

CreateNewProject creates project with given projectName

func (*Client) CreatePVC added in v0.0.4

func (c *Client) CreatePVC(name string, size string, labels map[string]string) (*corev1.PersistentVolumeClaim, error)

CreatePVC creates a PVC resource in the cluster with the given name, size and labels

func (*Client) CreateRoute added in v0.0.3

func (c *Client) CreateRoute(name string, serviceName string, portNumber intstr.IntOrString, labels map[string]string) (*routev1.Route, error)

CreateRoute creates a route object for the given service and with the given labels serviceName is the name of the service for the target reference portNumber is the target port of the route

func (*Client) CreateSecret added in v0.0.15

func (c *Client) CreateSecret(objectMeta metav1.ObjectMeta, data map[string]string) error

CreateSecret generates and creates the secret commonObjectMeta is the ObjectMeta for the service

func (*Client) CreateService added in v0.0.9

func (c *Client) CreateService(commonObjectMeta metav1.ObjectMeta, containerPorts []corev1.ContainerPort) (*corev1.Service, error)

CreateService generates and creates the service commonObjectMeta is the ObjectMeta for the service dc is the deploymentConfig to get the container ports

func (*Client) CreateServiceBinding added in v0.0.14

func (c *Client) CreateServiceBinding(componentName string, namespace string) error

CreateServiceBinding creates a ServiceBinding (essentially a secret) within the namespace of the service instance created using the service's parameters.

func (*Client) CreateServiceInstance added in v0.0.11

func (c *Client) CreateServiceInstance(serviceName string, serviceType string, servicePlan string, parameters map[string]string, labels map[string]string) error

CreateServiceInstance creates service instance from service catalog

func (*Client) Delete added in v0.0.3

func (c *Client) Delete(labels map[string]string) error

Delete takes labels as a input and based on it, deletes respective resource

func (*Client) DeleteBuildConfig added in v0.0.14

func (c *Client) DeleteBuildConfig(commonObjectMeta metav1.ObjectMeta) error

DeleteBuildConfig deletes the given BuildConfig by name using CommonObjectMeta..

func (*Client) DeletePVC added in v0.0.4

func (c *Client) DeletePVC(name string) error

DeletePVC deletes the given PVC by name

func (*Client) DeleteProject added in v0.0.3

func (c *Client) DeleteProject(name string) error

DeleteProject deletes given project

func (*Client) DeleteRoute added in v0.0.3

func (c *Client) DeleteRoute(name string) error

DeleteRoute deleted the given route

func (*Client) DeleteServiceInstance added in v0.0.11

func (c *Client) DeleteServiceInstance(labels map[string]string) error

DeleteServiceInstance takes labels as a input and based on it, deletes respective service instance

func (*Client) DisplayDeploymentConfigLog added in v0.0.6

func (c *Client) DisplayDeploymentConfigLog(deploymentConfigName string, followLog bool, stdout io.Writer) error

Display DeploymentConfig log to stdout

func (*Client) ExecCMDInContainer added in v0.0.5

func (c *Client) ExecCMDInContainer(podName string, cmd []string, stdout io.Writer, stderr io.Writer, stdin io.Reader, tty bool) error

ExecCMDInContainer execute command in first container of a pod

func (*Client) FollowBuildLog added in v0.0.3

func (c *Client) FollowBuildLog(buildName string, stdout io.Writer) error

FollowBuildLog stream build log to stdout

func (*Client) GetAllClusterServicePlans added in v0.0.14

func (c *Client) GetAllClusterServicePlans() ([]scv1beta1.ClusterServicePlan, error)

GetAllClusterServicePlans returns list of available plans

func (*Client) GetBuildConfigFromName added in v0.0.10

func (c *Client) GetBuildConfigFromName(name string) (*buildv1.BuildConfig, error)

GetBuildConfigFromName get BuildConfig by its name

func (*Client) GetClusterPlansFromServiceName added in v0.0.15

func (c *Client) GetClusterPlansFromServiceName(serviceName string) ([]scv1beta1.ClusterServicePlan, error)

GetClusterPlansFromServiceName returns the plans associated with a service class serviceName is the name of the service class whose plans are required returns array of ClusterServicePlans or error

func (*Client) GetClusterServiceClass added in v0.0.15

func (c *Client) GetClusterServiceClass(serviceName string) (*scv1beta1.ClusterServiceClass, error)

GetClusterServiceClass returns the required service class from the service name serviceName is the name of the service returns the required service class and the error

func (*Client) GetClusterServiceClassExternalNamesAndPlans added in v0.0.14

func (c *Client) GetClusterServiceClassExternalNamesAndPlans() ([]Service, error)

GetClusterServiceClassExternalNamesAndPlans returns the names of all the cluster service classes in the cluster

func (*Client) GetClusterServiceClasses added in v0.0.3

func (c *Client) GetClusterServiceClasses() ([]scv1beta1.ClusterServiceClass, error)

GetClusterServiceClasses queries the service service catalog to get available clusterServiceClasses

func (*Client) GetCurrentProjectName added in v0.0.3

func (c *Client) GetCurrentProjectName() string

func (*Client) GetDeploymentConfigFromName added in v0.0.4

func (c *Client) GetDeploymentConfigFromName(name string) (*appsv1.DeploymentConfig, error)

GetDeploymentConfigFromName returns the Deployment Config resource given the Deployment Config name

func (*Client) GetDeploymentConfigsFromSelector added in v0.0.4

func (c *Client) GetDeploymentConfigsFromSelector(selector string) ([]appsv1.DeploymentConfig, error)

GetDeploymentConfigsFromSelector returns an array of Deployment Config resources which match the given selector

func (*Client) GetEnvVarsFromDC added in v0.0.14

func (c *Client) GetEnvVarsFromDC(dcName string) ([]corev1.EnvVar, error)

GetEnvVarsFromDC retrieves the env vars from the DC dcName is the name of the dc from which the env vars are retrieved projectName is the name of the project

func (*Client) GetExposedPorts added in v0.0.5

func (c *Client) GetExposedPorts(imageStreamImage *imagev1.ImageStreamImage) ([]corev1.ContainerPort, error)

GetExposedPorts returns list of ContainerPorts that are exposed by given image

func (*Client) GetImageStream added in v0.0.11

func (c *Client) GetImageStream(imageNS string, imageName string, imageTag string) (*imagev1.ImageStream, error)

GetImageNS returns the imagestream using image details like imageNS, imageName and imageTag imageNS can be empty in which case, this function searches currentNamespace on priority. If imagestream of required tag not found in current namespace, then searches openshift namespace. If not found, error out. If imageNS is not empty string, then, the requested imageNS only is searched for requested imagestream

func (*Client) GetImageStreamImage added in v0.0.15

func (c *Client) GetImageStreamImage(imageStream *imagev1.ImageStream, imageTag string) (*imagev1.ImageStreamImage, error)

GetImageStreamImage returns image and error if any, corresponding to the passed imagestream and image tag

func (*Client) GetImageStreams added in v0.0.3

func (c *Client) GetImageStreams(namespace string) ([]imagev1.ImageStream, error)

GetImageStreams returns the Image Stream objects in the given namespace

func (*Client) GetImageStreamsNames added in v0.0.3

func (c *Client) GetImageStreamsNames(namespace string) ([]string, error)

GetImageStreamsNames returns the names of the image streams in a given namespace

func (*Client) GetLabelValues added in v0.0.3

func (c *Client) GetLabelValues(label string, selector string) ([]string, error)

GetLabelValues get label values of given label from objects in project that are matching selector returns slice of unique label values

func (*Client) GetLatestBuildName added in v0.0.4

func (c *Client) GetLatestBuildName(buildConfigName string) (string, error)

GetLatestBuildName gets the name of the latest build buildConfigName is the name of the buildConfig for which we are fetching the build name returns the name of the latest build or the error

func (*Client) GetOneDeploymentConfigFromSelector added in v0.0.4

func (c *Client) GetOneDeploymentConfigFromSelector(selector string) (*appsv1.DeploymentConfig, error)

GetOneDeploymentConfigFromSelector returns the Deployment Config object associated with the given selector. An error is thrown when exactly one Deployment Config is not found for the selector.

func (*Client) GetOnePodFromSelector added in v0.0.4

func (c *Client) GetOnePodFromSelector(selector string) (*corev1.Pod, error)

GetOnePodFromSelector returns the Pod object associated with the given selector. An error is thrown when exactly one Pod is not found.

func (*Client) GetOneServiceFromSelector added in v0.0.4

func (c *Client) GetOneServiceFromSelector(selector string) (*corev1.Service, error)

GetOneServiceFromSelector returns the Service object associated with the given selector. An error is thrown when exactly one Service is not found for the selector

func (*Client) GetPVCFromName added in v0.0.6

func (c *Client) GetPVCFromName(pvcName string) (*corev1.PersistentVolumeClaim, error)

GetPVCFromName returns the PVC of the given name

func (*Client) GetPVCNameFromVolumeMountName added in v0.0.6

func (c *Client) GetPVCNameFromVolumeMountName(volumeMountName string, dc *appsv1.DeploymentConfig) string

GetPVCNameFromVolumeMountName returns the PVC associated with the given volume An empty string is returned if the volume is not found

func (*Client) GetPVCNamesFromSelector added in v0.0.4

func (c *Client) GetPVCNamesFromSelector(selector string) ([]string, error)

GetPVCNamesFromSelector returns the PVC names for the given selector

func (*Client) GetPVCsFromSelector added in v0.0.4

func (c *Client) GetPVCsFromSelector(selector string) ([]corev1.PersistentVolumeClaim, error)

GetPVCsFromSelector returns the PVCs based on the given selector

func (*Client) GetProjectNames added in v0.0.4

func (c *Client) GetProjectNames() ([]string, error)

GetProjectNames return list of existing projects that user has access to.

func (*Client) GetSecret added in v0.0.14

func (c *Client) GetSecret(name, namespace string) (*corev1.Secret, error)

GetSecret returns the Secret object in the given namespace

func (*Client) GetServerVersion added in v0.0.5

func (c *Client) GetServerVersion() (*serverInfo, error)

GetServerVersion will fetch the Server Host, OpenShift and Kubernetes Version It will be shown on the execution of odo version command

func (*Client) GetServiceBinding added in v0.0.15

func (c *Client) GetServiceBinding(serviceName string, namespace string) (*scv1beta1.ServiceBinding, error)

GetServiceBinding returns the ServiceBinding named serviceName in the namespace namespace

func (*Client) GetServiceInstanceList added in v0.0.11

func (c *Client) GetServiceInstanceList(selector string) ([]scv1beta1.ServiceInstance, error)

GetServiceInstanceList returns list service instances

func (*Client) GetServicesFromSelector added in v0.0.4

func (c *Client) GetServicesFromSelector(selector string) ([]corev1.Service, error)

GetServicesFromSelector returns an array of Service resources which match the given selector

func (*Client) GetVolumeMountsFromDC added in v0.0.6

func (c *Client) GetVolumeMountsFromDC(dc *appsv1.DeploymentConfig) []corev1.VolumeMount

GetVolumeMountsFromDC returns a list of all volume mounts in the given DC

func (*Client) IsVolumeAnEmptyDir added in v0.0.14

func (c *Client) IsVolumeAnEmptyDir(volumeMountName string, dc *appsv1.DeploymentConfig) bool

IsVolumeAnEmptyDir returns true if the volume is an EmptyDir, false if not

func (*Client) LinkSecret added in v0.0.14

func (c *Client) LinkSecret(secretName, componentName, applicationName, namespace string) error

LinkSecret links a secret to the DeploymentConfig of a component

func (*Client) ListRouteNames added in v0.0.3

func (c *Client) ListRouteNames(labelSelector string) ([]string, error)

ListRouteNames lists all the names of the routes based on the given label selector

func (*Client) ListRoutes added in v0.0.3

func (c *Client) ListRoutes(labelSelector string) ([]routev1.Route, error)

ListRoutes lists all the routes based on the given label selector

func (*Client) ListSecrets added in v0.0.15

func (c *Client) ListSecrets(labelSelector string) ([]corev1.Secret, error)

ListSecrets lists all the secrets based on the given label selector

func (*Client) NewAppS2I added in v0.0.3

func (c *Client) NewAppS2I(componentName string, commonObjectMeta metav1.ObjectMeta, builderImage string, gitURL string, inputPorts []string, envVars []string) error

NewAppS2I is only used with "Git" as we need Build gitURL is the url of the git repo inputPorts is the array containing the string port values envVars is the array containing the string env var values

func (*Client) PatchCurrentDC added in v0.0.14

func (c *Client) PatchCurrentDC(name string, dc appsv1.DeploymentConfig) error

PatchCurrentDC "patches" the current DeploymentConfig with a new one however... we make sure that configurations such as: - volumes - environment variables are correctly copied over / consistent without an issue.

func (*Client) RemoveVolumeFromDeploymentConfig added in v0.0.4

func (c *Client) RemoveVolumeFromDeploymentConfig(pvc string, dcName string) error

RemoveVolumeFromDeploymentConfig removes the volume associated with the given PVC from the Deployment Config. Both, the volume entry and the volume mount entry in the containers, are deleted.

func (*Client) RunLogout added in v0.0.15

func (c *Client) RunLogout(stdout io.Writer) error

RunLogout logs out the current user from cluster

func (*Client) SetCurrentProject added in v0.0.3

func (c *Client) SetCurrentProject(projectName string) error

SetCurrentProject sets the given projectName to current project

func (*Client) SetupForSupervisor added in v0.0.9

func (c *Client) SetupForSupervisor(dcName string, annotations map[string]string, labels map[string]string) error

SetupForSupervisor adds the supervisor to the deployment config dcName is the name of the deployment config to be updated projectName is the name of the project annotations are the updated annotations for the new deployment config labels are the labels of the PVC created while setting up the supervisor

func (*Client) StartBuild added in v0.0.3

func (c *Client) StartBuild(name string) (string, error)

StartBuild starts new build as it is, returns name of the build stat was started

func (*Client) UpdateBuildConfig added in v0.0.4

func (c *Client) UpdateBuildConfig(buildConfigName string, gitURL string, annotations map[string]string) error

UpdateBuildConfig updates the BuildConfig file buildConfigName is the name of the BuildConfig file to be updated projectName is the name of the project gitURL equals to the git URL of the source and is equals to "" if the source is of type dir or binary annotations contains the annotations for the BuildConfig file

func (*Client) UpdateDCAnnotations added in v0.0.9

func (c *Client) UpdateDCAnnotations(dcName string, annotations map[string]string) error

UpdateDCAnnotations updates the DeploymentConfig file dcName is the name of the DeploymentConfig file to be updated annotations contains the annotations for the DeploymentConfig file

func (*Client) UpdateDCToGit added in v0.0.14

func (c *Client) UpdateDCToGit(commonObjectMeta metav1.ObjectMeta, imageName string) error

UpdateDCToGit replaces / updates the current DeplomentConfig with the appropriate generated image from BuildConfig as well as the correct DeploymentConfig triggers for Git.

func (*Client) UpdateDCToSupervisor added in v0.0.14

func (c *Client) UpdateDCToSupervisor(commonObjectMeta metav1.ObjectMeta, componentImageType string) error

UpdateDCToSupervisor updates the current DeploymentConfig to a SupervisorD configuration.

func (*Client) UpdatePVCLabels added in v0.0.6

func (c *Client) UpdatePVCLabels(pvc *corev1.PersistentVolumeClaim, labels map[string]string) error

UpdatePVCLabels updates the given PVC with the given labels

func (*Client) WaitAndGetDC added in v0.0.15

func (c *Client) WaitAndGetDC(name string, field string, value string, timeout time.Duration) (*appsv1.DeploymentConfig, error)

WaitAndGetDC block and waits until the DeploymentConfig has updated it's annotation It will *wait* until "value" is expected within the DeploymentConfig.

func (*Client) WaitAndGetPod added in v0.0.5

func (c *Client) WaitAndGetPod(selector string) (*corev1.Pod, error)

WaitAndGetPod block and waits until pod matching selector is in in Running state

func (*Client) WaitAndGetSecret added in v0.0.15

func (c *Client) WaitAndGetSecret(name string, namespace string) (*corev1.Secret, error)

WaitAndGetSecret blocks and waits until the secret is available

func (*Client) WaitForBuildToFinish added in v0.0.5

func (c *Client) WaitForBuildToFinish(buildName string) error

WaitForBuildToFinish block and waits for build to finish. Returns error if build failed or was canceled.

type CommonImageMeta added in v0.0.14

type CommonImageMeta struct {
	Name      string
	Tag       string
	Namespace string
	Ports     []corev1.ContainerPort
}

CommonImageMeta has all the most common image data that is passed around within Odo

type FakeClientset added in v0.0.6

type FakeClientset struct {
	Kubernetes              *fakeKubeClientset.Clientset
	AppsClientset           *fakeAppsClientset.Clientset
	BuildClientset          *fakeBuildClientset.Clientset
	ImageClientset          *fakeImageClientset.Clientset
	RouteClientset          *fakeRouteClientset.Clientset
	ProjClientset           *fakeProjClientset.Clientset
	ServiceCatalogClientSet *fakeServiceCatalogClientSet.Clientset
}

FakeClientSet holds fake ClientSets this is returned by FakeNew to access methods of fake client sets

type S2IPaths added in v0.0.15

type S2IPaths struct {
	ScriptsPathProtocol string
	ScriptsPath         string
	SrcOrBinPath        string
	DeploymentDir       string
}

S2IPaths is a struct that will hold path to S2I scripts and the protocol indicating access to them, component source/binary paths, artifacts deployments directory These are passed as env vars to component pod

func GetS2IPathsFromBuilderImg added in v0.0.15

func GetS2IPathsFromBuilderImg(builderImage *imagev1.ImageStreamImage) (S2IPaths, error)

GetS2IPathsFromBuilderImg returns script path protocol, S2I scripts path, S2I source or binary expected path, S2I deployment dir and errors(if any) from the passed builder image

type Service added in v0.0.14

type Service struct {
	Name     string
	PlanList []string
}

Service struct holds the servicename and it's corresponding list of plans

Jump to

Keyboard shortcuts

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