Skip to content

Commit 48d9579

Browse files
Merge pull request #1737 from bertinatto/try-apply
API-1835: operator client update
2 parents 9fb047a + 772553c commit 48d9579

File tree

125 files changed

+7305
-3477
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+7305
-3477
lines changed

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ require (
1414
github.com/google/go-cmp v0.6.0
1515
github.com/imdario/mergo v0.3.8
1616
github.com/miekg/dns v1.1.25
17-
github.com/openshift/api v0.0.0-20240527133614-ba11c1587003
17+
github.com/openshift/api v0.0.0-20240924155631-232984653385
1818
github.com/openshift/build-machinery-go v0.0.0-20240419090851-af9c868bcf52
19-
github.com/openshift/client-go v0.0.0-20240528061634-b054aa794d87
20-
github.com/openshift/library-go v0.0.0-20240905123346-5bdbfe35a6f5
19+
github.com/openshift/client-go v0.0.0-20240918182115-6a8ead8397fd
20+
github.com/openshift/library-go v0.0.0-20240924211342-f6478ea3357f
2121
github.com/pkg/profile v1.5.0 // indirect
2222
github.com/prometheus/client_golang v1.16.0
2323
github.com/spf13/cobra v1.7.0

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -151,14 +151,14 @@ github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY
151151
github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM=
152152
github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE=
153153
github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk=
154-
github.com/openshift/api v0.0.0-20240527133614-ba11c1587003 h1:ewhIvyXCcvH6m3U02bMFtd/DfsmOSbOCuVzon+zGu7g=
155-
github.com/openshift/api v0.0.0-20240527133614-ba11c1587003/go.mod h1:OOh6Qopf21pSzqNVCB5gomomBXb8o5sGKZxG2KNpaXM=
154+
github.com/openshift/api v0.0.0-20240924155631-232984653385 h1:P6O191HwBj0ahEfea2wkvxhmW2fzXhvCh8hwHDvUozM=
155+
github.com/openshift/api v0.0.0-20240924155631-232984653385/go.mod h1:OOh6Qopf21pSzqNVCB5gomomBXb8o5sGKZxG2KNpaXM=
156156
github.com/openshift/build-machinery-go v0.0.0-20240419090851-af9c868bcf52 h1:bqBwrXG7sbJUqP1Og1bR8FvVh7qb7CrMgy9saKmOZFs=
157157
github.com/openshift/build-machinery-go v0.0.0-20240419090851-af9c868bcf52/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE=
158-
github.com/openshift/client-go v0.0.0-20240528061634-b054aa794d87 h1:JtLhaGpSEconE+1IKmIgCOof/Len5ceG6H1pk43yv5U=
159-
github.com/openshift/client-go v0.0.0-20240528061634-b054aa794d87/go.mod h1:3IPD4U0qyovZS4EFady2kqY32m8lGcbs/Wx+yprg9z8=
160-
github.com/openshift/library-go v0.0.0-20240905123346-5bdbfe35a6f5 h1:CyPTfZvr+HvwXbix9kieI55HeFn4a5DBaxJ3DNFinhg=
161-
github.com/openshift/library-go v0.0.0-20240905123346-5bdbfe35a6f5/go.mod h1:/wmao3qtqOQ484HDka9cWP7SIvOQOdzpmhyXkF2YdzE=
158+
github.com/openshift/client-go v0.0.0-20240918182115-6a8ead8397fd h1:Gd0+bYdcfGIsDOJ8BwTJJjQeXoziyIsTwqp/s38rKyM=
159+
github.com/openshift/client-go v0.0.0-20240918182115-6a8ead8397fd/go.mod h1:EB7GeA/vpf9AHklMgnnT0+uG6l/3f8cChtCFbJFrk4g=
160+
github.com/openshift/library-go v0.0.0-20240924211342-f6478ea3357f h1:BE9hhv0XriQ4XIslufYaEe9nArf+CXDgn7d/Y3ATW4o=
161+
github.com/openshift/library-go v0.0.0-20240924211342-f6478ea3357f/go.mod h1:f8QcnrooSwGa96xI4UaKbKGJZskhTCGeimXKyc4t/ZU=
162162
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
163163
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
164164
github.com/pkg/profile v1.5.0 h1:042Buzk+NhDI+DeSAA62RwJL8VAuZUMQZUjCsRz1Mug=

pkg/cmd/certregenerationcontroller/cmd.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/openshift/library-go/pkg/operator/genericoperatorclient"
1818
"github.com/openshift/library-go/pkg/operator/v1helpers"
1919

20+
"github.com/openshift/cluster-kube-apiserver-operator/pkg/operator"
2021
"github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/certrotationcontroller"
2122
"github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/operatorclient"
2223
"github.com/openshift/cluster-kube-apiserver-operator/pkg/version"
@@ -92,7 +93,13 @@ func (o *Options) Run(ctx context.Context) error {
9293
operatorclient.TargetNamespace,
9394
)
9495

95-
operatorClient, dynamicInformers, err := genericoperatorclient.NewStaticPodOperatorClient(o.controllerContext.KubeConfig, operatorv1.GroupVersion.WithResource("kubeapiservers"))
96+
operatorClient, dynamicInformers, err := genericoperatorclient.NewStaticPodOperatorClient(
97+
o.controllerContext.KubeConfig,
98+
operatorv1.GroupVersion.WithResource("kubeapiservers"),
99+
operatorv1.GroupVersion.WithKind("KubeAPIServer"),
100+
operator.ExtractStaticPodOperatorSpec,
101+
operator.ExtractStaticPodOperatorStatus,
102+
)
96103
if err != nil {
97104
return err
98105
}

pkg/operator/starter.go

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
operatorv1 "github.com/openshift/api/operator/v1"
1515
configv1client "github.com/openshift/client-go/config/clientset/versioned"
1616
configv1informers "github.com/openshift/client-go/config/informers/externalversions"
17+
applyoperatorv1 "github.com/openshift/client-go/operator/applyconfigurations/operator/v1"
1718
operatorv1client "github.com/openshift/client-go/operator/clientset/versioned"
1819
operatorv1informers "github.com/openshift/client-go/operator/informers/externalversions"
1920
operatorcontrolplaneclient "github.com/openshift/client-go/operatorcontrolplane/clientset/versioned"
@@ -68,6 +69,7 @@ import (
6869
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
6970
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
7071
"k8s.io/apimachinery/pkg/labels"
72+
"k8s.io/apimachinery/pkg/runtime"
7173
"k8s.io/apimachinery/pkg/runtime/schema"
7274
"k8s.io/client-go/dynamic"
7375
"k8s.io/client-go/dynamic/dynamicinformer"
@@ -129,7 +131,13 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
129131
"openshift-apiserver",
130132
)
131133
configInformers := configv1informers.NewSharedInformerFactory(configClient, 10*time.Minute)
132-
operatorClient, dynamicInformersForAllNamespaces, err := genericoperatorclient.NewStaticPodOperatorClient(controllerContext.KubeConfig, operatorv1.GroupVersion.WithResource("kubeapiservers"))
134+
operatorClient, dynamicInformersForAllNamespaces, err := genericoperatorclient.NewStaticPodOperatorClient(
135+
controllerContext.KubeConfig,
136+
operatorv1.GroupVersion.WithResource("kubeapiservers"),
137+
operatorv1.GroupVersion.WithKind("KubeAPIServer"),
138+
ExtractStaticPodOperatorSpec,
139+
ExtractStaticPodOperatorStatus,
140+
)
133141
if err != nil {
134142
return err
135143
}
@@ -655,3 +663,34 @@ var CertSecrets = []installer.UnrevisionedResource{
655663
{Name: "user-serving-cert-008", Optional: true},
656664
{Name: "user-serving-cert-009", Optional: true},
657665
}
666+
667+
func ExtractStaticPodOperatorSpec(obj *unstructured.Unstructured, fieldManager string) (*applyoperatorv1.StaticPodOperatorSpecApplyConfiguration, error) {
668+
castObj := &operatorv1.KubeAPIServer{}
669+
if err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, castObj); err != nil {
670+
return nil, fmt.Errorf("unable to convert to KubeControllerManager: %w", err)
671+
}
672+
ret, err := applyoperatorv1.ExtractKubeAPIServer(castObj, fieldManager)
673+
if err != nil {
674+
return nil, fmt.Errorf("unable to extract fields for %q: %w", fieldManager, err)
675+
}
676+
if ret.Spec == nil {
677+
return nil, nil
678+
}
679+
return &ret.Spec.StaticPodOperatorSpecApplyConfiguration, nil
680+
}
681+
682+
func ExtractStaticPodOperatorStatus(obj *unstructured.Unstructured, fieldManager string) (*applyoperatorv1.StaticPodOperatorStatusApplyConfiguration, error) {
683+
castObj := &operatorv1.KubeAPIServer{}
684+
if err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, castObj); err != nil {
685+
return nil, fmt.Errorf("unable to convert to KubeAPIServer: %w", err)
686+
}
687+
ret, err := applyoperatorv1.ExtractKubeAPIServerStatus(castObj, fieldManager)
688+
if err != nil {
689+
return nil, fmt.Errorf("unable to extract fields for %q: %w", fieldManager, err)
690+
}
691+
692+
if ret.Status == nil {
693+
return nil, nil
694+
}
695+
return &ret.Status.StaticPodOperatorStatusApplyConfiguration, nil
696+
}

