This repository has been archived by the owner on Mar 16, 2024. It is now read-only.
/
scheme.go
110 lines (99 loc) · 2.64 KB
/
scheme.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package v1
import (
"fmt"
"net/url"
api_acorn_io "github.com/acorn-io/runtime/pkg/apis/api.acorn.io"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
)
const Version = "v1"
var SchemeGroupVersion = schema.GroupVersion{
Group: api_acorn_io.Group,
Version: Version,
}
func AddToScheme(scheme *runtime.Scheme) error {
return AddToSchemeWithGV(scheme, SchemeGroupVersion)
}
func AddToSchemeWithGV(scheme *runtime.Scheme, schemeGroupVersion schema.GroupVersion) error {
scheme.AddKnownTypes(schemeGroupVersion,
&App{},
&AppList{},
&AppInfo{},
&Builder{},
&BuilderPortOptions{},
&BuilderList{},
&ConfirmUpgrade{},
&AppPullImage{},
&IconOptions{},
&Image{},
&ImageList{},
&ImageDetails{},
&ImageTag{},
&ImagePush{},
&ImagePull{},
&ImageSignature{},
&Info{},
&InfoList{},
&LogOptions{},
&Volume{},
&VolumeList{},
&VolumeClass{},
&VolumeClassList{},
&Credential{},
&CredentialList{},
&ContainerReplica{},
&ContainerReplicaList{},
&ContainerReplicaExecOptions{},
&ContainerReplicaPortForwardOptions{},
&Job{},
&JobRestart{},
&JobList{},
&Secret{},
&SecretList{},
&Service{},
&ServiceList{},
&Project{},
&ProjectList{},
&AcornImageBuild{},
&AcornImageBuildList{},
&ComputeClass{},
&ComputeClassList{},
&Region{},
&RegionList{},
&ImageAllowRule{},
&ImageAllowRuleList{},
&Event{},
&EventList{},
&DevSession{},
&DevSessionList{},
&IgnoreCleanup{},
)
// Add common types
scheme.AddKnownTypes(schemeGroupVersion, &metav1.Status{})
if schemeGroupVersion == SchemeGroupVersion {
// Add the watch version that applies
metav1.AddToGroupVersion(scheme, schemeGroupVersion)
if err := scheme.AddConversionFunc((*url.Values)(nil), (*ContainerReplicaPortForwardOptions)(nil), Convert_url_Values_To__ContainerReplicaPortForwardOptions); err != nil {
return err
}
if err := scheme.AddConversionFunc((*url.Values)(nil), (*ContainerReplicaExecOptions)(nil), Convert_url_Values_To__ContainerReplicaExecOptions); err != nil {
return err
}
if err := scheme.AddConversionFunc((*url.Values)(nil), (*LogOptions)(nil), Convert_url_Values_To__LogOptions); err != nil {
return err
}
gvk := schemeGroupVersion.WithKind("Event")
flcf := func(label, value string) (string, string, error) {
switch label {
case "prefix", "since", "until", "details", "metadata.name", "metadata.namespace":
return label, value, nil
}
return "", "", fmt.Errorf("unsupported field selection [%s]", label)
}
if err := scheme.AddFieldLabelConversionFunc(gvk, flcf); err != nil {
return err
}
}
return nil
}