Skip to content
This repository was archived by the owner on Jan 25, 2019. It is now read-only.

Commit 451a853

Browse files
committed
helm-app-operator: transitioning to use controller-runtime
1 parent f904727 commit 451a853

File tree

11 files changed

+366
-179
lines changed

11 files changed

+366
-179
lines changed

helm-app-operator/Gopkg.lock

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

helm-app-operator/cmd/helm-app-operator/main.go

Lines changed: 0 additions & 55 deletions
This file was deleted.

helm-app-operator/cmd/manager/main.go

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"runtime"
6+
"time"
7+
8+
k8sutil "github.com/operator-framework/operator-sdk/pkg/util/k8sutil"
9+
sdkVersion "github.com/operator-framework/operator-sdk/version"
10+
"github.com/sirupsen/logrus"
11+
"k8s.io/helm/pkg/storage"
12+
"k8s.io/helm/pkg/storage/driver"
13+
"sigs.k8s.io/controller-runtime/pkg/client/config"
14+
"sigs.k8s.io/controller-runtime/pkg/manager"
15+
"sigs.k8s.io/controller-runtime/pkg/runtime/signals"
16+
17+
"github.com/operator-framework/helm-app-operator-kit/helm-app-operator/pkg/helm"
18+
"github.com/operator-framework/helm-app-operator-kit/helm-app-operator/pkg/helm/controller"
19+
)
20+
21+
func printVersion() {
22+
logrus.Infof("Go Version: %s", runtime.Version())
23+
logrus.Infof("Go OS/Arch: %s/%s", runtime.GOOS, runtime.GOARCH)
24+
logrus.Infof("operator-sdk Version: %v", sdkVersion.Version)
25+
}
26+
27+
func main() {
28+
printVersion()
29+
flag.Parse()
30+
31+
namespace, err := k8sutil.GetWatchNamespace()
32+
if err != nil {
33+
logrus.Fatalf("Failed to get watch namespace: %v", err)
34+
}
35+
36+
// TODO: Expose metrics port after SDK uses controller-runtime's dynamic client
37+
// sdk.ExposeMetricsPort()
38+
39+
cfg, err := config.GetConfig()
40+
if err != nil {
41+
logrus.Fatal(err)
42+
}
43+
44+
mgr, err := manager.New(cfg, manager.Options{Namespace: namespace})
45+
if err != nil {
46+
logrus.Fatal(err)
47+
}
48+
49+
logrus.Print("Registering Components.")
50+
51+
// Create Tiller's storage backend and kubernetes client
52+
storageBackend := storage.Init(driver.NewMemory())
53+
tillerKubeClient, err := helm.NewTillerClientFromManager(mgr)
54+
if err != nil {
55+
logrus.Fatal(err)
56+
}
57+
58+
// Dynamically load the helm installer based on the environment
59+
gvk, installer, err := helm.NewInstallerFromEnv(storageBackend, tillerKubeClient)
60+
if err != nil {
61+
logrus.Fatal(err)
62+
}
63+
64+
// Register the controller with the manager.
65+
controller.Add(mgr, controller.WatchOptions{
66+
Namespace: namespace,
67+
GVK: gvk,
68+
Installer: installer,
69+
ResyncPeriod: 5 * time.Second,
70+
})
71+
72+
logrus.Print("Starting the Cmd.")
73+
74+
// Start the Cmd
75+
logrus.Fatal(mgr.Start(signals.SetupSignalHandler()))
76+
}

helm-app-operator/pkg/apis/app/v1alpha1/register.go

Lines changed: 0 additions & 36 deletions
This file was deleted.

helm-app-operator/pkg/apis/app/v1alpha1/types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func (s *HelmAppStatus) SetRelease(release *release.Release) *HelmAppStatus {
8787
// StatusFor safely returns a typed status block from a custom resource.
8888
func StatusFor(cr *unstructured.Unstructured) *HelmAppStatus {
8989
switch cr.Object["status"].(type) {
90-
case HelmAppStatus:
90+
case *HelmAppStatus:
9191
return cr.Object["status"].(*HelmAppStatus)
9292
case map[string]interface{}:
9393
var status *HelmAppStatus

0 commit comments

Comments
 (0)