Ansible operator does not detect unauthorized changes to resources that are managed by the operator on multi namespace mode

Bug Report

What did you do?
I am upgrading an ansible operator from old v0.18.1 to latest v1.4.2 (adding also multi namespace support at the CSV).
I deploy the ansible operator with OLM with MultiNamespace support (setting 2 namespaces on targetNamespaces field at OperatorGroup resource), I create a CR on 2 diferent namespaces, and operator reconciles them by creating all needed dependant objects on every namespace
However, if I delete manually any object belonging to that created CRs on any on the namespaces, ansible operator doesn't detect they are missing, and never run a reconcile to recreate them.
If I run the operator locally watching both namespaces (make run WATCH_NAMESPACE=ns1,ns2 target), that way the ansible operator works fine, so any manual object deletion triggers immediately a reconcile loop that recreates the missing objects.
What did you expect to see?
After a manual deletion of a dependant object from a CR, I expect the operator to recreate it immediately.
What did you see instead? Under which circumstances?
Nothing, deleted objects that belongs to a CR are never recreated, unless I update the CRs, so that way ansible runs the reconcile.
Environment
Operator type:

/language ansible

Kubernetes cluster type: Openshift v4.7.0
$ operator-sdk version
operator-sdk version: "v1.4.2", commit: "4b083393be65589358b3e0416573df04f4ae8d9b", kubernetes version: "1.19.4", go version: "go1.15.5", GOOS: "linux", GOARCH: "amd64"

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.13-dispatcher", GitCommit:"fd22db44e150011eccc8729db223945384460143", GitTreeState:"clean", BuildDate:"2020-07-24T07:27:52Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0+bd9e442", GitCommit:"bd9e4421804c212e6ac7ee074050096f08dda543", GitTreeState:"clean", BuildDate:"2021-02-11T23:05:38Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}

Possible Solution

Additional context

@slopezz would you be able to paste the CSV and operator deployment that olm creates? Looks like it's probably just not setting that environment up properly but curious to see what it's actually doing

Sure @fabianvf , it is possible that I'm doing something wrong, I am using the following that CSV https://github.com/3scale/prometheus-exporter-operator/blob/upgrade-operator-sdk-1.4/bundle/manifests/prometheus-exporter-operator.clusterserviceversion.yaml

