Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions hack/generate-lib-resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,22 +268,15 @@ def scheme_group_versions(types):
'k8s.io/kube-aggregator/pkg/apis/apiregistration/v1': {'APIService'},
}

types['k8s.io/api/rbac/v1beta1'] = types['k8s.io/api/rbac/v1']
types['k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1'] = types['k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1']
types['k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1'] = types['k8s.io/kube-aggregator/pkg/apis/apiregistration/v1']

clients = {
'github.com/openshift/api/security/v1': {'package': 'github.com/openshift/client-go/security/clientset/versioned/typed/security/v1', 'type': 'SecurityV1Client'},
'github.com/openshift/api/config/v1': {'package': 'github.com/openshift/client-go/config/clientset/versioned/typed/config/v1', 'type': 'ConfigV1Client'},
'k8s.io/api/apps/v1': {'package': 'k8s.io/client-go/kubernetes/typed/apps/v1', 'type': 'AppsV1Client'},
'k8s.io/api/batch/v1': {'package': 'k8s.io/client-go/kubernetes/typed/batch/v1', 'type': 'BatchV1Client'},
'k8s.io/api/core/v1': {'package': 'k8s.io/client-go/kubernetes/typed/core/v1', 'type': 'CoreV1Client'},
'k8s.io/api/rbac/v1': {'package': 'k8s.io/client-go/kubernetes/typed/rbac/v1', 'type': 'RbacV1Client'},
'k8s.io/api/rbac/v1beta1': {'package': 'k8s.io/client-go/kubernetes/typed/rbac/v1beta1', 'type': 'RbacV1beta1Client'},
'k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1': {'package': 'k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1', 'type': 'ApiextensionsV1Client'},
'k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1': {'package': 'k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1', 'type': 'ApiextensionsV1beta1Client'},
'k8s.io/kube-aggregator/pkg/apis/apiregistration/v1': {'package': 'k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1', 'type': 'ApiregistrationV1Client'},
'k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1': {'package': 'k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1', 'type': 'ApiregistrationV1beta1Client'},
}