test/e2e/certrotation_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
configv1 "github.com/openshift/api/config/v1"
1919
operatorv1 "github.com/openshift/api/operator/v1"
2020
configclient "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
21+
"github.com/openshift/cluster-kube-apiserver-operator/pkg/operator"
2122
"github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/operatorclient"
2223
test "github.com/openshift/cluster-kube-apiserver-operator/test/library"
2324
configv1helpers "github.com/openshift/library-go/pkg/config/clusteroperator/v1helpers"
@@ -28,7 +29,12 @@ import (
2829
func TestCertRotationTimeUpgradeable(t *testing.T) {
2930
kubeConfig, err := test.NewClientConfigForTest()
3031
require.NoError(t, err)
31-
operatorClient, _, err := genericoperatorclient.NewStaticPodOperatorClient(kubeConfig, operatorv1.GroupVersion.WithResource("kubeapiservers"))
32+
operatorClient, _, err := genericoperatorclient.NewStaticPodOperatorClient(
33+
kubeConfig,
34+
operatorv1.GroupVersion.WithResource("kubeapiservers"),
35+
operatorv1.GroupVersion.WithKind("KubeAPIServer"),
36+
operator.ExtractStaticPodOperatorSpec,
37+
operator.ExtractStaticPodOperatorStatus)
3238
require.NoError(t, err)
3339
configClient, err := configclient.NewForConfig(kubeConfig)
3440
require.NoError(t, err)

test/e2e/operator_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99

1010
operatorv1 "github.com/openshift/api/operator/v1"
1111
configclient "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
12+
"github.com/openshift/cluster-kube-apiserver-operator/pkg/operator"
1213
"github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/operatorclient"
1314
test "github.com/openshift/cluster-kube-apiserver-operator/test/library"
1415
"github.com/openshift/library-go/pkg/operator/genericoperatorclient"
@@ -48,7 +49,12 @@ func TestRevisionLimits(t *testing.T) {
4849
require.NoError(t, err)
4950
kubeClient, err := kubernetes.NewForConfig(kubeConfig)
5051
require.NoError(t, err)
51-
operatorClient, _, err := genericoperatorclient.NewStaticPodOperatorClient(kubeConfig, operatorv1.GroupVersion.WithResource("kubeapiservers"))
52+
operatorClient, _, err := genericoperatorclient.NewStaticPodOperatorClient(
53+
kubeConfig,
54+
operatorv1.GroupVersion.WithResource("kubeapiservers"),
55+
operatorv1.GroupVersion.WithKind("KubeAPIServer"),
56+
operator.ExtractStaticPodOperatorSpec,
57+
operator.ExtractStaticPodOperatorStatus)
5258
require.NoError(t, err)
5359

5460
// Get current revision limits

vendor/github.com/openshift/api/.ci-operator.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/openshift/api/Dockerfile.rhel8 renamed to vendor/github.com/openshift/api/Dockerfile.ocp

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/openshift/api/Makefile

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/openshift/api/README.md

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)