Switch from ThirdPartyResources to CustomResourceDefinitions (#381)

Switch Fission's storage over to the new CustomResourceDefinitions, from the deprecated ThirdPartyResources. This allows us to be compatible with Kubernets 1.8 and onwards.

This also adds a CLI tool for dumping state from an old fission version and restoring state into new CRDs.

The storage service is unaffected by this change.
This commit is contained in:
Ta-Ching Chen
2017-11-04 14:55:16 -07:00
committed by Soam Vasani
parent 746c51901d
commit 5f14b9b0ae
76 changed files with 1223 additions and 701 deletions
+7 -7
View File
@@ -24,10 +24,10 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/fission/fission/tpr"
"github.com/fission/fission/crd"
)
func (c *Client) EnvironmentCreate(env *tpr.Environment) (*metav1.ObjectMeta, error) {
func (c *Client) EnvironmentCreate(env *crd.Environment) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(env)
if err != nil {
return nil, err
@@ -53,7 +53,7 @@ func (c *Client) EnvironmentCreate(env *tpr.Environment) (*metav1.ObjectMeta, er
return &m, nil
}
func (c *Client) EnvironmentGet(m *metav1.ObjectMeta) (*tpr.Environment, error) {
func (c *Client) EnvironmentGet(m *metav1.ObjectMeta) (*crd.Environment, error) {
relativeUrl := fmt.Sprintf("environments/%v", m.Name)
relativeUrl += fmt.Sprintf("?namespace=%v", m.Namespace)
@@ -68,7 +68,7 @@ func (c *Client) EnvironmentGet(m *metav1.ObjectMeta) (*tpr.Environment, error)
return nil, err
}
var env tpr.Environment
var env crd.Environment
err = json.Unmarshal(body, &env)
if err != nil {
return nil, err
@@ -77,7 +77,7 @@ func (c *Client) EnvironmentGet(m *metav1.ObjectMeta) (*tpr.Environment, error)
return &env, nil
}
func (c *Client) EnvironmentUpdate(env *tpr.Environment) (*metav1.ObjectMeta, error) {
func (c *Client) EnvironmentUpdate(env *crd.Environment) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(env)
if err != nil {
return nil, err
@@ -110,7 +110,7 @@ func (c *Client) EnvironmentDelete(m *metav1.ObjectMeta) error {
return c.delete(relativeUrl)
}
func (c *Client) EnvironmentList() ([]tpr.Environment, error) {
func (c *Client) EnvironmentList() ([]crd.Environment, error) {
resp, err := http.Get(c.url("environments"))
if err != nil {
return nil, err
@@ -122,7 +122,7 @@ func (c *Client) EnvironmentList() ([]tpr.Environment, error) {
return nil, err
}
envs := make([]tpr.Environment, 0)
envs := make([]crd.Environment, 0)
err = json.Unmarshal(body, &envs)
if err != nil {
return nil, err
+7 -7
View File
@@ -24,10 +24,10 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/fission/fission/tpr"
"github.com/fission/fission/crd"
)
func (c *Client) FunctionCreate(f *tpr.Function) (*metav1.ObjectMeta, error) {
func (c *Client) FunctionCreate(f *crd.Function) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(f)
if err != nil {
@@ -54,7 +54,7 @@ func (c *Client) FunctionCreate(f *tpr.Function) (*metav1.ObjectMeta, error) {
return &m, nil
}
func (c *Client) FunctionGet(m *metav1.ObjectMeta) (*tpr.Function, error) {
func (c *Client) FunctionGet(m *metav1.ObjectMeta) (*crd.Function, error) {
relativeUrl := fmt.Sprintf("functions/%v", m.Name)
relativeUrl += fmt.Sprintf("?namespace=%v", m.Namespace)
@@ -69,7 +69,7 @@ func (c *Client) FunctionGet(m *metav1.ObjectMeta) (*tpr.Function, error) {
return nil, err
}
var f tpr.Function
var f crd.Function
err = json.Unmarshal(body, &f)
if err != nil {
return nil, err
@@ -92,7 +92,7 @@ func (c *Client) FunctionGetRawDeployment(m *metav1.ObjectMeta) ([]byte, error)
return c.handleResponse(resp)
}
func (c *Client) FunctionUpdate(f *tpr.Function) (*metav1.ObjectMeta, error) {
func (c *Client) FunctionUpdate(f *crd.Function) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(f)
if err != nil {
return nil, err
@@ -124,7 +124,7 @@ func (c *Client) FunctionDelete(m *metav1.ObjectMeta) error {
return c.delete(relativeUrl)
}
func (c *Client) FunctionList() ([]tpr.Function, error) {
func (c *Client) FunctionList() ([]crd.Function, error) {
resp, err := http.Get(c.url("functions"))
if err != nil {
return nil, err
@@ -136,7 +136,7 @@ func (c *Client) FunctionList() ([]tpr.Function, error) {
return nil, err
}
funcs := make([]tpr.Function, 0)
funcs := make([]crd.Function, 0)
err = json.Unmarshal(body, &funcs)
if err != nil {
return nil, err
+7 -7
View File
@@ -24,10 +24,10 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/fission/fission/tpr"
"github.com/fission/fission/crd"
)
func (c *Client) HTTPTriggerCreate(t *tpr.Httptrigger) (*metav1.ObjectMeta, error) {
func (c *Client) HTTPTriggerCreate(t *crd.HTTPTrigger) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(t)
if err != nil {
return nil, err
@@ -53,7 +53,7 @@ func (c *Client) HTTPTriggerCreate(t *tpr.Httptrigger) (*metav1.ObjectMeta, erro
return &m, nil
}
func (c *Client) HTTPTriggerGet(m *metav1.ObjectMeta) (*tpr.Httptrigger, error) {
func (c *Client) HTTPTriggerGet(m *metav1.ObjectMeta) (*crd.HTTPTrigger, error) {
relativeUrl := fmt.Sprintf("triggers/http/%v", m.Name)
relativeUrl += fmt.Sprintf("?namespace=%v", m.Namespace)
@@ -68,7 +68,7 @@ func (c *Client) HTTPTriggerGet(m *metav1.ObjectMeta) (*tpr.Httptrigger, error)
return nil, err
}
var t tpr.Httptrigger
var t crd.HTTPTrigger
err = json.Unmarshal(body, &t)
if err != nil {
return nil, err
@@ -77,7 +77,7 @@ func (c *Client) HTTPTriggerGet(m *metav1.ObjectMeta) (*tpr.Httptrigger, error)
return &t, nil
}
func (c *Client) HTTPTriggerUpdate(t *tpr.Httptrigger) (*metav1.ObjectMeta, error) {
func (c *Client) HTTPTriggerUpdate(t *crd.HTTPTrigger) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(t)
if err != nil {
return nil, err
@@ -109,7 +109,7 @@ func (c *Client) HTTPTriggerDelete(m *metav1.ObjectMeta) error {
return c.delete(relativeUrl)
}
func (c *Client) HTTPTriggerList() ([]tpr.Httptrigger, error) {
func (c *Client) HTTPTriggerList() ([]crd.HTTPTrigger, error) {
resp, err := http.Get(c.url("triggers/http"))
if err != nil {
return nil, err
@@ -121,7 +121,7 @@ func (c *Client) HTTPTriggerList() ([]tpr.Httptrigger, error) {
return nil, err
}
triggers := make([]tpr.Httptrigger, 0)
triggers := make([]crd.HTTPTrigger, 0)
err = json.Unmarshal(body, &triggers)
if err != nil {
return nil, err
+7 -7
View File
@@ -25,10 +25,10 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/fission/fission"
"github.com/fission/fission/tpr"
"github.com/fission/fission/crd"
)
func (c *Client) WatchCreate(w *tpr.Kuberneteswatchtrigger) (*metav1.ObjectMeta, error) {
func (c *Client) WatchCreate(w *crd.KubernetesWatchTrigger) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(w)
if err != nil {
return nil, err
@@ -54,7 +54,7 @@ func (c *Client) WatchCreate(w *tpr.Kuberneteswatchtrigger) (*metav1.ObjectMeta,
return &m, nil
}
func (c *Client) WatchGet(m *metav1.ObjectMeta) (*tpr.Kuberneteswatchtrigger, error) {
func (c *Client) WatchGet(m *metav1.ObjectMeta) (*crd.KubernetesWatchTrigger, error) {
relativeUrl := fmt.Sprintf("watches/%v", m.Name)
relativeUrl += fmt.Sprintf("?namespace=%v", m.Namespace)
@@ -69,7 +69,7 @@ func (c *Client) WatchGet(m *metav1.ObjectMeta) (*tpr.Kuberneteswatchtrigger, er
return nil, err
}
var w tpr.Kuberneteswatchtrigger
var w crd.KubernetesWatchTrigger
err = json.Unmarshal(body, &w)
if err != nil {
return nil, err
@@ -78,7 +78,7 @@ func (c *Client) WatchGet(m *metav1.ObjectMeta) (*tpr.Kuberneteswatchtrigger, er
return &w, nil
}
func (c *Client) WatchUpdate(w *tpr.Kuberneteswatchtrigger) (*metav1.ObjectMeta, error) {
func (c *Client) WatchUpdate(w *crd.KubernetesWatchTrigger) (*metav1.ObjectMeta, error) {
return nil, fission.MakeError(fission.ErrorNotImplmented,
"watch update not implemented")
}
@@ -89,7 +89,7 @@ func (c *Client) WatchDelete(m *metav1.ObjectMeta) error {
return c.delete(relativeUrl)
}
func (c *Client) WatchList() ([]tpr.Kuberneteswatchtrigger, error) {
func (c *Client) WatchList() ([]crd.KubernetesWatchTrigger, error) {
resp, err := http.Get(c.url("watches"))
if err != nil {
return nil, err
@@ -101,7 +101,7 @@ func (c *Client) WatchList() ([]tpr.Kuberneteswatchtrigger, error) {
return nil, err
}
watches := make([]tpr.Kuberneteswatchtrigger, 0)
watches := make([]crd.KubernetesWatchTrigger, 0)
err = json.Unmarshal(body, &watches)
if err != nil {
return nil, err
+7 -7
View File
@@ -24,10 +24,10 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/fission/fission/tpr"
"github.com/fission/fission/crd"
)
func (c *Client) MessageQueueTriggerCreate(t *tpr.Messagequeuetrigger) (*metav1.ObjectMeta, error) {
func (c *Client) MessageQueueTriggerCreate(t *crd.MessageQueueTrigger) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(t)
if err != nil {
return nil, err
@@ -53,7 +53,7 @@ func (c *Client) MessageQueueTriggerCreate(t *tpr.Messagequeuetrigger) (*metav1.
return &m, nil
}
func (c *Client) MessageQueueTriggerGet(m *metav1.ObjectMeta) (*tpr.Messagequeuetrigger, error) {
func (c *Client) MessageQueueTriggerGet(m *metav1.ObjectMeta) (*crd.MessageQueueTrigger, error) {
relativeUrl := fmt.Sprintf("triggers/messagequeue/%v", m.Name)
relativeUrl += fmt.Sprintf("?namespace=%v", m.Namespace)
@@ -68,7 +68,7 @@ func (c *Client) MessageQueueTriggerGet(m *metav1.ObjectMeta) (*tpr.Messagequeue
return nil, err
}
var t tpr.Messagequeuetrigger
var t crd.MessageQueueTrigger
err = json.Unmarshal(body, &t)
if err != nil {
return nil, err
@@ -77,7 +77,7 @@ func (c *Client) MessageQueueTriggerGet(m *metav1.ObjectMeta) (*tpr.Messagequeue
return &t, nil
}
func (c *Client) MessageQueueTriggerUpdate(mqTrigger *tpr.Messagequeuetrigger) (*metav1.ObjectMeta, error) {
func (c *Client) MessageQueueTriggerUpdate(mqTrigger *crd.MessageQueueTrigger) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(mqTrigger)
if err != nil {
return nil, err
@@ -109,7 +109,7 @@ func (c *Client) MessageQueueTriggerDelete(m *metav1.ObjectMeta) error {
return c.delete(relativeUrl)
}
func (c *Client) MessageQueueTriggerList(mqType string) ([]tpr.Messagequeuetrigger, error) {
func (c *Client) MessageQueueTriggerList(mqType string) ([]crd.MessageQueueTrigger, error) {
relativeUrl := "triggers/messagequeue"
if len(mqType) > 0 {
// TODO remove this, replace with field selector
@@ -127,7 +127,7 @@ func (c *Client) MessageQueueTriggerList(mqType string) ([]tpr.Messagequeuetrigg
return nil, err
}
triggers := make([]tpr.Messagequeuetrigger, 0)
triggers := make([]crd.MessageQueueTrigger, 0)
err = json.Unmarshal(body, &triggers)
if err != nil {
return nil, err
+7 -7
View File
@@ -24,10 +24,10 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/fission/fission/tpr"
"github.com/fission/fission/crd"
)
func (c *Client) PackageCreate(f *tpr.Package) (*metav1.ObjectMeta, error) {
func (c *Client) PackageCreate(f *crd.Package) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(f)
if err != nil {
@@ -54,7 +54,7 @@ func (c *Client) PackageCreate(f *tpr.Package) (*metav1.ObjectMeta, error) {
return &m, nil
}
func (c *Client) PackageGet(m *metav1.ObjectMeta) (*tpr.Package, error) {
func (c *Client) PackageGet(m *metav1.ObjectMeta) (*crd.Package, error) {
relativeUrl := fmt.Sprintf("packages/%v", m.Name)
relativeUrl += fmt.Sprintf("?namespace=%v", m.Namespace)
@@ -69,7 +69,7 @@ func (c *Client) PackageGet(m *metav1.ObjectMeta) (*tpr.Package, error) {
return nil, err
}
var f tpr.Package
var f crd.Package
err = json.Unmarshal(body, &f)
if err != nil {
return nil, err
@@ -78,7 +78,7 @@ func (c *Client) PackageGet(m *metav1.ObjectMeta) (*tpr.Package, error) {
return &f, nil
}
func (c *Client) PackageUpdate(f *tpr.Package) (*metav1.ObjectMeta, error) {
func (c *Client) PackageUpdate(f *crd.Package) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(f)
if err != nil {
return nil, err
@@ -110,7 +110,7 @@ func (c *Client) PackageDelete(m *metav1.ObjectMeta) error {
return c.delete(relativeUrl)
}
func (c *Client) PackageList() ([]tpr.Package, error) {
func (c *Client) PackageList() ([]crd.Package, error) {
resp, err := http.Get(c.url("packages"))
if err != nil {
return nil, err
@@ -122,7 +122,7 @@ func (c *Client) PackageList() ([]tpr.Package, error) {
return nil, err
}
funcs := make([]tpr.Package, 0)
funcs := make([]crd.Package, 0)
err = json.Unmarshal(body, &funcs)
if err != nil {
return nil, err
+7 -7
View File
@@ -24,10 +24,10 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/fission/fission/tpr"
"github.com/fission/fission/crd"
)
func (c *Client) TimeTriggerCreate(t *tpr.Timetrigger) (*metav1.ObjectMeta, error) {
func (c *Client) TimeTriggerCreate(t *crd.TimeTrigger) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(t)
if err != nil {
return nil, err
@@ -53,7 +53,7 @@ func (c *Client) TimeTriggerCreate(t *tpr.Timetrigger) (*metav1.ObjectMeta, erro
return &m, nil
}
func (c *Client) TimeTriggerGet(m *metav1.ObjectMeta) (*tpr.Timetrigger, error) {
func (c *Client) TimeTriggerGet(m *metav1.ObjectMeta) (*crd.TimeTrigger, error) {
relativeUrl := fmt.Sprintf("triggers/time/%v", m.Name)
relativeUrl += fmt.Sprintf("?namespace=%v", m.Namespace)
@@ -68,7 +68,7 @@ func (c *Client) TimeTriggerGet(m *metav1.ObjectMeta) (*tpr.Timetrigger, error)
return nil, err
}
var t tpr.Timetrigger
var t crd.TimeTrigger
err = json.Unmarshal(body, &t)
if err != nil {
return nil, err
@@ -77,7 +77,7 @@ func (c *Client) TimeTriggerGet(m *metav1.ObjectMeta) (*tpr.Timetrigger, error)
return &t, nil
}
func (c *Client) TimeTriggerUpdate(t *tpr.Timetrigger) (*metav1.ObjectMeta, error) {
func (c *Client) TimeTriggerUpdate(t *crd.TimeTrigger) (*metav1.ObjectMeta, error) {
reqbody, err := json.Marshal(t)
if err != nil {
return nil, err
@@ -109,7 +109,7 @@ func (c *Client) TimeTriggerDelete(m *metav1.ObjectMeta) error {
return c.delete(relativeUrl)
}
func (c *Client) TimeTriggerList() ([]tpr.Timetrigger, error) {
func (c *Client) TimeTriggerList() ([]crd.TimeTrigger, error) {
resp, err := http.Get(c.url("triggers/time"))
if err != nil {
return nil, err
@@ -121,7 +121,7 @@ func (c *Client) TimeTriggerList() ([]tpr.Timetrigger, error) {
return nil, err
}
triggers := make([]tpr.Timetrigger, 0)
triggers := make([]crd.TimeTrigger, 0)
err = json.Unmarshal(body, &triggers)
if err != nil {
return nil, err