Skip to content
This repository was archived by the owner on Apr 17, 2023. It is now read-only.
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
385 changes: 179 additions & 206 deletions Gopkg.lock

Large diffs are not rendered by default.

42 changes: 15 additions & 27 deletions Gopkg.toml
Original file line number Diff line number Diff line change
@@ -1,25 +1,8 @@
# Force dep to vendor the code generators, which aren't imported just used at dev time.
required = [
"k8s.io/code-generator/cmd/defaulter-gen",
"k8s.io/code-generator/cmd/deepcopy-gen",
"k8s.io/code-generator/cmd/conversion-gen",
"k8s.io/code-generator/cmd/client-gen",
"k8s.io/code-generator/cmd/lister-gen",
"k8s.io/code-generator/cmd/informer-gen",
"k8s.io/kube-openapi/cmd/openapi-gen",
"k8s.io/gengo/args",
"sigs.k8s.io/controller-tools/pkg/crd/generator",
]

[[override]]
name = "k8s.io/code-generator"
# revision for tag "kubernetes-1.13.1"
revision = "c2090bec4d9b1fb25de3812f868accc2bc9ecbae"

[[override]]
name = "k8s.io/kube-openapi"
revision = "0cf8f7e6ed1d2e3d47d02e3b6e559369af24d803"

