@ -117,6 +117,14 @@ func (c *Client) IsReachable() error {
return nil
return nil
}
}
func ( c * Client ) CreateIfNotExists ( resources ResourceList ) ( * Result , error ) {
c . Log ( "creating %d resource(s)" , len ( resources ) )
if err := perform ( resources , createResourceIfNotExists ) ; err != nil {
return nil , err
}
return & Result { Created : resources } , nil
}
// Create creates Kubernetes resources specified in the resource list.
// Create creates Kubernetes resources specified in the resource list.
func ( c * Client ) Create ( resources ResourceList ) ( * Result , error ) {
func ( c * Client ) Create ( resources ResourceList ) ( * Result , error ) {
c . Log ( "creating %d resource(s)" , len ( resources ) )
c . Log ( "creating %d resource(s)" , len ( resources ) )
@ -384,6 +392,17 @@ func createResource(info *resource.Info) error {
return info . Refresh ( obj , true )
return info . Refresh ( obj , true )
}
}
func createResourceIfNotExists ( info * resource . Info ) error {
_ , err := resource . NewHelper ( info . Client , info . Mapping ) . Get ( info . Namespace , info . Name )
if apierrors . IsNotFound ( err ) {
return createResource ( info )
} else if err != nil {
return err
}
return nil
}
func deleteResource ( info * resource . Info ) error {
func deleteResource ( info * resource . Info ) error {
policy := metav1 . DeletePropagationBackground
policy := metav1 . DeletePropagationBackground
opts := & metav1 . DeleteOptions { PropagationPolicy : & policy }
opts := & metav1 . DeleteOptions { PropagationPolicy : & policy }