modifiers = {
Expand Down
6 changes: 3 additions & 3 deletions hack/test-prerequisites.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"time"

"github.com/ghodss/yaml"
v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
apiext "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand Down Expand Up @@ -36,12 +36,12 @@ func main() {
if err != nil {
log.Fatalf("Unable to read %s: %v", path, err)
}
var crd v1beta1.CustomResourceDefinition
var crd v1.CustomResourceDefinition
if err := yaml.Unmarshal(data, &crd); err != nil {
log.Fatalf("Unable to parse CRD %s: %v", path, err)
}
name = crd.Name
_, err = client.ApiextensionsV1beta1().CustomResourceDefinitions().Create(ctx, &crd, metav1.CreateOptions{})
_, err = client.ApiextensionsV1().CustomResourceDefinitions().Create(ctx, &crd, metav1.CreateOptions{})
if errors.IsAlreadyExists(err) {
return true, nil
}
Expand Down
28 changes: 0 additions & 28 deletions lib/resourceapply/apiext.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,41 +5,13 @@ import (

"github.com/openshift/cluster-version-operator/lib/resourcemerge"
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiextclientv1 "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1"
apiextclientv1beta1 "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/klog/v2"
"k8s.io/utils/pointer"
)

func ApplyCustomResourceDefinitionv1beta1(ctx context.Context, client apiextclientv1beta1.CustomResourceDefinitionsGetter, required *apiextv1beta1.CustomResourceDefinition) (*apiextv1beta1.CustomResourceDefinition, bool, error) {
existing, err := client.CustomResourceDefinitions().Get(ctx, required.Name, metav1.GetOptions{})
if apierrors.IsNotFound(err) {
actual, err := client.CustomResourceDefinitions().Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
return nil, false, err
}
// if we only create this resource, we have no need to continue further
if IsCreateOnly(required) {
return nil, false, nil
}

modified := pointer.BoolPtr(false)
resourcemerge.EnsureCustomResourceDefinitionV1beta1(modified, existing, *required)
if !*modified {
return existing, false, nil
}

klog.V(2).Infof("Updating CRD %s", required.Name)

actual, err := client.CustomResourceDefinitions().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}

func ApplyCustomResourceDefinitionv1(ctx context.Context, client apiextclientv1.CustomResourceDefinitionsGetter, required *apiextv1.CustomResourceDefinition) (*apiextv1.CustomResourceDefinition, bool, error) {
existing, err := client.CustomResourceDefinitions().Get(ctx, required.Name, metav1.GetOptions{})
if apierrors.IsNotFound(err) {
Expand Down
36 changes: 0 additions & 36 deletions lib/resourceapply/apiregv1beta1.go

This file was deleted.

112 changes: 0 additions & 112 deletions lib/resourceapply/rbacv1beta1.go

This file was deleted.

92 changes: 16 additions & 76 deletions lib/resourcebuilder/resourcebuilder.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,15 @@ import (
batchv1 "k8s.io/api/batch/v1"
corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
rbacv1beta1 "k8s.io/api/rbac/v1beta1"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiextensionsclientv1 "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1"
apiextensionsclientv1beta1 "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1"
appsclientv1 "k8s.io/client-go/kubernetes/typed/apps/v1"
batchclientv1 "k8s.io/client-go/kubernetes/typed/batch/v1"
coreclientv1 "k8s.io/client-go/kubernetes/typed/core/v1"
rbacclientv1 "k8s.io/client-go/kubernetes/typed/rbac/v1"
rbacclientv1beta1 "k8s.io/client-go/kubernetes/typed/rbac/v1beta1"
"k8s.io/client-go/rest"
apiregistrationv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
apiregistrationv1beta1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
apiregistrationclientv1 "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1"
apiregistrationclientv1beta1 "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1"
)

// builder manages single-manifest cluster reconciliation and monitoring.
Expand All @@ -40,34 +34,28 @@ type builder struct {
mode Mode
modifier MetaV1ObjectModifierFunc

apiextensionsClientv1 *apiextensionsclientv1.ApiextensionsV1Client
apiextensionsClientv1beta1 *apiextensionsclientv1beta1.ApiextensionsV1beta1Client
apiregistrationClientv1 *apiregistrationclientv1.ApiregistrationV1Client
apiregistrationClientv1beta1 *apiregistrationclientv1beta1.ApiregistrationV1beta1Client
appsClientv1 *appsclientv1.AppsV1Client
batchClientv1 *batchclientv1.BatchV1Client
configClientv1 *configclientv1.ConfigV1Client
coreClientv1 *coreclientv1.CoreV1Client
rbacClientv1 *rbacclientv1.RbacV1Client
rbacClientv1beta1 *rbacclientv1beta1.RbacV1beta1Client
securityClientv1 *securityclientv1.SecurityV1Client
apiextensionsClientv1 *apiextensionsclientv1.ApiextensionsV1Client
apiregistrationClientv1 *apiregistrationclientv1.ApiregistrationV1Client
appsClientv1 *appsclientv1.AppsV1Client
batchClientv1 *batchclientv1.BatchV1Client
configClientv1 *configclientv1.ConfigV1Client
coreClientv1 *coreclientv1.CoreV1Client
rbacClientv1 *rbacclientv1.RbacV1Client
securityClientv1 *securityclientv1.SecurityV1Client
}

func newBuilder(config *rest.Config, m manifest.Manifest) Interface {
return &builder{
raw: m.Raw,

apiextensionsClientv1: apiextensionsclientv1.NewForConfigOrDie(withProtobuf(config)),
apiextensionsClientv1beta1: apiextensionsclientv1beta1.NewForConfigOrDie(withProtobuf(config)),
apiregistrationClientv1: apiregistrationclientv1.NewForConfigOrDie(config),
apiregistrationClientv1beta1: apiregistrationclientv1beta1.NewForConfigOrDie(config),
appsClientv1: appsclientv1.NewForConfigOrDie(withProtobuf(config)),
batchClientv1: batchclientv1.NewForConfigOrDie(withProtobuf(config)),
configClientv1: configclientv1.NewForConfigOrDie(config),
coreClientv1: coreclientv1.NewForConfigOrDie(withProtobuf(config)),
rbacClientv1: rbacclientv1.NewForConfigOrDie(withProtobuf(config)),
rbacClientv1beta1: rbacclientv1beta1.NewForConfigOrDie(withProtobuf(config)),
securityClientv1: securityclientv1.NewForConfigOrDie(config),
apiextensionsClientv1: apiextensionsclientv1.NewForConfigOrDie(withProtobuf(config)),
apiregistrationClientv1: apiregistrationclientv1.NewForConfigOrDie(config),
appsClientv1: appsclientv1.NewForConfigOrDie(withProtobuf(config)),
batchClientv1: batchclientv1.NewForConfigOrDie(withProtobuf(config)),
configClientv1: configclientv1.NewForConfigOrDie(config),
coreClientv1: coreclientv1.NewForConfigOrDie(withProtobuf(config)),
rbacClientv1: rbacclientv1.NewForConfigOrDie(withProtobuf(config)),
securityClientv1: securityclientv1.NewForConfigOrDie(config),
}
}

Expand Down Expand Up @@ -178,62 +166,20 @@ func (b *builder) Do(ctx context.Context) error {
if _, _, err := resourceapply.ApplyRoleBindingv1(ctx, b.rbacClientv1, typedObject); err != nil {
return err
}
case *rbacv1beta1.ClusterRole:
if b.modifier != nil {
b.modifier(typedObject)
}
if _, _, err := resourceapply.ApplyClusterRolev1beta1(ctx, b.rbacClientv1beta1, typedObject); err != nil {
return err
}
case *rbacv1beta1.ClusterRoleBinding:
if b.modifier != nil {
b.modifier(typedObject)
}
if _, _, err := resourceapply.ApplyClusterRoleBindingv1beta1(ctx, b.rbacClientv1beta1, typedObject); err != nil {
return err
}
case *rbacv1beta1.Role:
if b.modifier != nil {
b.modifier(typedObject)
}
if _, _, err := resourceapply.ApplyRolev1beta1(ctx, b.rbacClientv1beta1, typedObject); err != nil {
return err
}
case *rbacv1beta1.RoleBinding:
if b.modifier != nil {
b.modifier(typedObject)
}
if _, _, err := resourceapply.ApplyRoleBindingv1beta1(ctx, b.rbacClientv1beta1, typedObject); err != nil {
return err
}
case *apiextensionsv1.CustomResourceDefinition:
if b.modifier != nil {
b.modifier(typedObject)
}
if _, _, err := resourceapply.ApplyCustomResourceDefinitionv1(ctx, b.apiextensionsClientv1, typedObject); err != nil {
return err
}
case *apiextensionsv1beta1.CustomResourceDefinition:
if b.modifier != nil {
b.modifier(typedObject)
}
if _, _, err := resourceapply.ApplyCustomResourceDefinitionv1beta1(ctx, b.apiextensionsClientv1beta1, typedObject); err != nil {
return err
}
case *apiregistrationv1.APIService:
if b.modifier != nil {
b.modifier(typedObject)
}
if _, _, err := resourceapply.ApplyAPIServicev1(ctx, b.apiregistrationClientv1, typedObject); err != nil {
return err
}
case *apiregistrationv1beta1.APIService:
if b.modifier != nil {
b.modifier(typedObject)
}
if _, _, err := resourceapply.ApplyAPIServicev1beta1(ctx, b.apiregistrationClientv1beta1, typedObject); err != nil {
return err
}
default:
return fmt.Errorf("unrecognized manifest type: %T", obj)
}
Expand All @@ -244,9 +190,7 @@ func (b *builder) Do(ctx context.Context) error {
func init() {
rm := NewResourceMapper()
rm.RegisterGVK(apiextensionsv1.SchemeGroupVersion.WithKind("CustomResourceDefinition"), newBuilder)
rm.RegisterGVK(apiextensionsv1beta1.SchemeGroupVersion.WithKind("CustomResourceDefinition"), newBuilder)
rm.RegisterGVK(apiregistrationv1.SchemeGroupVersion.WithKind("APIService"), newBuilder)
rm.RegisterGVK(apiregistrationv1beta1.SchemeGroupVersion.WithKind("APIService"), newBuilder)
rm.RegisterGVK(appsv1.SchemeGroupVersion.WithKind("DaemonSet"), newBuilder)
rm.RegisterGVK(appsv1.SchemeGroupVersion.WithKind("Deployment"), newBuilder)
rm.RegisterGVK(batchv1.SchemeGroupVersion.WithKind("Job"), newBuilder)
Expand All @@ -258,10 +202,6 @@ func init() {
rm.RegisterGVK(rbacv1.SchemeGroupVersion.WithKind("ClusterRoleBinding"), newBuilder)
rm.RegisterGVK(rbacv1.SchemeGroupVersion.WithKind("Role"), newBuilder)
rm.RegisterGVK(rbacv1.SchemeGroupVersion.WithKind("RoleBinding"), newBuilder)
rm.RegisterGVK(rbacv1beta1.SchemeGroupVersion.WithKind("ClusterRole"), newBuilder)
rm.RegisterGVK(rbacv1beta1.SchemeGroupVersion.WithKind("ClusterRoleBinding"), newBuilder)
rm.RegisterGVK(rbacv1beta1.SchemeGroupVersion.WithKind("Role"), newBuilder)
rm.RegisterGVK(rbacv1beta1.SchemeGroupVersion.WithKind("RoleBinding"), newBuilder)
rm.RegisterGVK(securityv1.SchemeGroupVersion.WithKind("SecurityContextConstraints"), newBuilder)
rm.AddToMap(Mapper)
}
Loading