I converted the default  ClusterRole/ClusterRoleBinding to Role/RoleBinding (don't want to force someone to use ClusterRole with access to every namespace on a cluster)
Added true to the MultiNamespace install type support
And I have installed by creating 2 namespaces:

oc create namespace test-prom
oc create namespace test-prom2

And creating the following CatalogSource, OperatorGroup and Subscription:

---
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: prometheus-exporter-operator-catalog
  namespace: openshift-marketplace
spec:
  sourceType: grpc
  image: quay.io/3scale/prometheus-exporter-operator-bundle:catalog
  displayName: Prometheus Exporter Operator
  updateStrategy:
    registryPoll:
      interval: 30m
---
apiVersion: operators.coreos.com/v1alpha2
kind: OperatorGroup
metadata:
  name: prometheus-exporter
  namespace: test-prom
spec:
  targetNamespaces:
    - test-prom
    - test-prom2
---
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: prometheus-exporter-operator
  namespace: test-prom
spec:
  channel: alpha
  installPlanApproval: Automatic
  name: prometheus-exporter-operator
  source: prometheus-exporter-operator-catalog
  sourceNamespace: openshift-marketplace
  config:
    env:
    - name: ANSIBLE_DEBUG_LOGS
      value: "true"

And finally created 2 custom resources (one on every namespace):

apiVersion: monitoring.3scale.net/v1alpha1
kind: PrometheusExporter
metadata:
  name: example-memcached
  namespace: test-prom
spec:
  type: memcached
  dbHost: your-memcached-host
  dbPort: 11211
  grafanaDashboard:
    label:
      key: monitoring-key
      value: middleware
----
apiVersion: monitoring.3scale.net/v1alpha1
kind: PrometheusExporter
metadata:
  name: example-memcached2
  namespace: test-prom2
spec:
  type: memcache
  dbHost: your-memcached
  dbPort: 11211
  grafanaDashboard:
    label:
      key: monitoring-key
      value: middleware

The result is that every CR from 2 namespace is correctly reconciled by the same operator on just one namespace, but then, if you delete any dependant object on any namespace, operator don't get noticed and never run a reconcile (reconcile only runs only if I update the CRs).

@slopezz could you also paste the actual operator Deployment (the one defined as prometheus-exporter-operator-controller-manager in the CSV), I want to see what the metadata.annotations['olm.targetNamespaces'] that is being used to set the WATCH_NAMESPACE envvar looks like. Also might be useful to see what the roles/role bindings in the target namespace look like, to see if those are being configured as expected by OLM

@fabianvf  I copy paste the whole CSV:
apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
  annotations:
    alm-examples: |-
      [
        {
          "apiVersion": "monitoring.3scale.net/v1alpha1",
          "kind": "PrometheusExporter",
          "metadata": {
            "name": "example-memcached"
          },
          "spec": {
            "dbHost": "your-memcached-host",
            "dbPort": 11211,
            "grafanaDashboard": {
              "label": {
                "key": "autodiscovery",
                "value": "enabled"
              }
            },
            "type": "memcached"
          }
        }
      ]
    capabilities: Deep Insights
    categories: Monitoring
    certified: "false"
    containerImage: quay.io/3scale/prometheus-exporter-operator
    createdAt: "2020-06-08 00:00:00"
    description: Operator to setup 3rd party prometheus exporters, with a collection of grafana dashboards
    operators.operatorframework.io/builder: operator-sdk-v1.4.2
    operators.operatorframework.io/project_layout: ansible.sdk.operatorframework.io/v1
    repository: https://github.com/3scale/prometheus-exporter-operator
    support: Red Hat, Inc.
  name: prometheus-exporter-operator.v0.3.0-alpha.2
  namespace: placeholder
spec:
  apiservicedefinitions: {}
  customresourcedefinitions:
    owned:
    - description: Configures a prometheus exporter to monitor a memcached instance
      displayName: PrometheusExporter
      kind: PrometheusExporter
      name: prometheusexporters.monitoring.3scale.net
      version: v1alpha1
  description: |
    A Kubernetes Operator based on the Operator SDK to centralize the setup of 3rd party prometheus exporters on **Kubernetes/OpenShift**, with a collection of grafana dashboards.
    You can setup different prometheus exporters to monitor the **internals from different databases**, **HTTP/TCP endpoints** (availability, latency, SSL/TLS certificate expiration...), or even any available **cloudwatch metric from any AWS Service**, by just providing a few parameters like **dbHost** or **dbPort** (operator manages the container image, port, argument, command, volumes... and also prometheus **ServiceMonitor** and **GrafanaDashboard** k8s objects).
    Current prometheus exporters types supported, managed by same prometheus-exporter-operator:
    * memcached
    * redis
    * mysql
    * postgresql
    * sphinx
    * es (elasticsearch)
    * cloudwatch
    * probe (blackbox)
    The operator manages the lifecycle of the following objects:
    * Deployment (one per CR)
    * Service (one per CR)
    * ServiceMonitor (optional, one per CR)
    * GrafanaDashboard (optional, one per Namespace)
    ### Documentation
    Documentation can be found on our [website](https://github.com/3scale/prometheus-exporter-operator#documentation).
    ### Getting help
    If you encounter any issues while using operator, you can create an issue on our [website](https://github.com/3scale/prometheus-exporter-operator) for bugs, enhancements, or other requests.
    ### Contributing
    You can contribute by:
    * Raising any issues you find using Prometheus Exporter Operator
    * Fixing issues by opening [Pull Requests](https://github.com/3scale/prometheus-exporter-operator/pulls)
    * Submitting a patch or opening a PR
    * Improving [documentation](https://github.com/3scale/prometheus-exporter-operator)
    * Talking about Prometheus Exporter Operator
    All bugs, tasks or enhancements are tracked as [GitHub issues](https://github.com/3scale/prometheus-exporter-operator/issues).
    ### License
    Prometheus Exporter Operator is licensed under the [Apache 2.0 license](https://github.com/3scale/prometheus-exporter-operator/blob/master/LICENSE)
  displayName: Prometheus Exporter Operator
  icon:
  - base64data: [encoded data, 5436 characters]
    mediatype: image/svg+xml
  install:
    spec:
      clusterPermissions:
      - rules:
        - apiGroups:
          - authentication.k8s.io
          resources:
          - tokenreviews
          verbs:
          - create
        - apiGroups:
          - authorization.k8s.io
          resources:
          - subjectaccessreviews
          verbs:
          - create
        serviceAccountName: prometheus-exporter-operator-controller-manager
      deployments:
      - name: prometheus-exporter-operator-controller-manager
        spec:
          replicas: 1
          selector:
            matchLabels:
              control-plane: controller-manager
          strategy: {}
          template:
            metadata:
              labels:
                control-plane: controller-manager
            spec:
              containers:
              - args:
                - --secure-listen-address=<IP_ADDRESS>:8443
                - --upstream=http://<IP_ADDRESS>:8080/
                - --logtostderr=true
                - --v=10
                image: gcr.io/kubebuilder/kube-rbac-proxy:v0.5.0
                name: kube-rbac-proxy
                ports:
                - containerPort: 8443
                  name: https
                resources: {}
              - args:
                - --metrics-addr=<IP_ADDRESS>:8080
                - --enable-leader-election
                - --leader-election-id=prometheus-exporter-operator
                env:
                - name: ANSIBLE_GATHERING
                  value: explicit
                - name: WATCH_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.annotations['olm.targetNamespaces']
                image: quay.io/3scale/prometheus-exporter-operator:v0.3.0-alpha.2
                livenessProbe:
                  httpGet:
                    path: /readyz
                    port: 6789
                  initialDelaySeconds: 15
                  periodSeconds: 20
                  timeoutSeconds: 5
                name: manager
                readinessProbe:
                  httpGet:
                    path: /healthz
                    port: 6789
                  initialDelaySeconds: 5
                  periodSeconds: 10
                  timeoutSeconds: 5
                resources: {}
              serviceAccountName: prometheus-exporter-operator-controller-manager
              terminationGracePeriodSeconds: 10
      permissions:
      - rules:
        - apiGroups:
          - ""
          resources:
          - configmaps
          verbs:
          - get
          - list
          - watch
          - create
          - update
          - patch
          - delete
        - apiGroups:
          - ""
          resources:
          - events
          verbs:
          - create
          - patch
        - apiGroups:
          - ""
          resources:
          - secrets
          - pods
          - pods/exec
          - pods/log
          - pods
          - services
          - services/finalizers
          - endpoints
          - persistentvolumeclaims
          - events
          - configmaps
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - apps
          resources:
          - deployments
          - daemonsets
          - replicasets
          - statefulsets
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          resources:
          - services
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          resources:
          - secrets
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          resources:
          - configmaps
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - monitoring.coreos.com
          resources:
          - servicemonitors
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - integreatly.org
          resources:
          - grafanadashboards
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - monitoring.3scale.net
          resources:
          - prometheusexporters
          - prometheusexporters/status
          - prometheusexporters/finalizers
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        serviceAccountName: prometheus-exporter-operator-controller-manager
    strategy: deployment
  installModes:
  - supported: true
    type: OwnNamespace
  - supported: true
    type: SingleNamespace
  - supported: true
    type: MultiNamespace
  - supported: false
    type: AllNamespaces
  keywords:
  - monitoring
  - metrics
  - observability
  - prometheus
  - exporter
  - grafana
  - mysql
  - postgresql
  - memcached
  - redis
  - sphinx
  - elasticsearch
  - cloudwatch
  - blackbox
  links:
  - name: GitHub
    url: https://github.com/3scale/prometheus-exporter-operator
  maintainers:
  - email<EMAIL_ADDRESS>    name: 3scale Ops
  maturity: alpha
  provider:
    name: Red Hat
    url: https://www.redhat.com
  version: 0.3.0-alpha.2

On the first test-prom NS:
$ oc get role prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df -oyaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  creationTimestamp: "2021-03-12T17:38:05Z"
  labels:
    olm.owner: prometheus-exporter-operator.v0.3.0-alpha.2
    olm.owner.kind: ClusterServiceVersion
    olm.owner.namespace: test-prom
    operators.coreos.com/prometheus-exporter-operator.test-prom: ""
  managedFields:
  - apiVersion: rbac.authorization.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          .: {}
          f:olm.owner: {}
          f:olm.owner.kind: {}
          f:olm.owner.namespace: {}
        f:ownerReferences:
          .: {}
          k:{"uid":"b64d73e4-8699-47d5-9f9e-932089100155"}:
            .: {}
            f:apiVersion: {}
            f:blockOwnerDeletion: {}
            f:controller: {}
            f:kind: {}
            f:name: {}
            f:uid: {}
      f:rules: {}
    manager: catalog
    operation: Update
    time: "2021-03-12T17:38:05Z"
  - apiVersion: rbac.authorization.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          f:operators.coreos.com/prometheus-exporter-operator.test-prom: {}
    manager: olm
    operation: Update
    time: "2021-03-12T17:38:06Z"
  name: prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df
  namespace: test-prom
  ownerReferences:
  - apiVersion: operators.coreos.com/v1alpha1
    blockOwnerDeletion: false
    controller: false
    kind: ClusterServiceVersion
    name: prometheus-exporter-operator.v0.3.0-alpha.2
    uid: b64d73e4-8699-47d5-9f9e-932089100155
  resourceVersion: "1691638"
  selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/test-prom/roles/prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df
  uid: 99f2508c-570d-4078-81bb-1085a4166d69
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
- apiGroups:
  - ""
  resources:
  - secrets
  - pods
  - pods/exec
  - pods/log
  - pods
  - services
  - services/finalizers
  - endpoints
  - persistentvolumeclaims
  - events
  - configmaps
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps
  resources:
  - deployments
  - daemonsets
  - replicasets
  - statefulsets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - monitoring.coreos.com
  resources:
  - servicemonitors
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - integreatly.org
  resources:
  - grafanadashboards
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - monitoring.3scale.net
  resources:
  - prometheusexporters
  - prometheusexporters/status
  - prometheusexporters/finalizers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch

$ oc get rolebinding prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df -oyaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  creationTimestamp: "2021-03-12T17:38:05Z"
  labels:
    olm.owner: prometheus-exporter-operator.v0.3.0-alpha.2
    olm.owner.kind: ClusterServiceVersion
    olm.owner.namespace: test-prom
    operators.coreos.com/prometheus-exporter-operator.test-prom: ""
  managedFields:
  - apiVersion: rbac.authorization.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          .: {}
          f:olm.owner: {}
          f:olm.owner.kind: {}
          f:olm.owner.namespace: {}
        f:ownerReferences:
          .: {}
          k:{"uid":"b64d73e4-8699-47d5-9f9e-932089100155"}:
            .: {}
            f:apiVersion: {}
            f:blockOwnerDeletion: {}
            f:controller: {}
            f:kind: {}
            f:name: {}
            f:uid: {}
      f:roleRef:
        f:apiGroup: {}
        f:kind: {}
        f:name: {}
      f:subjects: {}
    manager: catalog
    operation: Update
    time: "2021-03-12T17:38:05Z"
  - apiVersion: rbac.authorization.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          f:operators.coreos.com/prometheus-exporter-operator.test-prom: {}
    manager: olm
    operation: Update
    time: "2021-03-12T17:38:06Z"
  name: prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df
  namespace: test-prom
  ownerReferences:
  - apiVersion: operators.coreos.com/v1alpha1
    blockOwnerDeletion: false
    controller: false
    kind: ClusterServiceVersion
    name: prometheus-exporter-operator.v0.3.0-alpha.2
    uid: b64d73e4-8699-47d5-9f9e-932089100155
  resourceVersion: "1691637"
  selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/test-prom/rolebindings/prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df
  uid: b2aca4da-7b38-44b6-b7d1-74d8970b6bcc
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df
subjects:
- kind: ServiceAccount
  name: prometheus-exporter-operator-controller-manager
  namespace: test-prom

On the second test-prom2 NS:
$ oc get roles prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df -oyaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  creationTimestamp: "2021-03-12T17:38:06Z"
  labels:
    olm.copiedFrom: test-prom
    olm.owner: prometheus-exporter-operator.v0.3.0-alpha.2
    olm.owner.kind: ClusterServiceVersion
    olm.owner.namespace: test-prom2
  managedFields:
  - apiVersion: rbac.authorization.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:ownerReferences:
          k:{"uid":"b64d73e4-8699-47d5-9f9e-932089100155"}:
            .: {}
            f:apiVersion: {}
            f:blockOwnerDeletion: {}
            f:controller: {}
            f:kind: {}
            f:name: {}
            f:uid: {}
    manager: catalog
    operation: Update
    time: "2021-03-12T17:38:05Z"
  - apiVersion: rbac.authorization.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          .: {}
          f:olm.copiedFrom: {}
          f:olm.owner: {}
          f:olm.owner.kind: {}
          f:olm.owner.namespace: {}
        f:ownerReferences:
          .: {}
          k:{"uid":"d2980a47-3adf-40d4-a5de-431fd30b620d"}:
            .: {}
            f:apiVersion: {}
            f:blockOwnerDeletion: {}
            f:controller: {}
            f:kind: {}
            f:name: {}
            f:uid: {}
      f:rules: {}
    manager: olm
    operation: Update
    time: "2021-03-12T17:38:06Z"
  name: prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df
  namespace: test-prom2
  ownerReferences:
  - apiVersion: operators.coreos.com/v1alpha1
    blockOwnerDeletion: false
    controller: false
    kind: ClusterServiceVersion
    name: prometheus-exporter-operator.v0.3.0-alpha.2
    uid: d2980a47-3adf-40d4-a5de-431fd30b620d
  resourceVersion: "1691626"
  selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/test-prom2/roles/prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df
  uid: 7bd450e5-4c5e-497e-bf99-6e713276c31a
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
- apiGroups:
  - ""
  resources:
  - secrets
  - pods
  - pods/exec
  - pods/log
  - pods
  - services
  - services/finalizers
  - endpoints
  - persistentvolumeclaims
  - events
  - configmaps
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps
  resources:
  - deployments
  - daemonsets
  - replicasets
  - statefulsets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - monitoring.coreos.com
  resources:
  - servicemonitors
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - integreatly.org
  resources:
  - grafanadashboards
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - monitoring.3scale.net
  resources:
  - prometheusexporters
  - prometheusexporters/status
  - prometheusexporters/finalizers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch

$ oc get rolebinding prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df -oyaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  creationTimestamp: "2021-03-12T17:38:06Z"
  labels:
    olm.copiedFrom: test-prom
    olm.owner: prometheus-exporter-operator.v0.3.0-alpha.2
    olm.owner.kind: ClusterServiceVersion
    olm.owner.namespace: test-prom2
  managedFields:
  - apiVersion: rbac.authorization.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:ownerReferences:
          k:{"uid":"b64d73e4-8699-47d5-9f9e-932089100155"}:
            .: {}
            f:apiVersion: {}
            f:blockOwnerDeletion: {}
            f:controller: {}
            f:kind: {}
            f:name: {}
            f:uid: {}
    manager: catalog
    operation: Update
    time: "2021-03-12T17:38:05Z"
  - apiVersion: rbac.authorization.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          .: {}
          f:olm.copiedFrom: {}
          f:olm.owner: {}
          f:olm.owner.kind: {}
          f:olm.owner.namespace: {}
        f:ownerReferences:
          .: {}
          k:{"uid":"d2980a47-3adf-40d4-a5de-431fd30b620d"}:
            .: {}
            f:apiVersion: {}
            f:blockOwnerDeletion: {}
            f:controller: {}
            f:kind: {}
            f:name: {}
            f:uid: {}
      f:roleRef:
        f:apiGroup: {}
        f:kind: {}
        f:name: {}
      f:subjects: {}
    manager: olm
    operation: Update
    time: "2021-03-12T17:38:06Z"
  name: prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df
  namespace: test-prom2
  ownerReferences:
  - apiVersion: operators.coreos.com/v1alpha1
    blockOwnerDeletion: false
    controller: false
    kind: ClusterServiceVersion
    name: prometheus-exporter-operator.v0.3.0-alpha.2
    uid: d2980a47-3adf-40d4-a5de-431fd30b620d
  resourceVersion: "1691630"
  selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/test-prom2/rolebindings/prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df
  uid: f3d169ad-12cb-41ae-a08a-a857acef02a7
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: prometheus-exporter-operator.v0.3.0-alpha.2-promethe-6ddc9849df
subjects:
- kind: ServiceAccount
  name: prometheus-exporter-operator-controller-manager
  namespace: test-prom

But every yaml can be found at branch upgrade-operator-sdk-1.4 (I won't delete this branch until this issue gets solved):
https://github.com/3scale/prometheus-exporter-operator/tree/upgrade-operator-sdk-1.4

@slopezz yeah the CSV has most of the information except for the actual values of the annotations that OLM is setting when it creates the Deployment which I'm curious to see

Sorry @fabianvf, regarding the CSV I just copy/pate the one from the repo, let me copy/paste the one deployed on the cluster (which has same WATC_NAMESPACE value):
$ oc get csv prometheus-exporter-operator.v0.3.0-alpha.2 -oyaml
apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
  annotations:
    alm-examples: |-
      [
        {
          "apiVersion": "monitoring.3scale.net/v1alpha1",
          "kind": "PrometheusExporter",
          "metadata": {
            "name": "example-memcached"
          },
          "spec": {
            "dbHost": "your-memcached-host",
            "dbPort": 11211,
            "grafanaDashboard": {
              "label": {
                "key": "autodiscovery",
                "value": "enabled"
              }
            },
            "type": "memcached"
          }
        }
      ]
    capabilities: Deep Insights
    categories: Monitoring
    certified: "false"
    containerImage: quay.io/3scale/prometheus-exporter-operator
    createdAt: "2020-06-08 00:00:00"
    description: Operator to setup 3rd party prometheus exporters, with a collection of grafana dashboards
    olm.operatorGroup: prometheus-exporter
    olm.operatorNamespace: test-prom
    olm.targetNamespaces: test-prom,test-prom2
    operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"monitoring.3scale.net","kind":"PrometheusExporter","version":"v1alpha1"}},{"type":"olm.package","value":{"packageName":"prometheus-exporter-operator","version":"0.3.0-alpha.2"}}]}'
    operators.operatorframework.io/builder: operator-sdk-v1.4.2
    operators.operatorframework.io/project_layout: ansible.sdk.operatorframework.io/v1
    repository: https://github.com/3scale/prometheus-exporter-operator
    support: Red Hat, Inc.
  creationTimestamp: "2021-03-12T17:38:05Z"
  generation: 1
  labels:
    olm.api.9d7f34c73b85de72: provided
    operators.coreos.com/prometheus-exporter-operator.test-prom: ""
  managedFields:
  - apiVersion: operators.coreos.com/v1alpha1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:alm-examples: {}
          f:capabilities: {}
          f:categories: {}
          f:certified: {}
          f:containerImage: {}
          f:createdAt: {}
          f:description: {}
          f:operatorframework.io/properties: {}
          f:operators.operatorframework.io/builder: {}
          f:operators.operatorframework.io/project_layout: {}
          f:repository: {}
          f:support: {}
      f:spec:
        .: {}
        f:apiservicedefinitions: {}
        f:customresourcedefinitions:
          .: {}
          f:owned: {}
        f:description: {}
        f:displayName: {}
        f:icon: {}
        f:install:
          .: {}
          f:spec:
            .: {}
            f:clusterPermissions: {}
            f:permissions: {}
          f:strategy: {}
        f:installModes: {}
        f:keywords: {}
        f:links: {}
        f:maintainers: {}
        f:maturity: {}
        f:provider:
          .: {}
          f:name: {}
          f:url: {}
        f:replaces: {}
        f:version: {}
    manager: catalog
    operation: Update
    time: "2021-03-12T17:38:05Z"
  - apiVersion: operators.coreos.com/v1alpha1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          f:olm.operatorGroup: {}
          f:olm.operatorNamespace: {}
          f:olm.targetNamespaces: {}
        f:labels:
          .: {}
          f:olm.api.9d7f34c73b85de72: {}
          f:operators.coreos.com/prometheus-exporter-operator.test-prom: {}
      f:spec:
        f:install:
          f:spec:
            f:deployments: {}
      f:status:
        .: {}
        f:conditions: {}
        f:lastTransitionTime: {}
        f:lastUpdateTime: {}
        f:message: {}
        f:phase: {}
        f:reason: {}
        f:requirementStatus: {}
    manager: olm
    operation: Update
    time: "2021-03-12T17:38:06Z"
  name: prometheus-exporter-operator.v0.3.0-alpha.2
  namespace: test-prom
  resourceVersion: "1694574"
  selfLink: /apis/operators.coreos.com/v1alpha1/namespaces/test-prom/clusterserviceversions/prometheus-exporter-operator.v0.3.0-alpha.2
  uid: b64d73e4-8699-47d5-9f9e-932089100155
spec:
  apiservicedefinitions: {}
  customresourcedefinitions:
    owned:
    - description: Configures a prometheus exporter to monitor a memcached instance
      displayName: PrometheusExporter
      kind: PrometheusExporter
      name: prometheusexporters.monitoring.3scale.net
      version: v1alpha1
  description: |
    A Kubernetes Operator based on the Operator SDK to centralize the setup of 3rd party prometheus exporters on **Kubernetes/OpenShift**, with a collection of grafana dashboards.

    You can setup different prometheus exporters to monitor the **internals from different databases**, **HTTP/TCP endpoints** (availability, latency, SSL/TLS certificate expiration...), or even any available **cloudwatch metric from any AWS Service**, by just providing a few parameters like **dbHost** or **dbPort** (operator manages the container image, port, argument, command, volumes... and also prometheus **ServiceMonitor** and **GrafanaDashboard** k8s objects).

    Current prometheus exporters types supported, managed by same prometheus-exporter-operator:
    * memcached
    * redis
    * mysql
    * postgresql
    * sphinx
    * es (elasticsearch)
    * cloudwatch
    * probe (blackbox)

    The operator manages the lifecycle of the following objects:
    * Deployment (one per CR)
    * Service (one per CR)
    * ServiceMonitor (optional, one per CR)
    * GrafanaDashboard (optional, one per Namespace)

    ### Documentation
    Documentation can be found on our [website](https://github.com/3scale/prometheus-exporter-operator#documentation).

    ### Getting help
    If you encounter any issues while using operator, you can create an issue on our [website](https://github.com/3scale/prometheus-exporter-operator) for bugs, enhancements, or other requests.

    ### Contributing
    You can contribute by:
    * Raising any issues you find using Prometheus Exporter Operator
    * Fixing issues by opening [Pull Requests](https://github.com/3scale/prometheus-exporter-operator/pulls)
    * Submitting a patch or opening a PR
    * Improving [documentation](https://github.com/3scale/prometheus-exporter-operator)
    * Talking about Prometheus Exporter Operator
    All bugs, tasks or enhancements are tracked as [GitHub issues](https://github.com/3scale/prometheus-exporter-operator/issues).

    ### License
    Prometheus Exporter Operator is licensed under the [Apache 2.0 license](https://github.com/3scale/prometheus-exporter-operator/blob/master/LICENSE)
  displayName: Prometheus Exporter Operator
  icon:
  - base64data: [encoded data, 5436 characters]
    mediatype: image/svg+xml
  install:
    spec:
      clusterPermissions:
      - rules:
        - apiGroups:
          - authentication.k8s.io
          resources:
          - tokenreviews
          verbs:
          - create
        - apiGroups:
          - authorization.k8s.io
          resources:
          - subjectaccessreviews
          verbs:
          - create
        serviceAccountName: prometheus-exporter-operator-controller-manager
      deployments:
      - name: prometheus-exporter-operator-controller-manager
        spec:
          replicas: 1
          selector:
            matchLabels:
              control-plane: controller-manager
          strategy: {}
          template:
            metadata:
              creationTimestamp: null
              labels:
                control-plane: controller-manager
            spec:
              containers:
              - args:
                - --secure-listen-address=<IP_ADDRESS>:8443
                - --upstream=http://<IP_ADDRESS>:8080/
                - --logtostderr=true
                - --v=10
                image: gcr.io/kubebuilder/kube-rbac-proxy:v0.5.0
                name: kube-rbac-proxy
                ports:
                - containerPort: 8443
                  name: https
                  protocol: TCP
                resources: {}
              - args:
                - --metrics-addr=<IP_ADDRESS>:8080
                - --enable-leader-election
                - --leader-election-id=prometheus-exporter-operator
                env:
                - name: ANSIBLE_GATHERING
                  value: explicit
                - name: WATCH_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.annotations['olm.targetNamespaces']
                image: quay.io/3scale/prometheus-exporter-operator:v0.3.0-alpha.2
                livenessProbe:
                  httpGet:
                    path: /readyz
                    port: 6789
                  initialDelaySeconds: 15
                  periodSeconds: 20
                  timeoutSeconds: 5
                name: manager
                readinessProbe:
                  httpGet:
                    path: /healthz
                    port: 6789
                  initialDelaySeconds: 5
                  periodSeconds: 10
                  timeoutSeconds: 5
                resources: {}
              serviceAccountName: prometheus-exporter-operator-controller-manager
              terminationGracePeriodSeconds: 10
      permissions:
      - rules:
        - apiGroups:
          - ""
          resources:
          - configmaps
          verbs:
          - get
          - list
          - watch
          - create
          - update
          - patch
          - delete
        - apiGroups:
          - ""
          resources:
          - events
          verbs:
          - create
          - patch
        - apiGroups:
          - ""
          resources:
          - secrets
          - pods
          - pods/exec
          - pods/log
          - pods
          - services
          - services/finalizers
          - endpoints
          - persistentvolumeclaims
          - events
          - configmaps
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - apps
          resources:
          - deployments
          - daemonsets
          - replicasets
          - statefulsets
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          resources:
          - services
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          resources:
          - secrets
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          resources:
          - configmaps
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - monitoring.coreos.com
          resources:
          - servicemonitors
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - integreatly.org
          resources:
          - grafanadashboards
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - monitoring.3scale.net
          resources:
          - prometheusexporters
          - prometheusexporters/status
          - prometheusexporters/finalizers
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        serviceAccountName: prometheus-exporter-operator-controller-manager
    strategy: deployment
  installModes:
  - supported: true
    type: OwnNamespace
  - supported: true
    type: SingleNamespace
  - supported: true
    type: MultiNamespace
  - supported: false
    type: AllNamespaces
  keywords:
  - monitoring
  - metrics
  - observability
  - prometheus
  - exporter
  - grafana
  - mysql
  - postgresql
  - memcached
  - redis
  - sphinx
  - elasticsearch
  - cloudwatch
  - blackbox
  links:
  - name: GitHub
    url: https://github.com/3scale/prometheus-exporter-operator
  maintainers:
  - email<EMAIL_ADDRESS>    name: 3scale Ops
  maturity: alpha
  provider:
    name: Red Hat
    url: https://www.redhat.com
  replaces: prometheus-exporter-operator.v0.3.0-alpha.1
  version: 0.3.0-alpha.2
status:
  conditions:
  - lastTransitionTime: "2021-03-12T17:38:05Z"
    lastUpdateTime: "2021-03-12T17:38:05Z"
    message: requirements not yet checked
    phase: Pending
    reason: RequirementsUnknown
  - lastTransitionTime: "2021-03-12T17:38:05Z"
    lastUpdateTime: "2021-03-12T17:38:05Z"
    message: one or more requirements couldn't be found
    phase: Pending
    reason: RequirementsNotMet
  - lastTransitionTime: "2021-03-12T17:38:05Z"
    lastUpdateTime: "2021-03-12T17:38:05Z"
    message: all requirements found, attempting install
    phase: InstallReady
    reason: AllRequirementsMet
  - lastTransitionTime: "2021-03-12T17:38:06Z"
    lastUpdateTime: "2021-03-12T17:38:06Z"
    message: waiting for install components to report healthy
    phase: Installing
    reason: InstallSucceeded
  - lastTransitionTime: "2021-03-12T17:38:06Z"
    lastUpdateTime: "2021-03-12T17:38:06Z"
    message: |
      installing: waiting for deployment prometheus-exporter-operator-controller-manager to become ready: Waiting for deployment spec update to be observed...
    phase: Installing
    reason: InstallWaiting
  - lastTransitionTime: "2021-03-12T17:38:23Z"
    lastUpdateTime: "2021-03-12T17:38:23Z"
    message: install strategy completed with no errors
    phase: Succeeded
    reason: InstallSucceeded
  - lastTransitionTime: "2021-03-12T17:44:16Z"
    lastUpdateTime: "2021-03-12T17:44:16Z"
    message: |
      installing: waiting for deployment prometheus-exporter-operator-controller-manager to become ready: Waiting for deployment spec update to be observed...
    phase: Failed
    reason: ComponentUnhealthy
  - lastTransitionTime: "2021-03-12T17:44:16Z"
    lastUpdateTime: "2021-03-12T17:44:16Z"
    message: |
      installing: waiting for deployment prometheus-exporter-operator-controller-manager to become ready: Waiting for rollout to finish: 1 old replicas are pending termination...
    phase: Pending
    reason: NeedsReinstall
  - lastTransitionTime: "2021-03-12T17:44:16Z"
    lastUpdateTime: "2021-03-12T17:44:16Z"
    message: all requirements found, attempting install
    phase: InstallReady
    reason: AllRequirementsMet
  - lastTransitionTime: "2021-03-12T17:44:16Z"
    lastUpdateTime: "2021-03-12T17:44:16Z"
    message: waiting for install components to report healthy
    phase: Installing
    reason: InstallSucceeded
  - lastTransitionTime: "2021-03-12T17:44:16Z"
    lastUpdateTime: "2021-03-12T17:44:17Z"
    message: |
      installing: waiting for deployment prometheus-exporter-operator-controller-manager to become ready: Waiting for deployment spec update to be observed...
    phase: Installing
    reason: InstallWaiting
  - lastTransitionTime: "2021-03-12T17:44:17Z"
    lastUpdateTime: "2021-03-12T17:44:17Z"
    message: install strategy completed with no errors
    phase: Succeeded
    reason: InstallSucceeded
  - lastTransitionTime: "2021-03-12T17:46:12Z"
    lastUpdateTime: "2021-03-12T17:46:12Z"
    message: 'installing: deployment changed old hash=79bbc8454f, new hash=749b9fc645'
    phase: InstallReady
    reason: ComponentUnhealthy
  - lastTransitionTime: "2021-03-12T17:46:12Z"
    lastUpdateTime: "2021-03-12T17:46:12Z"
    message: waiting for install components to report healthy
    phase: Installing
    reason: InstallSucceeded
  - lastTransitionTime: "2021-03-12T17:46:12Z"
    lastUpdateTime: "2021-03-12T17:46:12Z"
    message: |
      installing: waiting for deployment prometheus-exporter-operator-controller-manager to become ready: Waiting for deployment spec update to be observed...
    phase: Installing
    reason: InstallWaiting
  - lastTransitionTime: "2021-03-12T17:46:26Z"
    lastUpdateTime: "2021-03-12T17:46:26Z"
    message: install strategy completed with no errors
    phase: Succeeded
    reason: InstallSucceeded
  lastTransitionTime: "2021-03-12T17:46:26Z"
  lastUpdateTime: "2021-03-12T17:46:26Z"
  message: install strategy completed with no errors
  phase: Succeeded
  reason: InstallSucceeded
  requirementStatus:
  - group: apiextensions.k8s.io
    kind: CustomResourceDefinition
    message: CRD is present and Established condition is true
    name: prometheusexporters.monitoring.3scale.net
    status: Present
    uuid: 9b0dc1b1-1253-42ef-b0f3-8603d7236772
    version: v1
  - dependents:
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: namespaced rule:{"verbs":["get","list","watch","create","update","patch","delete"],"apiGroups":[""],"resources":["configmaps"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: namespaced rule:{"verbs":["create","patch"],"apiGroups":[""],"resources":["events"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: namespaced rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["secrets","pods","pods/exec","pods/log","pods","services","services/finalizers","endpoints","persistentvolumeclaims","events","configmaps"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: namespaced rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments","daemonsets","replicasets","statefulsets"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: namespaced rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["services"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: namespaced rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["secrets"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: namespaced rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["configmaps"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: namespaced rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["monitoring.coreos.com"],"resources":["servicemonitors"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: namespaced rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["integreatly.org"],"resources":["grafanadashboards"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: namespaced rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["monitoring.3scale.net"],"resources":["prometheusexporters","prometheusexporters/status","prometheusexporters/finalizers"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["create"],"apiGroups":["authentication.k8s.io"],"resources":["tokenreviews"]}
      status: Satisfied
      version: v1
    - group: rbac.authorization.k8s.io
      kind: PolicyRule
      message: cluster rule:{"verbs":["create"],"apiGroups":["authorization.k8s.io"],"resources":["subjectaccessreviews"]}
      status: Satisfied
      version: v1
    group: ""
    kind: ServiceAccount
    message: ""
    name: prometheus-exporter-operator-controller-manager
    status: Present
    version: v1

The CSV provides the instructions to create a deployment to OLM, but there should be a deployment named prometheus-exporter-operator-controller-manager in the test-prom namespace, which is the actual deployment that is running your operator. I'm curious to see if that deployment that OLM created matches what we would expect based on the CSV + subscription

OK, here you have the deployed deployment:
$ oc get deployment prometheus-exporter-operator-controller-manager -oyaml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "5"
  creationTimestamp: "2021-03-12T17:33:20Z"
  generation: 8
  labels:
    olm.deployment-spec-hash: 749b9fc645
    olm.owner: prometheus-exporter-operator.v0.3.0-alpha.2
    olm.owner.kind: ClusterServiceVersion
    olm.owner.namespace: test-prom
    operators.coreos.com/prometheus-exporter-operator.test-prom: ""
  managedFields:
  - apiVersion: apps/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          .: {}
          f:olm.deployment-spec-hash: {}
          f:olm.owner: {}
          f:olm.owner.kind: {}
          f:olm.owner.namespace: {}
          f:operators.coreos.com/prometheus-exporter-operator.test-prom: {}
        f:ownerReferences:
          .: {}
          k:{"uid":"b64d73e4-8699-47d5-9f9e-932089100155"}:
            .: {}
            f:apiVersion: {}
            f:blockOwnerDeletion: {}
            f:controller: {}
            f:kind: {}
            f:name: {}
            f:uid: {}
      f:spec:
        f:progressDeadlineSeconds: {}
        f:replicas: {}
        f:revisionHistoryLimit: {}
        f:selector: {}
        f:strategy:
          f:rollingUpdate:
            .: {}
            f:maxSurge: {}
            f:maxUnavailable: {}
          f:type: {}
        f:template:
          f:metadata:
            f:annotations:
              .: {}
              f:alm-examples: {}
              f:capabilities: {}
              f:categories: {}
              f:certified: {}
              f:containerImage: {}
              f:createdAt: {}
              f:description: {}
              f:olm.operatorGroup: {}
              f:olm.operatorNamespace: {}
              f:olm.targetNamespaces: {}
              f:operatorframework.io/properties: {}
              f:operators.operatorframework.io/builder: {}
              f:operators.operatorframework.io/project_layout: {}
              f:repository: {}
              f:support: {}
            f:labels:
              .: {}
              f:control-plane: {}
          f:spec:
            f:containers:
              k:{"name":"kube-rbac-proxy"}:
                .: {}
                f:args: {}
                f:env:
                  .: {}
                  k:{"name":"ANSIBLE_DEBUG_LOGS"}:
                    .: {}
                    f:name: {}
                    f:value: {}
                  k:{"name":"OPERATOR_CONDITION_NAME"}:
                    .: {}
                    f:name: {}
                    f:value: {}
                f:image: {}
                f:imagePullPolicy: {}
                f:name: {}
                f:ports:
                  .: {}
                  k:{"containerPort":8443,"protocol":"TCP"}:
                    .: {}
                    f:containerPort: {}
                    f:name: {}
                    f:protocol: {}
                f:resources: {}
                f:terminationMessagePath: {}
                f:terminationMessagePolicy: {}
              k:{"name":"manager"}:
                .: {}
                f:args: {}
                f:env:
                  .: {}
                  k:{"name":"ANSIBLE_DEBUG_LOGS"}:
                    .: {}
                    f:name: {}
                    f:value: {}
                  k:{"name":"ANSIBLE_GATHERING"}:
                    .: {}
                    f:name: {}
                    f:value: {}
                  k:{"name":"OPERATOR_CONDITION_NAME"}:
                    .: {}
                    f:name: {}
                    f:value: {}
                  k:{"name":"WATCH_NAMESPACE"}:
                    .: {}
                    f:name: {}
                    f:valueFrom:
                      .: {}
                      f:fieldRef:
                        .: {}
                        f:apiVersion: {}
                        f:fieldPath: {}
                f:image: {}
                f:imagePullPolicy: {}
                f:livenessProbe:
                  .: {}
                  f:failureThreshold: {}
                  f:httpGet:
                    .: {}
                    f:path: {}
                    f:port: {}
                    f:scheme: {}
                  f:initialDelaySeconds: {}
                  f:periodSeconds: {}
                  f:successThreshold: {}
                  f:timeoutSeconds: {}
                f:name: {}
                f:readinessProbe:
                  .: {}
                  f:failureThreshold: {}
                  f:httpGet:
                    .: {}
                    f:path: {}
                    f:port: {}
                    f:scheme: {}
                  f:initialDelaySeconds: {}
                  f:periodSeconds: {}
                  f:successThreshold: {}
                  f:timeoutSeconds: {}
                f:resources: {}
                f:terminationMessagePath: {}
                f:terminationMessagePolicy: {}
            f:dnsPolicy: {}
            f:restartPolicy: {}
            f:schedulerName: {}
            f:securityContext: {}
            f:serviceAccount: {}
            f:serviceAccountName: {}
            f:terminationGracePeriodSeconds: {}
    manager: olm
    operation: Update
    time: "2021-03-12T17:46:12Z"
  - apiVersion: apps/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:deployment.kubernetes.io/revision: {}
      f:status:
        f:availableReplicas: {}
        f:conditions:
          k:{"type":"Progressing"}:
            f:lastUpdateTime: {}
            f:message: {}
            f:reason: {}
        f:observedGeneration: {}
        f:readyReplicas: {}
        f:replicas: {}
    manager: kube-controller-manager
    operation: Update
    time: "2021-03-12T17:46:26Z"
  name: prometheus-exporter-operator-controller-manager
  namespace: test-prom
  ownerReferences:
  - apiVersion: operators.coreos.com/v1alpha1
    blockOwnerDeletion: false
    controller: false
    kind: ClusterServiceVersion
    name: prometheus-exporter-operator.v0.3.0-alpha.2
    uid: b64d73e4-8699-47d5-9f9e-932089100155
  resourceVersion: "1694570"
  selfLink: /apis/apps/v1/namespaces/test-prom/deployments/prometheus-exporter-operator-controller-manager
  uid: 90e9afe7-cb13-4bfd-b551-2e8ba328541e
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 1
  selector:
    matchLabels:
      control-plane: controller-manager
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      annotations:
        alm-examples: |-
          [
            {
              "apiVersion": "monitoring.3scale.net/v1alpha1",
              "kind": "PrometheusExporter",
              "metadata": {
                "name": "example-memcached"
              },
              "spec": {
                "dbHost": "your-memcached-host",
                "dbPort": 11211,
                "grafanaDashboard": {
                  "label": {
                    "key": "autodiscovery",
                    "value": "enabled"
                  }
                },
                "type": "memcached"
              }
            }
          ]
        capabilities: Deep Insights
        categories: Monitoring
        certified: "false"
        containerImage: quay.io/3scale/prometheus-exporter-operator
        createdAt: "2020-06-08 00:00:00"
        description: Operator to setup 3rd party prometheus exporters, with a collection of grafana dashboards
        olm.operatorGroup: prometheus-exporter
        olm.operatorNamespace: test-prom
        olm.targetNamespaces: test-prom,test-prom2
        operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"monitoring.3scale.net","kind":"PrometheusExporter","version":"v1alpha1"}},{"type":"olm.package","value":{"packageName":"prometheus-exporter-operator","version":"0.3.0-alpha.2"}}]}'
        operators.operatorframework.io/builder: operator-sdk-v1.4.2
        operators.operatorframework.io/project_layout: ansible.sdk.operatorframework.io/v1
        repository: https://github.com/3scale/prometheus-exporter-operator
        support: Red Hat, Inc.
      creationTimestamp: null
      labels:
        control-plane: controller-manager
    spec:
      containers:
      - args:
        - --secure-listen-address=<IP_ADDRESS>:8443
        - --upstream=http://<IP_ADDRESS>:8080/
        - --logtostderr=true
        - --v=10
        env:
        - name: ANSIBLE_DEBUG_LOGS
          value: "true"
        - name: OPERATOR_CONDITION_NAME
          value: prometheus-exporter-operator.v0.3.0-alpha.2
        image: gcr.io/kubebuilder/kube-rbac-proxy:v0.5.0
        imagePullPolicy: IfNotPresent
        name: kube-rbac-proxy
        ports:
        - containerPort: 8443
          name: https
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      - args:
        - --metrics-addr=<IP_ADDRESS>:8080
        - --enable-leader-election
        - --leader-election-id=prometheus-exporter-operator
        env:
        - name: ANSIBLE_GATHERING
          value: explicit
        - name: WATCH_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.annotations['olm.targetNamespaces']
        - name: ANSIBLE_DEBUG_LOGS
          value: "true"
        - name: OPERATOR_CONDITION_NAME
          value: prometheus-exporter-operator.v0.3.0-alpha.2
        image: quay.io/3scale/prometheus-exporter-operator:v0.3.0-alpha.2
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /readyz
            port: 6789
            scheme: HTTP
          initialDelaySeconds: 15
          periodSeconds: 20
          successThreshold: 1
          timeoutSeconds: 5
        name: manager
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /healthz
            port: 6789
            scheme: HTTP
          initialDelaySeconds: 5
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 5
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: prometheus-exporter-operator-controller-manager
      serviceAccountName: prometheus-exporter-operator-controller-manager
      terminationGracePeriodSeconds: 10
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2021-03-12T17:33:28Z"
    lastUpdateTime: "2021-03-12T17:33:28Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2021-03-12T17:33:20Z"
    lastUpdateTime: "2021-03-12T17:46:26Z"
    message: ReplicaSet "prometheus-exporter-operator-controller-manager-7444bbfd78" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 8
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1

If I enter into the container, I can see correct value (the one from the OperatorGroup targetNamespaces):
$ kubectl exec -it prometheus-exporter-operator-controller-manager-7444bbfd78pzdlf -c manager -- /bin/bash
bash-4.4$ env | grep WATCH_NAMESPACE
WATCH_NAMESPACE=test-prom,test-prom2

Do you see anything wrong with the deployment @fabianvf ?

@slopezz Unfortunately I didn't see anything obvious (was hoping it would be as simple as a messed up annotation or something), I need to do a bit of reading into how multi-namespace RBAC is supposed to work as everything you've pasted looks like it should be working to me

Quick update: I have upgraded to operator-sdk v1.5.0 and it has same behaviour with multi namespace mode:

I create the OperatorGroup to 2 namespace, then create 2 different CRs on different namespaces, and they are reconciled and created all dependant objects
If I delete manually any dependant object on any of the CR namespaces, they are never recreated, operator doesnt notice they are missing
If I create the OperatorGroup to a sinle namespace, it works as expected and notice any missing dependant object immedtiately.

Maybe the problem is that there is no cache when using ansible on multinamespace?


Renovate macos certificate

The macos certificate of the snap-camera will due on 2024/01, does it need to be renovated? Or could we add again and the time is extended?

Pushed an update today to this repo that will no longer require the certificate or modifying the hosts file.

Many thanks for all your work. I lost snapcam as an available source when I updated Mac OS a month or two ago when I wanted to add a source to OBS. I've just performed the terminal fix and I still don't have snapcam as a source. Snapcam itself works fine but not available to use.
Many thanks Mart 16th Jan 11:20am


cant open chart editor unless i go through 7 in main menu

Describe your bug here.
https://github.com/JordanSantiagoYT/FNF-PsychEngine-NoBotplayLag/assets/133698570/cdb4c3d8-a185-4b3d-a318-bb2b52d8faf6
Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
no
If you use 1.12.0 or earlier, did you have Optimized Chart Loading turned on?
None

what's your 7 event set to? it only goes to the chart editor if you have it set to "None", null or "---"

what's your 7 event set to? it only goes to the chart editor if you have it set to "None", null or "---"

how do i do that exactly

you're supposed to set it in the chart editor, if there's no event then it sets to ---

as i sent that my js engine just crashed holup

alr ty


[ERROR] TypeError: Cannot read property '0' of undefined

Hello,
I am trying to configure wekan to connect to my LDAP server, but I am stuck on an error:
Nov 28 12:00:35 myserver.local wekan[14042]: [ERROR] TypeError: Cannot read property '0' of undefined

Did you test in newest Wekan?: Yes
Wekan version: latest (master)
Operating System: CentOS
Deployment Method: Source
Here the full output when I am trying to log in:
Nov 28 12:00:34 myserver.local wekan[14042]: [INFO] Init LDAP login "testuser"
Nov 28 12:00:34 myserver.local wekan[14042]: [WARN] Lookup for unset variable: LDAP_CA_CERT
Nov 28 12:00:34 myserver.local wekan[14042]: [WARN] Lookup for unset variable: LDAP_USER_SEARCH_FILTER
Nov 28 12:00:34 myserver.local wekan[14042]: [WARN] Lookup for unset variable: LDAP_USER_SEARCH_SCOPE
Nov 28 12:00:34 myserver.local wekan[14042]: [WARN] Lookup for unset variable: LDAP_GROUP_FILTER_OBJECTCLASS
Nov 28 12:00:34 myserver.local wekan[14042]: [WARN] Lookup for unset variable: LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE
Nov 28 12:00:34 myserver.local wekan[14042]: [WARN] Lookup for unset variable: LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE
Nov 28 12:00:34 myserver.local wekan[14042]: [WARN] Lookup for unset variable: LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT
Nov 28 12:00:34 myserver.local wekan[14042]: [WARN] Lookup for unset variable: LDAP_GROUP_FILTER_GROUP_NAME
Nov 28 12:00:34 myserver.local wekan[14042]: [INFO] Init setup
Nov 28 12:00:34 myserver.local wekan[14042]: [INFO] Connecting "ldap://192.168.X.X:389"
Nov 28 12:00:34 myserver.local wekan[14042]: [DEBUG] connectionOptions{ url: 'ldap://192.168.X.X:389',
Nov 28 12:00:34 myserver.local wekan[14042]: timeout: 15000,
Nov 28 12:00:34 myserver.local wekan[14042]: connectTimeout: 15000,
Nov 28 12:00:34 myserver.local wekan[14042]: idleTimeout: 15000,
Nov 28 12:00:34 myserver.local wekan[14042]: reconnect: true,
Nov 28 12:00:34 myserver.local wekan[14042]: log:
Nov 28 12:00:34 myserver.local wekan[14042]: Logger {
Nov 28 12:00:34 myserver.local wekan[14042]: domain: null,
Nov 28 12:00:34 myserver.local wekan[14042]: _events: {},
Nov 28 12:00:34 myserver.local wekan[14042]: _eventsCount: 0,
Nov 28 12:00:34 myserver.local wekan[14042]: _maxListeners: undefined,
Nov 28 12:00:34 myserver.local wekan[14042]: _level: 20,
Nov 28 12:00:34 myserver.local wekan[14042]: streams: [ [Object] ],
Nov 28 12:00:34 myserver.local wekan[14042]: serializers: null,
Nov 28 12:00:34 myserver.local wekan[14042]: src: false,
Nov 28 12:00:34 myserver.local wekan[14042]: fields:
Nov 28 12:00:34 myserver.local wekan[14042]: { name: 'ldapjs',
Nov 28 12:00:34 myserver.local wekan[14042]: component: 'client',
Nov 28 12:00:34 myserver.local wekan[14042]: hostname: 'myserver.local',
Nov 28 12:00:34 myserver.local wekan[14042]: pid: 14042 } } }
Nov 28 12:00:35 myserver.local wekan[14042]: [INFO] LDAP connected
Nov 28 12:00:35 myserver.local wekan[14042]: [INFO] Binding UserDN "cn=cs-wekan,ou=SERVICE-ACCOUNTS,dc=mydc,dc=local"
Nov 28 12:00:35 myserver.local wekan[14042]: {"name":"ldapjs","component":"client","hostname":"myserver.local","pid":14042,"clazz":"Client","ldap_id":"5__ldap://192.168.X.X:389","level":20,"msg":"connected after 1 attempt(s)","time":"2018-11-28T11:00:35.042Z","v":0}
Nov 28 12:00:35 myserver.local wekan[14042]: [ERROR] TypeError: Cannot read property '0' of undefined
Nov 28 12:00:36 myserver.local wekan[14042]: [INFO] Idle
Nov 28 12:00:36 myserver.local wekan[14042]: [INFO] Disconecting
Nov 28 12:00:36 myserver.local wekan[14042]: [INFO] Closed

I am using the last version (master) of:

wekan
wekan-ldap

I am using the following LDAP configuration:
LDAP_ENABLE=true
LDAP_PORT=389
LDAP_HOST=192.168.X.X
LDAP_BaseDN=ou=user,dc=mydc,dc=local
LDAP_ENCRYPTION=false
LDAP_LOGIN_FALLBACK=false
LDAP_RECONNECT=true
LDAP_TIMEOUT=15000
LDAP_IDLE_TIMEOUT=15000
LDAP_CONNECT_TIMEOUT=15000
LDAP_AUTHENTIFICATION=true
LDAP_AUTHENTIFICATION_USERDN=cn=cs-wekan,ou=SERVICE-ACCOUNTS,dc=mydc,dc=local
LDAP_AUTHENTIFICATION_PASSWORD=STRONGPASSWORD
LDAP_INTERNAL_LOG_LEVEL=debug
LDAP_LOG_ENABLED=true
LDAP_BACKGROUND_SYNC=true
LDAP_BACKGROUND_SYNC_INTERVAL=3600000
LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
LDAP_USER_SEARCH_FIELD=upn
LDAP_SEARCH_PAGE_SIZE=0
LDAP_SEARCH_SIZE_LIMIT=1000
LDAP_GROUP_FILTER_ENABLE=true
LDAP_USERNAME_FIELD=username
LDAP_MERGE_EXISTING_USERS=true
LDAP_SYNC_USER_DATA=true
LDAP_DEFAULT_DOMAIN=mydomain.tld

Did you know the cause of this error, or a workaround?
Thanks 😄

I still don't know why this error is generated, but I have changed my LDAP configuration and it is gone.
I assume that this is related to a bad configuration on the USERDN. I have removed ou=SERVICE-ACCOUNTS.
Now, I have to understand how to configure a subtree search to find my user.

Hi,
I have the same issue and can't get past it.
Wekan version: 4.17.0
Operating System: Windows 10 professional
Node version: 12.18.2
My start-wekan.bat config:
SET LDAP_ENABLE=true

SET LDAP_PORT=389

SET LDAP_HOST=MyLdapHost

SET LDAP_BASEDN=OU=xxx,DC=xxx,DC=xxx

SET LDAP_LOGIN_FALLBACK=false

SET LDAP_RECONNECT=true

SET LDAP_TIMEOUT=10000

SET LDAP_IDLE_TIMEOUT=10000

SET LDAP_CONNECT_TIMEOUT=10000

SET LDAP_AUTHENTIFICATION=true

SET LDAP_AUTHENTIFICATION_USERDN=CN=ldapUser,CN=Users,DC=xxx,DC=xxx

SET LDAP_AUTHENTIFICATION_PASSWORD=XXXXXX

SET LDAP_LOG_ENABLED=true

SET LDAP_BACKGROUND_SYNC=true

SET LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true

SET LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true

SET LDAP_ENCRYPTION=tls

SET LDAP_USER_AUTHENTICATION=false

SET LDAP_USER_AUTHENTICATION_FIELD=sAMAccountName

SET LDAP_USER_SEARCH_SCOPE=sub

SET LDAP_USER_SEARCH_FIELD=sAMAccountName

SET LDAP_SEARCH_PAGE_SIZE=0

SET LDAP_SEARCH_SIZE_LIMIT=0

SET LDAP_UTF8_NAMES_SLUGIFY=true

SET LDAP_USERNAME_FIELD=sAMAccountName

SET LDAP_FULLNAME_FIELD=displayName

SET LDAP_EMAIL_MATCH_ENABLE=false

SET LDAP_EMAIL_MATCH_REQUIRE=false

SET LDAP_EMAIL_MATCH_VERIFIED=true

SET LDAP_EMAIL_FIELD=userPrincipalName

SET LDAP_SYNC_USER_DATA=true

SET LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name", "userPrincipalName":"email"}

SET LDAP_DEFAULT_DOMAIN=xxxx.xx

SET LDAP_SYNC_ADMIN_STATUS=true

SET LDAP_SYNC_ADMIN_GROUPS='EDV'

This is my output while trying to login to wekan:
[INFO] Init LDAP login "MyUser"
[WARN] Lookup for unset variable: LDAP_REJECT_UNAUTHORIZED
[WARN] Lookup for unset variable: INTERNAL_LOG_LEVEL
[WARN] Lookup for unset variable: LDAP_USER_ATTRIBUTES
[WARN] Lookup for unset variable: LDAP_USER_SEARCH_FILTER
[WARN] Lookup for unset variable: LDAP_GROUP_FILTER_ENABLE
[WARN] Lookup for unset variable: LDAP_GROUP_FILTER_OBJECTCLASS
[WARN] Lookup for unset variable: LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE
[WARN] Lookup for unset variable: LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE
[WARN] Lookup for unset variable: LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT
[WARN] Lookup for unset variable: LDAP_GROUP_FILTER_GROUP_NAME
[INFO] Init setup
[INFO] Connecting "ldap://MyLdapHost:389"
[DEBUG] connectionOptions{
  url: 'ldap://MyLdapHost:389',
  timeout: 10000,
  connectTimeout: 10000,
  idleTimeout: 10000,
  reconnect: true,
  log: Logger {
    _events: [Object: null prototype] {},
    _eventsCount: 0,
    _maxListeners: undefined,
    _level: 30,
    streams: [ [Object] ],
    serializers: null,
    src: false,
    fields: {
      name: 'ldapjs',
      component: 'client',
      hostname: 'wekanserver',
      pid: 1588
    },
    [Symbol(kCapture)]: false
  }
}
[INFO] Starting TLS
[DEBUG] tlsOptions {
  "rejectUnauthorized": false,
  "ca": [
    "-----BEGIN CERTIFICATE-----MIIGJzCCBQ+gAwIBAgITWQAAC1cr/gzK/uWY2AAKAA.....-----END CERTIFICATE-----"
  ],
  "host": "MyLdapHost"
}
[INFO] TLS connected
[INFO] Binding UserDN "CN=ldapUser,CN=Users,DC=xxx,DC=xxx"
[ERROR] TypeError: Cannot read property '0' of undefined

Thank you for your help!
Cheers!

I found the Problem for this but couldn't find a fix till now.
The message [ERROR] TypeError: Cannot read property '0' of undefined is connected to the setting LDAP_USER_SEARCH_FILTER.
If you active the log level "debug" with SET INTERNAL_LOG_LEVEL=debug and set the variable SET LDAP_USER_SEARCH_FILTER="" you can see the following entry:
[DEBUG] searchOptions {
  "filter": "(&(\"\")(\"sAMAccountName\"=login))",
  "scope": "\"sub\"",
  "sizeLimit": 0
}

But then you get this error:
[ERROR] Error: "" is invalid


R8 and Moshi-sealed crash

Hello,
Moshi-sealed is great and we love using it but recently, we experienced an issue that is hard to tackle and I decided to ping you if you have any idea in mind. We have the following hierarchy of classes:
@Keep
@JsonClass(generateAdapter = true)
data class A(val b: B)

@Keep
@JsonClass(generateAdapter = true)
data class B(val c: C)

@Keep
@JsonClass(generateAdapter = true, generator = "sealed:type")
sealed interface C {
    @Keep
    @TypeLabel("C1")
    @JsonClass(generateAdapter = true)
    data class C1(
        @Json(name = "coordinates") override val coordinates: List<List<Double>>,
    ) : C

    @Keep
    @TypeLabel("C2")
    @JsonClass(generateAdapter = true)
    data class C2(
        @Json(name = "coordinates") val jsonCoordinates: List<List<List<Double>>>,
    ) : C
}

As you can see, moshi-sealed is used inside normal moshi json adapters. When running the app version with r8 I get this error:
Caused by: java.lang.ClassCastException: $Proxy7 cannot be cast to kotlin.metadata.jvm.b
                                                                                at dev.zacsweers.moshix.sealed.reflect.MetadataMoshiSealedJsonAdapterFactoryKt.b(MetadataMoshiSealedJsonAdapterFactory.kt:13)
                                                                                at dev.zacsweers.moshix.sealed.reflect.MetadataMoshiSealedJsonAdapterFactoryKt.access$header(MetadataMoshiSealedJsonAdapterFactory.kt)
                                                                                at dev.zacsweers.moshix.sealed.reflect.MetadataMoshiSealedJsonAdapterFactory.create(MetadataMoshiSealedJsonAdapterFactory.java)
                                                                                at com.squareup.moshi.Moshi.adapter(Moshi.java)

We use the MetadataMoshiSealedJsonAdapterFactory. In build.gradle we have:
 api libs.square.moshi.kotlin
api libs.square.moshi.adapters
api(libs.zacsweers.moshi.sealed.runtime) {
    exclude group: 'com.squareup.moshi'
}
api(libs.zacsweers.moshi.sealed.metadata.reflect) {
    exclude group: 'com.squareup.moshi'
}
api libs.square.converter.moshi
ksp libs.square.moshi.codegen
ksp libs.zacsweers.moshi.sealed.codegen

In proguard, I have added:
# Region Moshi
# JSR 305 annotations are for embedding nullability information.
-keep class kotlin.Metadata { *; }

# Keep default constructor marker name for lookup in signatures.
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker

# Keep implementations of service loaded interfaces
-keep interface kotlinx.metadata.impl.extensions.MetadataExtensions
-keep class * implements kotlinx.metadata.impl.extensions.MetadataExtensions { public protected *; }

# Keep generic signatures and annotations at runtime.
-keepattributes Signature,RuntimeVisible*Annotations
-dontwarn javax.annotation.**

-keepattributes InnerClasses
-keepclasseswithmembers class * {
    @com.squareup.moshi.* <methods>;
    *;
}

-keep @com.squareup.moshi.JsonQualifier @interface *

# Enum field names are used by the integrated EnumJsonAdapter.
# values() is synthesized by the Kotlin compiler and is used by EnumJsonAdapter indirectly
# Annotate enums with @JsonClass(generateAdapter = false) to use them with Moshi.
-keepclassmembers @com.squareup.moshi.JsonClass class * extends java.lang.Enum {
    <fields>;
    **[] values();
    *;
}

# Keep helper method to avoid R8 optimisation that would keep all Kotlin Metadata when unwanted
-keepclassmembers class com.squareup.moshi.internal.Util {
    private static java.lang.String getKotlinMetadataClassName();
}

# Keep ToJson/FromJson-annotated methods
-keepclassmembers class * {
  @com.squareup.moshi.FromJson <methods>;
  @com.squareup.moshi.ToJson <methods>;
}

-keep,allowobfuscation,allowshrinking class com.squareup.moshi.JsonAdapter

And we still have the error happening. I was wondering what am I missing in the proguard configuration. Any help is appreciated, thank you!

Reproducible sample app https://drive.google.com/file/d/1diXfz14LWNIR7F_DbEFqHb3fm9M94_Dx/view?usp=sharing

Got it working by using the following pro-guard configuration:
-keep class kotlin.Metadata { *; }
-keepclassmembers class * {
    @kotlin.Metadata *;
}
-keep @kotlin.Metadata class * { *; }

Will do that, thank you :+1:

I am still struggling to understand where the issue lies exactly. The guys from R8 are telling me that I have practically disabled R8 optimisation for all kotlin files by using the above 😄 I have raised a YouTrack issue and one in the IssueTracker but just wanted to confirm, why is MetadataJsonFactory executed if I have already annotated my sealed class (as per the example from the project above) with the generator property and have added type labels. Doesn't that mean that they are not recognized and MetadataJsonFactory now uses reflection to recognize the classes while I shouldn't reach reflection at all?

Sorry are you saying you are trying to use code gen? All of your information up to this point seemed to imply you were intentionally trying to configure reflective use. Converting this to a discussion now as this appears to be more of a usage question than anything


Possible cause for error 6982

Writing an NFC card did not work directly on my phone. Later I found out that it was due to my phone. The NFC card reader/writer does not seem to work properly when the phone is not 100% charged. I always have to plug in the power cord for it to work properly.
However, it was already too late for the card. It then always shows Error 6982 when trying to write. Or when I tried to erase the card again, I got the "Change Key0: Error: 91AE" message.
I found out that the card was only partially written. The field NDEF Record has a lnurlw entry. But the card keys are still set to default. So unrecorded card. I can't remember exactly how this happened, but I suspect that the low voltage of my phone did not read/write the card properly. In any case, the card has an undefined state. Partially write, but without keys that you could overwrite them.
System: Samsung S9+, Android 10, Bolt Card NFC Card Creator v0.1.3

Thanks for logging this issue, but for future issues with the NFC writer app please post issues to this repo https://github.com/boltcard/bolt-nfc-android-app

when you say your phone was not 100% charged, how charged was it?

When you attempted to erase the card, did you do this with the keys all set to zeros?

I used the WIPE DATA from LNbits Wallet. Cards how a correct written I can erase. Thats works with the WIPE DATA from LNbits. Just cards who are not correct written I can't wipe to zero.

when you say your phone was not 100% charged, how charged was it?

It dosen't matter. I think I tried it with with 70% of battery load. With 95% I got the same problem.

Ok, I tried again. It seems that it was really only due to the fact that you have to manually set all keys to zero. Then it cleared the NDEF record field and the card is ready again. The error 6982 does not come then any more. Is then only the question, how could it come that he has written only the NDEF record field. An error of the Android App or a combination with the cell phone that writes the card only half at low voltage?
Because of mine we can close the issue.
Translated with www.DeepL.com/Translator (free version)


Can't click left side menu when browser too small

If I resize the browser until the content gets pushed down below the side menu, I can't click the links on the left side menu (#col-md-3) anymore. Setting z-index:100 fixes that but not sure where to put that and if there is a cleaner way.

Thanks for reporting. I also didn't know a better way, so I just implemented your suggestion.


fedora 41 repo

Since the new build system is much more flexible and fedora 41 has been released yesterday, I kindly request adding fedora 41 support. I bet that the fedora-3* releases can be removed since they are ancient releases.

the puppet agent doesn't work on fedora 41 because of #9506.

I'm aware of the that problem, which is trivial to fix.
Your statement is untrue though, puppet agent works fine, even though you might not be able to install packages.

Oh. yes sorry. you are right... i was just thinking about my use case.

@Stricken1670 thank you for the enhancement request for Fedora41. Taking a look at our backlog I don't think it is likely that we'll get around to adding support for the puppet-agent for Fedora-41.

Fedora is always the current release and test bed for Red Hat releases. The puppet build environment has been updated to facilitate easy releases. All that is expected is to bump to the next releases and discard the old releases.
Thanks for taking your community seriously.


Write a Java program to find second smallest number in an array

Description
Write a Java program to find second smallest number in an array
Input  : [1, 2, 3, 4, 5]
Output : 2

How to contribute

Save the solution in program/FindSecondSmallestNumberInAnArray.java file
Add FindSecondSmallestNumberInAnArray.java file in find-second-smallest-number-in-an-array folder

Hey @SpirosArk, this issue is already assigned to @brundabharadwaj !!!
Please choose another issue.
Thanks for your interest in contributing to this project.

Sorry never saw it!

Hey @brundabharadwaj,
This issue has been assigned to you for more than 15 days.
We are unassigning you from this issue.
If you are still interested in contributing to this issue, please get auto-assigned on the issue by commenting !assign again.
Thanks for your contributions :)

!assign


Fix latest 20.1 and 20.2 release notes

Add intro linking back to GA release notes.
Remove "unstable" from docker image.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/95217eb194b045deb1f63d29b52fee36b19a6fca/
Edited pages:

releases/v20.1.9.md
releases/v20.2.3.md


Set revisionHistoryLimit to 1 to reduce load on the issuer

We've been running google-cas-issuer for just under a year, to generate certificates to secure Istio workloads. And recently found that it started to reach high memory usage (in the hundreds of MBs) and would get OOMKilled often.
Just before the crash, the deployment logs contain a large amount of log records about existing CertificateRequest already being approved:
INFO	controller.CertificateRequest	CertificateRequest is Ready, ignoring.	{"certificaterequest": ...

Removing limit and clearing up old requests seemed to have helped, but I'd love to see a more permanent solution as I fear this will reccur in a year (or sooner). Our CRs were for the certs such as istio-system/istio-csr and cert-manager/demo-certificate (the latter is likely someone testing out cert-manager and forgot to clean it up).

Noob warning: below is my ramblings trying to understand if I could contribute to the solution - it's probably grossly incorrect
I undertand a solution could be to use CertificateSpec.revisionHistoryLimit, but I couldn't find how the istio-csr Certificate is being created by google-cas-issuer (is it even?), and would love to get some guidance 🙏 .. e.g would it be around this area?:
https://github.com/jetstack/google-cas-issuer/blob/866fd9067b17a24da4e8133d1dcd677f1efb304f/pkg/cas/cas.go#L69-L77
Or, am I looking in the wrong place? Does this Certificate spec get created in Istio, or is it done somewhere else entirely? I feel like I'm missing some basic understanding of what's going on in my system, is there any documentation I can look at?
Side note: I did notice that Istiod cert for example only keept one CR around, being logged by cert-manager:
cert-manager/controller/certificates-revision-manager "msg"="garbage collecting old certificate request revsion" "key"="istio-system/istiod" "related_resource_kind"="CertificateRequest" "related_resource_name"="istiod-kjt9x" "related_resource_namespace"="istio-system" "resource_kind"="Certificate" "resource_name"="istiod" "resource_namespace"="istio-system" "resource_version"="v1" "revision"=9080

One thing to add: after removing the old certificate requests, google-cas-issuer logs now contain a lot of "Reconciler error" spam.
This seems similar to the error described in https://github.com/jetstack/google-cas-issuer/issues/28 which was meant to be fixed in 0.2.0 (we are running 0.5.3 via quay.io/jetstack/cert-manager-google-cas-issuer:0.5.3).
CC: @jakexks

I have been affected by the same issue described here.  When the number of CRs grow and reaches a certain ammount, the google-cas-issuer pod gets OOM killed.
Setting the revisionHistoryLimit parameter in the certificate definition can mitigate the issue, but eventually enough certificates are created and their corresponding CRs grow to the point break.
Also deleting old CRs either manually or via the revisionHistoryLimit causes the pod logs to show many reconcile errors with  certificate request not found.  Of course it is not found, it they have been removed, forget about them already.
The version I'm using is 0.6.2

Just tested that by deleting the google-cas-issuer pod and have the deployment recreate it, the reconcile errors don't appear in the new pod.
The new pod has no memory of the old CRs, which is expected.  But this is not a feasible way of solving this erros

Do you still have these issues with the latest version of the issuer?

I have not tested it, but I no longer work for the company where this ran, so will ask @tale-toul's feedback, or otherwise close the issue.


freertos: enable use of pxTaskGetStackStart

Having pxTaskGetStackStart allows for measuring of free stack space - not only the high water mark (the lowest amount ever), but also for current stack use. On a platform where you can so easily run into low memory, having a more precise way to measure how much of it is left is a must.
As a use case, here is a screenshot of my tool for measuring stack using pxTaskGetStackStart for stack start and uxTaskGetSnapshotAll for stack end and current position.

Cherry-picked as 969911b, thank you!


Prevent random people from signing up

We could use some sort of email verification service.

Because all the people from founders and coders are registered in github, we can make a social login with github and just check if they are in the FAC organization.


ssh-keygen failed

I'm on a Windows 10 Home machine, which only has ssh and ssh-keygen available in CMD for some reason. The extension fails to generate the ssh key with error
Command "ssh-keygen -t rsa -b 4096 -f "C:\Users\fivei\.ssh\azure_uxtest_rsa" -N """ failed with exit code "1":
'ssh-keygen' is not recognized as an internal or external command, operable program or batch file.

But I have ssh-keygen on my path, just only in CMD:

I'm not sure what the correct solution is, but maybe the command can fully qualify the path?

Saw this in a user study today and realized that this also bombs the creation. That's a pretty big problem: ssh keygen fails so the VM fails to create, but it leaves the other resources hanging around in the subscription.

Bumping this in priority because it's effectively broken for Win 10 Home users as it is. At the least it should successfully create the VM and gracefully handle the lack of SSH with a warning of some sort.

P.S. Installing PuTTY seems to correct the issue... kind of. I'll open another issue for what happens next

I thought ssh-keygen was installed when you install git, correct? I agree we need to improve this, but I feel like a big chunk of those "Win 10 Home users" probably have git installed

So the Portal added some more options for SSH keys.  I think on a failure, we can fallback to something like this.  The advanced create scenario could be a prompt with the options listed below.

We can hold off on this until the next release.  It happens to 1% of users and will be resolved once we can use the Azure SSH Key API.


[THRIFT-5314][THRIFT-4101] Generate enums that don't error on unexpected values

Client: rs

Failed on trying to get packages from Microsoft, but succeeded on previous runs:
After this operation, 382 MB of additional disk space will be used.

Err:1 https://packages.microsoft.com/ubuntu/18.04/prod bionic/main amd64 dotnet-runtime-deps-5.0 amd64 5.0.3-1

  Could not connect to packages.microsoft.com:443 (<IP_ADDRESS>). - connect (111: Connection refused)

Err:2 https://packages.microsoft.com/ubuntu/18.04/prod bionic/main amd64 dotnet-host amd64 5.0.3-1

  Unable to connect to packages.microsoft.com:https:


[stable/traefik] Add dashboard.ingress.enabled flag

What this PR does / why we need it:
This PR adds a dashboard.ingress.enabled flag which controls if the ingress object for dashboard service should be created or not. The flag is true by default to maintain current behaviour. With this flag, one can specify to create dashboard service object without also having to create the dashboard service's ingress object.
The reason I want this flag is because most of the time, I want to enable the dashboard but I don't ever want the dashboard to be publicly accessible. I only want to occasionally check the dashboard with kubectl proxy or kubectl port-forward. In that case having a unused traefik.example.com ingress object sitting there is pointless and annoying.
Special notes for your reviewer:
@krancour @emilevauge @dtomcej @ldez: Please review. Thanks!
Checklist

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/assign @nmengin

This PR seems to be a duplicate of my PR here:
https://github.com/helm/charts/pull/15686
I don't mind which PR gets approved but what do we need to do to get this merged in?


Encoding Agent Features.

thank you for your work.
when i read the code, i found that in the paper, the agent features are  the velocity magnitude, the direction of velocity, and the attribute.  but in the code , the agent features are the length of the vector, it seems the features only have the length, without the direction. Can you explain why you don't use the features like vector, velocity?

I guess you are looking at the HPNet-Argoverse code. The reason we only use the length is that Argoverse does not provide velocity-related information. The INTERACTION dataset does provide these details, and for that dataset, the encoding part uses more information as described in the paper.

I guess you are looking at the HPNet-Argoverse code. The reason we only use the length is that Argoverse does not provide velocity-related information. The INTERACTION dataset does provide these details, and for that dataset, the encoding part uses more information as described in the paper.

Thank you for your reply.  Do you have tried to convert pth/ckpt to ONNX? If yes, is there any translation problem?

I guess you are looking at the HPNet-Argoverse code. The reason we only use the length is that Argoverse does not provide velocity-related information. The INTERACTION dataset does provide these details, and for that dataset, the encoding part uses more information as described in the paper.

Thank you for your reply. Do you have tried to convert pth/ckpt to ONNX? If yes, is there any translation problem?

Hi, I have not yet tried converting the model from .pth/.ckpt to ONNX format, so I am unable to provide specific details on potential translation issues. It is certainly an area worth exploring.


[GQMagazineBridge] fix retrieve the content of an article at a given url

issue #2278 identifies bridges that are partially broken. I try to fix some of them.
GQMagazineBridge is partially broken because:

GQMagazine change its HTML structure. section[data-test-id=MainContentWrapper] is now article
a test prevent listing the children urls of the url being processed

Tested locally and this fixed the main problem. One small problem remain and that is that the parsing of the date fails:
Notice: Trying to get property 'datetime' of non-object in /home/rssbridge/public/bridges/GQMagazineBridge.php on line 104

Looks like the datetime attribute of <time> is gone. Would need to parse the date in french: 26 novembre 2021
Perhaps op can take a look at this?


iOS: Input field not working properly if  "-webkit-user-select: none" is used

Prerequisites

[x ] I have searched for similar issues in both open and closed tickets and cannot find a duplicate
[x ] The issue still exists against the latest master branch of Select2
[x ] This is not a usage question (Those should be directed to the community)
[x ] I have attempted to find the simplest possible steps to reproduce the issue
[ ] I have included a failing test as a pull request (Optional)

Steps to reproduce the issue

Set the following CSS Rule to disable user text selection

{
-webkit-touch-callout: none !important;
-webkit-user-select: none !important;
-webkit-tap-highlight-color: transparent !important;
-moz-user-select: none !important;
}

Open safari on any ios device and try to type in the search field (not possible and if possible only for one letter)
You even need to tap the  field again to type in the field (not possible and if possible only for one letter)

Expected behavior and actual behavior
When I follow those steps, I can't type in the input field at all or only one letter.
I was expecting normal search behaviour.
The fix for this issue is (didn't try to optimize the selectors)
.select2-container--default *{
-webkit-user-select: text !important;
-moz-user-select: text !important;
}
Environment
Browsers

[ ] Google Chrome
[ x] Safari
[ ] Mozilla Firefox
[ ] Internet Explorer

Operating System

[ ] Windows
[ ] Mac OS X
[x] iOS
[ ] Linux
[ ] Mobile

Libraries

jQuery version: 1.11.1
Select2 version: 4.0.3

Isolating the problem

[ ] This bug happens on the examples page
[ ] The bug happens consistently across all tested browsers
[x] This bug happens when using Select2 without other pluigns
[ ] I can reproduce this bug in a jsbin

Had the same issue!


Create Release Notes article on Customer Portal

Move the content from the RN google doc.
To remain unpublished until further notice.
Structure based on
EAP7 Beta RN

Portal article for the RHOAR Beta 2 Release Notes

By closing this issue, do you mean it's finished? Because I know that at least the Vert.x and Swarm version numbers are for Beta1, not for Beta2. There might be other issues, I didn't review very closely.

@Ladicek No, the Release Notes article is not finished, there are several sections of the article that still need to be updated and reviewed, including the Supported Maven Artifact versions, Known Issues and the Support Statement.
I'll keep this issue open until all the information in the article has been updated.

OK, thanks.

Beta 2 Release Notes are ready to be published. Closing this issue.


Document which version of java is supported

https://github.com/etcd-io/jetcd documents that java 8 or above is required to use the library.
I think that the minimal version of java that is required to use etcd-java should also be documented.

Thanks @sbrunot, you're right we should make it clear in the project summary that java 8 or higher is required, I will add this.


ERROR: Failed to download Chromium r555668!

When i run npm install hiper -g, it has this error log:
ERROR: Failed to download Chromium r555668! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
{ Error: read ECONNRESET
    at _errnoException (util.js:1022:11)
    at TLSWrap.onread (net.js:628:25) code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }

How to  fix it

This might give you a clue. Not sure if it's a solution.
https://github.com/GoogleChrome/puppeteer/issues/2173

same issue here
Linux Mint 18.2
Node 10.0.0
Npm 6.0.1

if you are in Linux, you can use this command like this: sudo npm install hiper -g --save hiper --ignore-scripts.it can skip download Chromium.because of the GFW...


Feature/dag refactor

Moves DAG related code to a separate class.

[x] Check that you pass the basic style checks and unit tests by running mvn clean install

Coverage increased (+0.2%) to 73.068% when pulling 28c009239d99a865151e30ba3740bb854bee159e on feature/dag_refactor into bf9f6e81164c9516f39dc2d26a38a528509011e3 on develop.


Provide a way to override the volumeClaimTemplate name

Description
The current volumeClaimTemplate name is rather long and leads to long PVC names. This PR introduces a new value persistence.volumeClaimTemplateNameOverridewhich allows the user to change the name. By default the value is not defined and the current name remains in use.
Issues Resolved

#339

Check List

[x] Commits are signed per the DCO using --signoff

For any changes to files within Helm chart directories:

[ ] Helm chart version bumped
[x] Helm chart CHANGELOG.md updated to reflect change

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Hi @retoo thanks for the contribution.
Is this something we can add for dashboards as well?
@TheAlgo @prudhvigodithi
Thanks.

@peterzhuamazon yes, that should be possible. I try to look into it next weekend.

Hi @DandyDeveloper @TheAlgo @prudhvigodithi please take a look and review.
Thanks.

Hey @retoo can you please check @DandyDeveloper comment and see if that is a valid scenario ?
Thank you

Hey @retoo closing this, please re-open if required.
Thank you


nexus-prisma-generate error

Versions:
"nexus": "0.9.11"
"nexus-prisma": "0.2.0"
"prisma-client-lib": "1.26.4"
When I run prisma deploy I experience two different errors depending on how I have defined my hooks -> post-deploy in primsa.yml.
Scenario 1:
Here I have not wrapped the client and output path in double-quotes:
hooks:
  post-deploy:
    - prisma generate
    - npx nexus-prisma-generate --client=./src/generated/prisma-client --output=./src/generated/nexus-prisma

Terminal output:
Deploying service `default` to stage `default` to server `local` 53ms
Service is already up to date.

post-deploy:

Generating schema... 23ms

Running prisma generate...
Saving Prisma Client (TypeScript) at /Users/user/project/src/generated/prisma-client/
Running prisma generate ✔
npx: installed 85 in 4.658s
prisma_datamodel_1.Parser.create is not a function

Running npx nexus-prisma-generate --client=./src/generated/prisma-client --output=./src/generated/nexus-prisma ✖

Error: prisma_datamodel_1.Parser.create is not a function
The src/generated/prisma-client/ -path is generated correctly with index.ts and  prisma-schema.ts however the src/generated/nexus-prisma/ -path is empty.
Scenario 2:
Here I have wrapped the client and output path in double-quotes:
hooks:
  post-deploy:
    - prisma generate
    - npx nexus-prisma-generate --client="./src/generated/prisma-client" --output="./src/generated/nexus-prisma"

Terminal output:
Deploying service `default` to stage `default` to server `local` 54ms
Service is already up to date.

post-deploy:

Generating schema... 20ms

Running prisma generate...
Saving Prisma Client (TypeScript) at /Users/user/project/src/generated/prisma-client/
Running prisma generate ✔
npx: installed 85 in 4.691s

Running npx nexus-prisma-generate --client="./src/generated/prisma-client" --output="./src/generated/nexus-prisma"...
ERROR: Cannot find --client path at /Users/user/project/"./src/generated/prisma-client"
Running npx nexus-prisma-generate --client="./src/generated/prisma-client" --output="./src/generated/nexus-prisma" ✖

Error: ERROR: Cannot find --client path at /Users/user/project/"./src/generated/prisma-client"
In this case only the src/generated/prisma-client/ is present and no src/generated/nexus-prisma/

Hey 👋,
That's something I have noticed recently.
One work-around, for now, is to use the following syntax:
npx nexus-prisma-generate --client ./src/generated/prisma-client --output ./src/generated/nexus-prisma

@Weakky I get the same error with all variations of the args.
prisma_datamodel_1.Parser.create is not a function

Running npx nexus-prisma-generate --client ./src/generated/prisma-client --output ./src/generated/nexus-prisma ✖```

So it looks like the latest alpha version of prisma-datamodel is 1.28.0-alpha.8, which is the version that gets installed with nexus-prisma-generate.  The compiled .js for alpha.8 of prisma-datamodel exports DefaultParser (instead of Parser) with the create() function used here:
https://github.com/prisma/nexus-prisma/blob/master/packages/nexus-prisma-generate/src/config.ts#L34

Fixed by #93 and released under 2.0.0. Thanks for the PR @brannon-darby!


Get access to trained weights and optimization result

Summary
In this PR we introduce two properties in the TrainableModel class. All algorithms/models like NeuralNetworkClassifier/NeuralNetworkRegressor/VQC that inherit from this class benefit of this PR:

fit_result contains a result of the optimization process
weights contains trained weights.

Both properties are available only once models are fit. Closes #385

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

13 of 13 (100.0%)  changed or added relevant lines in 1 file are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 86.873%

Files with Coverage Reduction
New Missed Lines
%

qiskit_machine_learning/datasets/gaussian.py
3
37.11%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
2978

Relevant Lines:
3428

💛  - Coveralls

I'm going to merge this PR and address the question in the next one, perhaps with other improvements.