allow API groups to be installed and registered in multiple schemes

This commit is contained in:
deads2k
2017-01-19 09:22:09 -05:00
parent 093ceb9528
commit dfd8db8ae9
38 changed files with 185 additions and 40 deletions

View File

@@ -19,7 +19,10 @@ limitations under the License.
package install
import (
"k8s.io/apimachinery/pkg/apimachinery/registered"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apimachinery/announced"
"k8s.io/kubernetes/pkg/apis/rbac"
"k8s.io/kubernetes/pkg/apis/rbac/v1alpha1"
@@ -27,6 +30,11 @@ import (
)
func init() {
Install(api.Registry, api.Scheme)
}
// Install registers the API group and adds types to a scheme
func Install(registry *registered.APIRegistrationManager, scheme *runtime.Scheme) {
if err := announced.NewGroupMetaFactory(
&announced.GroupMetaFactoryArgs{
GroupName: rbac.GroupName,
@@ -39,7 +47,7 @@ func init() {
v1beta1.SchemeGroupVersion.Version: v1beta1.AddToScheme,
v1alpha1.SchemeGroupVersion.Version: v1alpha1.AddToScheme,
},
).Announce().RegisterAndEnable(); err != nil {
).Announce().RegisterAndEnable(registry, scheme); err != nil {
panic(err)
}
}