[[override]]
name = "github.com/go-openapi/spec"
branch = "master"
Expand All @@ -30,41 +13,46 @@ required = [

[[override]]
name = "k8s.io/api"
# revision for tag "kubernetes-1.13.1"
revision = "05914d821849570fba9eacfb29466f2d8d3cd229"
# revision for tag "kubernetes-1.13.4"
revision = "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"

[[override]]
name = "k8s.io/apiextensions-apiserver"
# revision for tag "kubernetes-1.13.1"
revision = "0fe22c71c47604641d9aa352c785b7912c200562"
# revision for tag "kubernetes-1.13.4"
revision = "d002e88f6236312f0289d9d1deab106751718ff0"

[[override]]
name = "k8s.io/apimachinery"
# revision for tag "kubernetes-1.13.1"
revision = "2b1284ed4c93a43499e781493253e2ac5959c4fd"
# revision for tag "kubernetes-1.13.4"
revision = "86fb29eff6288413d76bd8506874fddd9fccdff0"

[[override]]
name = "k8s.io/client-go"
# revision for tag "kubernetes-1.13.1"
revision = "8d9ed539ba3134352c586810e749e58df4e94e4f"
revision = "b40b2a5939e43f7ffe0028ad67586b7ce50bb675"

[[override]]
name = "github.com/coreos/prometheus-operator"
version = "=v0.29.0"

[[override]]
name = "k8s.io/kube-state-metrics"
version = "v1.6.0"

[[override]]
name = "sigs.k8s.io/controller-runtime"
version = "=v0.1.10"
version = "=v0.1.12"

[[constraint]]
name = "github.com/operator-framework/operator-sdk"
# The version rule is used for a specific release and the master branch for in between releases.
branch = "master" #osdk_branch_annotation
# version = "=v0.7.0" #osdk_version_annotation
#branch = "master" #osdk_branch_annotation
version = "=v0.9.0" #osdk_version_annotation

[prune]
go-tests = true
non-go = true
unused-packages = true

[[prune.project]]
name = "k8s.io/code-generator"
Expand Down
2 changes: 1 addition & 1 deletion build/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM registry.access.redhat.com/ubi7-dev-preview/ubi-minimal:7.6
FROM registry.access.redhat.com/ubi7-dev-preview/ubi-minimal:latest

ENV OPERATOR=/usr/local/bin/unifiedpush-operator \
USER_UID=1001 \
Expand Down
56 changes: 48 additions & 8 deletions cmd/manager/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,43 @@ import (
"context"
"flag"
"fmt"
routev1 "github.com/openshift/api/route/v1"
"os"
"runtime"

// Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.)
_ "k8s.io/client-go/plugin/pkg/client/auth"
"k8s.io/client-go/rest"

"github.com/aerogear/unifiedpush-operator/pkg/apis"
"github.com/aerogear/unifiedpush-operator/pkg/controller"

openshiftappsv1 "github.com/openshift/api/apps/v1"
imagev1 "github.com/openshift/api/image/v1"
"github.com/operator-framework/operator-sdk/pkg/k8sutil"
kubemetrics "github.com/operator-framework/operator-sdk/pkg/kube-metrics"
"github.com/operator-framework/operator-sdk/pkg/leader"
"github.com/operator-framework/operator-sdk/pkg/log/zap"
"github.com/operator-framework/operator-sdk/pkg/metrics"
"github.com/operator-framework/operator-sdk/pkg/restmapper"
sdkVersion "github.com/operator-framework/operator-sdk/version"
"github.com/spf13/pflag"
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"sigs.k8s.io/controller-runtime/pkg/client/config"
"sigs.k8s.io/controller-runtime/pkg/manager"
logf "sigs.k8s.io/controller-runtime/pkg/runtime/log"
"sigs.k8s.io/controller-runtime/pkg/runtime/signals"

openshiftappsv1 "github.com/openshift/api/apps/v1"
imagev1 "github.com/openshift/api/image/v1"
routev1 "github.com/openshift/api/route/v1"
)

// Change below variables to serve metrics on different host or port.
var (
metricsHost = "0.0.0.0"
metricsPort int32 = 8383
metricsHost = "0.0.0.0"
metricsPort int32 = 8383
operatorMetricsPort int32 = 8686
)

var log = logf.Log.WithName("cmd")

func printVersion() {
Expand Down Expand Up @@ -89,6 +97,7 @@ func main() {
// Create a new Cmd to provide shared dependencies and start components
mgr, err := manager.New(cfg, manager.Options{
Namespace: namespace,
MapperProvider: restmapper.NewDynamicRESTMapper,
MetricsBindAddress: fmt.Sprintf("%s:%d", metricsHost, metricsPort),
})
if err != nil {
Expand Down Expand Up @@ -127,9 +136,16 @@ func main() {
log.Error(err, "")
os.Exit(1)
}

// Create Service object to expose the metrics port.
_, err = metrics.ExposeMetricsPort(ctx, metricsPort)
if err = serveCRMetrics(cfg); err != nil {
log.Info("Could not generate and serve custom resource metrics", "error", err.Error())
}
// Add to the below struct any other metrics ports you want to expose.
servicePorts := []v1.ServicePort{
{Port: metricsPort, Name: metrics.OperatorPortName, Protocol: v1.ProtocolTCP, TargetPort: intstr.IntOrString{Type: intstr.Int, IntVal: metricsPort}},
{Port: operatorMetricsPort, Name: metrics.CRPortName, Protocol: v1.ProtocolTCP, TargetPort: intstr.IntOrString{Type: intstr.Int, IntVal: operatorMetricsPort}},
}
// Create Service object to expose the metrics port(s).
_, err = metrics.CreateMetricsService(ctx, cfg, servicePorts)
if err != nil {
log.Info(err.Error())
}
Expand All @@ -142,3 +158,27 @@ func main() {
os.Exit(1)
}
}

// serveCRMetrics gets the Operator/CustomResource GVKs and generates metrics based on those types.
// It serves those metrics on "http://metricsHost:operatorMetricsPort".
func serveCRMetrics(cfg *rest.Config) error {
// Below function returns filtered operator/CustomResource specific GVKs.
// For more control override the below GVK list with your own custom logic.
filteredGVK, err := k8sutil.GetGVKsFromAddToScheme(apis.AddToScheme)
if err != nil {
return err
}
// Get the namespace the operator is currently deployed in.
operatorNs, err := k8sutil.GetOperatorNamespace()
if err != nil {
return err
}
// To generate metrics in other namespaces, add the values below.
ns := []string{operatorNs}
// Generate and serve custom resource specific metrics.
err = kubemetrics.GenerateAndServeCRMetrics(cfg, ns, filteredGVK, metricsHost, operatorMetricsPort)
if err != nil {
return err
}
return nil
}
3 changes: 0 additions & 3 deletions deploy/crds/push_v1alpha1_androidvariant_crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ spec:
- JSONPath: .status.variantId
name: VariantId
type: string
- JSONPath: .status.secret
name: Secret
type: string
- JSONPath: .status.ready
name: Ready
type: string
Expand Down
3 changes: 0 additions & 3 deletions deploy/crds/push_v1alpha1_iosvariant_crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ spec:
- JSONPath: .status.variantId
name: VariantId
type: string
- JSONPath: .status.secret
name: Secret
type: string
- JSONPath: .status.ready
name: Ready
type: string
Expand Down
4 changes: 1 addition & 3 deletions pkg/apis/push/v1alpha1/zz_generated.openapi.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading