Skip to content

Commit 14da41d

Browse files
Merge pull request #19837 from deads2k/lib-06-bump
use library-go methods for webconsole operator
2 parents 4e2e05d + 52cf1d5 commit 14da41d

File tree

66 files changed

+3753
-503
lines changed

Some content is hidden

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

66 files changed

+3753
-503
lines changed

api/protobuf-spec/github_com_openshift_api_operator_v1alpha1.proto

+28
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/protobuf-spec/github_com_openshift_api_servicecertsigner_v1alpha1.proto

+33-15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

glide.lock

+8-8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

install/openshift-web-console-operator/install.yaml

+24
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ objects:
3333
subresources:
3434
status: {}
3535

36+
- apiVersion: v1
37+
kind: ConfigMap
38+
metadata:
39+
namespace: openshift-core-operators
40+
name: openshift-web-console-operator-config
41+
data:
42+
operator-config.yaml: |
43+
apiVersion: operator.openshift.io/v1alpha1
44+
kind: GenericOperatorConfig
45+
3646
- apiVersion: apps/v1
3747
kind: Deployment
3848
metadata:
@@ -58,8 +68,22 @@ objects:
5868
imagePullPolicy: ${OPENSHIFT_PULL_POLICY}
5969
command: ["hypershift", "experimental", "openshift-webconsole-operator"]
6070
args:
71+
- "--config=/var/run/configmaps/config/operator-config.yaml"
6172
- "-v=${LOGLEVEL}"
73+
volumeMounts:
74+
- mountPath: /var/run/configmaps/config
75+
name: config
6276
nodeSelector: "${{NODE_SELECTOR}}"
77+
volumes:
78+
- name: serving-cert
79+
secret:
80+
defaultMode: 400
81+
secretName: openshift-web-console-operator-serving-cert
82+
optional: true
83+
- name: config
84+
configMap:
85+
defaultMode: 440
86+
name: openshift-web-console-operator-config
6387

6488
- apiVersion: v1
6589
kind: ServiceAccount

pkg/cmd/openshift-experimental/cmd.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func NewExperimentalCommand(out, errout io.Writer) *cobra.Command {
1919
},
2020
}
2121

22-
cmd.AddCommand(webconsole_operator.NewWebConsoleOperatorCommand(webconsole_operator.RecommendedWebConsoleOperatorName, out, errout))
22+
cmd.AddCommand(webconsole_operator.NewWebConsoleOperatorCommand(webconsole_operator.RecommendedWebConsoleOperatorName))
2323

2424
return cmd
2525
}

pkg/cmd/openshift-operators/util/resourceread/operators.go

-26
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,14 @@
11
package webconsole_operator
22

33
import (
4-
"fmt"
54
"io"
65

7-
"github.com/golang/glog"
86
"github.com/spf13/cobra"
9-
"k8s.io/kubernetes/pkg/client/leaderelectionconfig"
107

11-
"k8s.io/api/core/v1"
12-
"k8s.io/apimachinery/pkg/util/uuid"
13-
"k8s.io/client-go/kubernetes"
14-
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
15-
"k8s.io/client-go/rest"
16-
"k8s.io/client-go/tools/leaderelection"
17-
"k8s.io/client-go/tools/leaderelection/resourcelock"
18-
"k8s.io/client-go/tools/record"
19-
"k8s.io/kubernetes/pkg/api/legacyscheme"
208
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
21-
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
9+
10+
"github.com/openshift/library-go/pkg/controller/controllercmd"
11+
"github.com/openshift/origin/pkg/version"
2212
)
2313

2414
const (
@@ -32,69 +22,12 @@ type WebConsoleOperatorCommandOptions struct {
3222
var longDescription = templates.LongDesc(`
3323
Install the OpenShift webconsole`)
3424

35-
func NewWebConsoleOperatorCommand(name string, out, errout io.Writer) *cobra.Command {
36-
options := &WebConsoleOperatorCommandOptions{Output: out}
37-
38-
cmd := &cobra.Command{
39-
Use: name,
40-
Short: "Install the OpenShift webconsole",
41-
Long: longDescription,
42-
RunE: func(c *cobra.Command, args []string) error {
43-
kcmdutil.CheckErr(options.Validate())
44-
45-
return options.RunWebConsoleOperator()
46-
},
47-
}
25+
func NewWebConsoleOperatorCommand(name string) *cobra.Command {
26+
cmd := controllercmd.
27+
NewControllerCommandConfig("openshift-web-console-operator", version.Get(), RunWebConsoleOperator).
28+
NewCommand()
29+
cmd.Use = name
30+
cmd.Short = "Install and operate the OpenShift webconsole"
4831

4932
return cmd
5033
}
51-
52-
func (o *WebConsoleOperatorCommandOptions) Validate() error {
53-
return nil
54-
}
55-
56-
func (o *WebConsoleOperatorCommandOptions) RunWebConsoleOperator() error {
57-
clientConfig, err := rest.InClusterConfig()
58-
if err != nil {
59-
return err
60-
}
61-
kubeClient, err := kubernetes.NewForConfig(clientConfig)
62-
if err != nil {
63-
return err
64-
}
65-
66-
operator := &WebConsoleOperatorStarter{
67-
ClientConfig: clientConfig,
68-
}
69-
70-
eventBroadcaster := record.NewBroadcaster()
71-
eventBroadcaster.StartLogging(glog.Infof)
72-
eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")})
73-
eventRecorder := eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: "openshift-webconsole"})
74-
rl, err := resourcelock.New(
75-
resourcelock.ConfigMapsResourceLock,
76-
"openshift-core-operators",
77-
RecommendedWebConsoleOperatorName,
78-
kubeClient.CoreV1(),
79-
resourcelock.ResourceLockConfig{
80-
Identity: string(uuid.NewUUID()),
81-
EventRecorder: eventRecorder,
82-
})
83-
if err != nil {
84-
return err
85-
}
86-
leaderelection.RunOrDie(leaderelection.LeaderElectionConfig{
87-
Lock: rl,
88-
LeaseDuration: leaderelectionconfig.DefaultLeaseDuration,
89-
RenewDeadline: leaderelectionconfig.DefaultRenewDeadline,
90-
RetryPeriod: leaderelectionconfig.DefaultRetryPeriod,
91-
Callbacks: leaderelection.LeaderCallbacks{
92-
OnStartedLeading: operator.Run,
93-
OnStoppedLeading: func() {
94-
glog.Fatalf("leaderelection lost")
95-
},
96-
},
97-
})
98-
99-
return fmt.Errorf("exiting")
100-
}

pkg/cmd/openshift-operators/webconsole-operator/config_v1.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66

77
configv1 "github.com/openshift/api/config/v1"
88
webconsoleconfigv1 "github.com/openshift/api/webconsole/v1"
9+
"github.com/openshift/library-go/pkg/operator/resource/resourcemerge"
910
webconsolev1alpha1 "github.com/openshift/origin/pkg/cmd/openshift-operators/apis/webconsole/v1alpha1"
10-
"github.com/openshift/origin/pkg/cmd/openshift-operators/util/resourcemerge"
1111
"k8s.io/apimachinery/pkg/runtime"
1212
"k8s.io/apimachinery/pkg/runtime/serializer"
1313
)

0 commit comments

Comments
 (0)