Position/Notifications not updated for bracket orders

After a buy order has been placed with the LIVE data feed, and was properly accepted. Monitoring the position from next() does not match what is shown on Alpaca's site.
That can be easily tested by performing a buy order through the alpaca-trade-api, then closing the position on the Alpaca website. The position does not get updated in the next() function.
I am also experiencing missing notifications for bracket orders (buy limit, sell stop, sell limit).
The first buy order notifications is received, but once the stop or sell limits are eventually triggered, no notifications are sent to notify_order().
This is working fine for non-live trading.

Here is the strategy I have used:
class Template(bt.Strategy):
    """A simple strategy template"""
    params = {'slow'        : 20,
              'usebracket'  : True,
              'rawbracket'  : False,
              'pentry'      : 0,   # % below previous close
              'plimit'      : 5,  # % limit price (make profit)
              'pstop'       : 2,   # % stop price (stop loss)
              'valid'       : 1,   #
              }

    def __init__(self):
        self.slowma = dict()
        self._addobserver(True, bt.observers.BuySell)

        self.buycnt  = 0
        self.sellcnt = 0
        self.total   = 0

        self.tLastOrder = time.time()

        # create array of dictionary
        self.o = (dict())  # orders per data (main, stop, limit, manual-close)
        # fill the array index with symbols each with its own dictionary
        for sym in self.getdatanames():
            self.o[sym] = dict()
        for sym in self.getdatanames():
            # The moving averages
            self.slowma[sym] = bt.indicators.SimpleMovingAverage( self.getdatabyname(sym),      # The symbol for the moving average
                                                                period=self.params.slow,    # Slow moving average
                                                                plotname="SlowMA: " + sym)

    def log(self, txt, dt=None):
        dt = dt or self.datas[0].datetime.datetime(0)
        print(dt.strftime('%m-%d %H:%M:%S'), txt)

    def notify_cashvalue(self, cash, value):
        return
        self.log('Cash %s Value %s' % (cash, value))

    def notify_trade(self, trade):
        sym = trade.getdataname()
        #self.log(f"{sym}: SUBMITTING trade: {trade.size:.2f} {trade.price:.2f}")
        if trade.isclosed:
            #self.log(f"{sym}: CLOSED gross {trade.pnl:.2f} net {trade.pnlcomm:.2f}")
            self.log(f"{sym}: PROFIT {trade.pnlcomm:.2f}")

    def notify_order(self, order):
        sym    = order.data._name
        ref    = order.ref
        date   = self.datetime.date()
        status = order.getstatusname()

        # get the order from the
        whichord = ['main', 'stop', 'limit', 'close']
        dorders  = self.o[sym][order.data]
        idx      = dorders.index(order)

        self.log(f'   {sym}: ref {ref} {status}: {whichord[idx]}')

        # show some possible errors
        if order.status in [order.Expired, order.Margin, order.Rejected]:
            self.log(f'   {sym}: ref {ref} {status}: {whichord[idx]}')

        # NOTE:
        # occasionally in live trading we receive Partial instead of Completed even though the order has been filled

        if order.status in [order.Completed, order.Partial, order.Canceled, order.Expired, order.Margin, order.Rejected]:
            # order canceled, remove it
            #self.log(f'   {sym}: ref {ref} {status}: {whichord[idx]}')
            try:
                dorders[idx] = None
                self.log(f'   {sym}: ref {ref} removed: {whichord[idx]}')
                if all(x is None for x in dorders):
                    dorders[:] = []  # empty list - New orders allowed
                    self.log(f'   {sym}: order list empty')
            except:
                print('   ERR *** order.data empty')

    def next(self):
        """Define what will be done in a single step, including creating and closing trades"""
        for sym in self.getdatanames():    # Looping through all symbols
            d     = self.getdatabyname(sym)
            pos   = self.getpositionbyname(sym) # pos.size, pos.price
            dt    = self.datetime.datetime(0)
            qty   = self.getsizing(d, isbuy=True)
            price = d.close[0]

            self.log(f'{sym}: CHECK  {price:.2f} {pos.size:.2f} {pos.price:.2f} {time.time()}')

            # no position, no orders
            if not pos.size and not self.o[sym].get(d, None):
                # Consider the possibility of entrance
                # Notice the indexing; [0] always means the present bar, and [-1] the bar immediately preceding
                # Thus, the condition below translates to: "If today the regime is bullish (greater than
                # 0) and yesterday the regime was not bullish"

                if True: #self.slowma[sym][0] > self.slowma[sym][-1]:    # A buy signal

                    # upon startup, not all data is valid, so we wait a few seconds...
                    # also we need to allow time between placing orders...this is still under test
                    if time.time() - self.tLastOrder < 10.0:
                       return
                    self.tLastOrder = time.time()

                    self.log(f'{sym}: CHECK  {price:.2f} {pos.size:.2f} {pos.price:.2f} {time.time()}')

                    if self.params.usebracket:
                        price = price * (1.0 - self.params.pentry / 100.0)
                        pstp  = price * (1.0 - self.params.pstop  / 100.0)
                        plmt  = price * (1.0 + self.params.plimit / 100.0)
                        valid = datetime.timedelta(self.params.valid)

                        #pstp  = 118.55
                        #plmt  = 123.64

                        self.log(f'{sym}: BUY BRKT @{pstp:.2f} {price:.2f} {plmt:.2f} {valid} qty: {qty:.2f}')

                        if self.p.rawbracket:
                            o1 = self.buy (data=d, exectype=bt.Order.Limit, price=price, valid=valid, transmit=False)
                            o2 = self.sell(data=d, exectype=bt.Order.Stop,  price=pstp, size=o1.size,transmit=False, parent=o1)
                            o3 = self.sell(data=d, exectype=bt.Order.Limit, price=plmt, size=o1.size,transmit=True,  parent=o1)
                            self.o[sym][d] = [o1, o2, o3]
                        else:
                            self.o[sym][d] = self.buy_bracket(  data       = d,
                                                                price      = price,
                                                                stopprice  = pstp,
                                                                limitprice = plmt,
                                                                exectype   = bt.Order.Market,
                                                                #oargs      = dict(valid=valid)
                                                                    )
                        #self.log('{}: BUY REF [Main {} Stp {} Lmt {}]'.format(sym, *(x.ref for x in self.o[sym][d])))
                    else:
                        self.o[sym][d] = [self.buy(data=d)]
                        self.log(f'{sym}: BUY @{price:.2f} qty: {qty:.2f}')
                        #self.log('{}: Buy {}'.format(sym, self.o[sym][d][0].ref))

            else:    # We have an open position
                return
                if self.slowma[sym][0] < self.slowma[sym][-1]:    # A sell signal
                    self.log(f'{sym}: SELL *qty {self.getsizing(d, isbuy=False):.2f}')
                    o = self.close(data=d)
                    try:
                        self.o[sym][d].append(o)  # manual order to list of orders
                    except:
                        print('Not part of order')
                        #return
                    try:
                        #for xo in self.o[sym][d]:
                        #    if xo is not None:
                        #        print('REF ',xo.ref)
                        #self.log('{}: CLOSE [Main {} Stp {} Lmt {}]'.format(sym, *(x.ref for x in self.o[sym][d])))
                        self.log('{}: Manual Close {}'.format(sym, o.ref))
                    except:
                        self.log('{sym}: No ref')
                    if self.p.usebracket:
                        try:
                            o = self.cancel(self.o[sym][d][1])  # cancel stop side
                            self.log('{}: Cancel {}'.format(sym, self.o[sym][d][1].ref))
                        except:
                            #print(self.o[sym][d])
                            #print('bad order sequence')
                            pass

first try installing the most updated code for both packages like so:
pip install -U git+https://github.com/alpacahq/alpaca-trade-api-python
pip install -U git+https://github.com/alpacahq/alpaca-backtrader-api
and let's see if this issue still occurs.

I tried the latest updates that you mentioned on the live market today, but with the same behavior.
Cancelling pending orders (stop on loss) does not get any notifications and the position is not updated. This is based on the code that is based above.
Please keep in mind that the code is written to handle multiple symbols (only one is in use). I may be using the wrong class members, but the code is based on:
https://www.backtrader.com/blog/posts/2017-04-09-multi-example/multi-example/

Ctrl-C out of the program shows the following (if that might help):
await handler(self, channel, ent)
06-15 00:00:00 TVIX: CHECK  168.92 0.00 0.00<PHONE_NUMBER>.8473768
06-15 00:00:00 TVIX: BUY BRKT @165.54 168.92 177.37 1 day, 0:00:00 qty: 526.67
06-15 13:23:00    TVIX: ref 1 Submitted: main
06-15 13:23:00    TVIX: ref 2 Submitted: stop
06-15 13:23:00    TVIX: ref 3 Submitted: limit
06-15 13:23:01    TVIX: ref 1 Accepted: main
06-15 13:23:01    TVIX: ref 2 Accepted: stop
06-15 13:23:01    TVIX: ref 3 Accepted: limit
06-15 13:23:01    TVIX: ref 1 Accepted: main
06-15 13:23:02    TVIX: ref 2 Accepted: stop
06-15 13:23:02    TVIX: ref 3 Accepted: limit
06-15 13:23:02    TVIX: ref 1 Partial: main
06-15 13:23:02    TVIX: ref 1 removed: main
Traceback (most recent call last):
File "C:\Users\NEF\Desktop\NextCloud\Clones\Projects\Trading\Backtrader\btTest1.py", line 100, in
results = cerebro.run()
File "C:\Users\NEF\AppData\Local\Programs\Python\Python37\lib\site-packages\backtrader\cerebro.py", line 1127, in run
runstrat = self.runstrategies(iterstrat)
File "C:\Users\NEF\AppData\Local\Programs\Python\Python37\lib\site-packages\backtrader\cerebro.py", line 1298, in runstrategies
self._runnext(runstrats)
File "C:\Users\NEF\AppData\Local\Programs\Python\Python37\lib\site-packages\backtrader\cerebro.py", line 1542, in _runnext
drets.append(d.next(ticks=False))
File "C:\Users\NEF\AppData\Local\Programs\Python\Python37\lib\site-packages\backtrader\feed.py", line 407, in next
ret = self.load()
File "C:\Users\NEF\AppData\Local\Programs\Python\Python37\lib\site-packages\backtrader\feed.py", line 479, in load
_loadret = self._load()
File "C:\Users\NEF\AppData\Local\Programs\Python\Python37\lib\site-packages\alpaca_backtrader_api\alpacadata.py", line 259, in _load
self.qlive.get(timeout=self._qcheck))
File "C:\Users\NEF\AppData\Local\Programs\Python\Python37\lib\queue.py", line 179, in get
self.not_empty.wait(remaining)
File "C:\Users\NEF\AppData\Local\Programs\Python\Python37\lib\threading.py", line 300, in wait
gotit = waiter.acquire(True, timeout)
KeyboardInterrupt

That can be easily tested by performing a buy order through the alpaca-trade-api, then closing the position on the Alpaca website.

what you have to understand is that this repo is an integration between 2 different entities.
each entity manages its own resources (account, porfolio, positions, ..)
so when you change it on the web, you basically creating a difficult situation for the alpaca-backtrader instance, because the data is really stored on the alpaca servers. not on your local running instance.
one solution (which I actually tried before) is to always make sure the positions are synced
but, that creates an overload api requests to the servers.
now, there's another way for you get the exact and synced data, and it's by doing the api call from next()
so if you do this: self.broker.update_positions() you will get the exact position values even if you change it in the website

You have a point here, but I think the data should never be stale when performing live trading.
The fact that backtesting works and live trading does not, shows that some fundamental design needs to be reviewed, I am assuming here that this is not a library for backtesting only, but also for live trading. It is ok if we need to perform extra steps for live trading, but this is not documented.
The position is not the only problem, the notification updates for all the transactions are also not reported properly during live trading.
This is just my opinion as I am also interested in live trading and this library is great.

I just filled an order on the web and got the transaction inside the app
the entire processing of the transaction relies on having an order object attached to it.
and we don't. because we didn't generate the order inside the app
so we cannot process it.
so we cannot notify the user about the transaction

I have created a patch that updates the positions even if we didn't generate the order inside the app.
try it, and let me know if that helps you
it's in this PR:
https://github.com/alpacahq/alpaca-backtrader-api/pull/72
and you could install it like this:
pip install -U git+https://github.com/alpacahq/alpaca-backtrader-api@update_positions_outside_of_scope

Thanks for the follow up.
 I made a bracket order as shown in the code above. The main order was filled the other orders were still open. Cancelling the open orders did not update and closing the position did not update.
On the third try, the main order was filled but for some reason it did not update in the app.

@shlomikushchi Hey, I've been facing the same issue any help on how to solve it?

@shlomikushchi I was trying to review/understand "def _t_order_create(self):" and it seems like the store only stores the parent mapping and does not store the bracket child orders and thats why the status does not update the order properly.
Here's the line which maps the parent only.
self._ordersrev[oid] = oref  # maps ids to backtrader order
Any help would be greatly appreciated or lets us know how to map children ids and we update the code and test/valid.
Thanks in advance.
cc: @ichippa96

Hi guys, thanks for the input.
I'm working on this issue still.
I will update you once I have anything new

@shlomikushchi Thanks for the update.
We will try to update the children ids in the list and see how that works out for us. We will keep you posted as well.
Thanks

so the issue is that when we get the notification, we don't have a backtrader order object. this is because when it is created in the API it is a new order, not part of the backtrader bracket order.
so it is difficult to notify through the regular pipes (still trying)
but for now, I can notify you through notify_store. will this help you guys with the issue?

@shlomikushchi we managed to fix it by iterating through the legs of the parent order and assigning the child/legs order the parents ref as well.
`
def _t_order_create(self):
while True:
try:
# if self.q_ordercreate.empty():
#     continue
msg = self.q_ordercreate.get()
if msg is None:
break
oref, okwargs = msg
try:
o = self.oapi.submit_order(**okwargs)
except Exception as e:
self.put_notification(e)
self.broker._reject(oref)
return
            try:
                oid = o.id
            except Exception:
                if 'code' in o._raw:
                    self.put_notification(o.message)
                else:
                    self.put_notification(
                        "General error from the Alpaca server")
                self.broker._reject(oref)
                return
            self._orders[oref] = oid
            self.broker._submit(oref)
            if okwargs['type'] == 'market':
                self.broker._accept(oref)  # taken immediately

            oids=list()
            oids.append(oid)
            if o.legs is not None:
                for leg in o.legs:
                    oids.append(leg.id)

            self._orders[oref] = oids[0]
            self.broker._submit(oref)

            if okwargs['type'] == 'market':
                self.broker._accept(oref)  # taken immediately

            for oid in oids:
                self._ordersrev[oid] = oref  # maps ids to backtrader order

                # An transaction may have happened and was stored
                tpending = self._transpend[oid]
                tpending.append(None)  # eom marker
                while True:
                    trans = tpending.popleft()
                    if trans is None:
                        break
                    self._process_transaction(oid, trans)
        except Exception as e:
            print(str(e))

`

thanks, I will try it tomorrow when the market opens

@shlomikushchi Thanks!
We made progress and it works when the take/limit side is executed versus the stop side. When the stop is executed we get an issue processing replaced status of take/limit side. We tried to execute _cancel for the take/limit side but it's giving us an error. We are thinking of trying to either just do nothing (just return) or write a new cancel function to handle replaced order.
Thanks

Hi Guys, I created this PR that addresses this issue:
https://github.com/alpacahq/alpaca-backtrader-api/pull/77
thank you @arahmed24 @ichippa96 and Ibrahim for helping out with this issue.
it will be merged after I am sure it working correctly.


google pagespeed insights

we get an error for our nextjs app but only when run in pagespeed: _toConsumableArray is not a function in commons.js

Most of the apps I know works pretty well with google pagespeed insights.
I hope this is something to do with one of the module used in your app.
Please re-open with a sample app, if you think this is a Next.js issue.


Buffs on others don't display in triggers

When casting a buff on myself, the trigger gets recorded. However, when casting a buff on another, the trigger displays very briefly, and then disappears. This makes it not possible to see spells cast on others.
I've not noticed this problem with debuffs on npcs.
Captured a video for this along with my settings. You can see the buff on myself shows up, and the buff on my pet doesn't stick around.
https://imgur.com/a/HN42DXB

For some reason, all selections of classes for spells were unchecked. I checked them all and it seems to be ok now. I guess user error, but I don't recall unselecting things.


WIP: Bump kube-state-metrics to be synced with release-2.0 branch

/hold
We need the latest release to be finished for this and brought in via kube-prom and cluster-monitoring-operator.

Seems like a go 1.16 failure to me.

/retest

e2e-aws fails as we need to update the flag in cluster-monitoring-operator, for that we need a PR in kube-prom merged first.

/hold cancel
As the other PR was merged, this should go green soon 🤞
/retest

/lgtm

alert ClusterOperatorDegraded fired for 2 seconds with labels: {condition="Degraded", endpoint="metrics", instance="<IP_ADDRESS>:9099", job="cluster-version-operator", name="authentication", namespace="openshift-cluster-version", pod="cluster-version-operator-6578957bbf-qvvgv", reason="WellKnownReadyController_SyncError", service="cluster-version-operator", severity="critical"}
alert ClusterOperatorDown fired for 2 seconds with labels: {endpoint="metrics", instance="<IP_ADDRESS>:9099", job="cluster-version-operator", name="authentication", namespace="openshift-cluster-version", pod="cluster-version-operator-6578957bbf-qvvgv", service="cluster-version-operator", severity="critical", version="4.8.0-0.ci.test-2021-03-30-111545-ci-op-zkxwki30"}

But also see KubeStateMetricsListErrors, so will have a look at that one.

Seems like we do need the CMO PR first sadly.

E0330 11:37:56.623919       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:37:56.624749       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:37:57.509094       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:37:57.840826       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:37:59.443132       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:38:00.559926       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:38:03.855172       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:38:04.322615       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:38:11.271449       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:38:14.611353       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:38:28.432407       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:38:36.561326       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:39:03.677263       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:39:09.261757       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:39:48.309420       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:39:54.443850       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:40:23.513331       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:40:40.680031       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:41:09.840232       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:41:19.037118       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:41:52.536832       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:42:04.958054       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:42:30.145717       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:42:43.422949       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:43:23.805631       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:43:24.279045       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:44:02.720914       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:44:21.112036       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:44:53.156132       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:45:00.460135       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:45:43.638507       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:45:59.830656       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:46:41.450143       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:46:50.558179       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:47:28.005688       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:47:32.674114       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:48:16.729919       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:48:24.552103       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:48:54.570077       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:49:11.649515       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:49:46.659292       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:49:53.652978       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:50:31.597513       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:50:41.775312       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:51:21.235227       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:51:33.269044       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:52:03.660958       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:52:10.338964       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:52:34.588704       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:52:43.310995       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:53:15.669853       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:53:38.111882       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:53:56.103005       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:54:18.444615       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:54:33.698822       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:54:54.945225       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:55:20.360919       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:55:37.016723       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:56:05.558490       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:56:16.965956       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:56:38.330774       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:57:08.413516       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:57:15.865922       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:57:44.792929       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:58:14.224904       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:58:17.585983       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:58:57.172816       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 11:59:12.728157       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 11:59:37.374317       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:00:09.363076       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:00:14.466043       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:00:40.445894       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:01:06.329367       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:01:29.223944       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:01:38.505895       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:02:28.559956       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:02:33.476012       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:03:05.738886       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:03:25.964773       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:03:54.621961       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:04:14.931298       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:04:25.069804       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:04:46.999014       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:05:14.548090       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:05:42.049728       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:05:53.866097       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:06:37.050459       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:06:48.044669       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:07:07.626277       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:07:30.762026       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:07:50.609091       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:08:21.902292       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:08:27.907613       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:09:08.345337       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:09:11.690841       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:09:46.188953       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:10:06.752855       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:10:25.647405       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:11:03.747600       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:11:06.757365       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:11:56.850858       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:12:00.505412       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:12:33.361344       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:12:41.067289       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:13:12.683623       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:13:30.714602       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:13:53.228958       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:14:09.832353       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:14:43.379822       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:14:46.073368       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:15:35.301461       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:15:41.815516       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:16:30.240218       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:16:37.477283       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:17:27.535476       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:17:35.813984       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:18:06.196437       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:18:19.396187       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:19:04.755455       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:19:11.945358       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:19:59.309002       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:20:00.713754       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:20:46.011751       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:20:57.831181       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:21:38.978866       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:21:43.777370       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:22:13.912628       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:22:36.029499       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:22:52.133277       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:23:09.310819       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0330 12:23:29.847729       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Lease: failed to list *v1.Lease: leases.coordination.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"
E0330 12:23:44.442254       1 reflector.go:138] k8s.io/kube-state-metrics/internal/store/builder.go:358: Failed to watch *v1.Ingress: failed to list *v1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:openshift-monitoring:kube-state-metrics" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope

/retest

/retest

The PR fails because kube-state-metrics now requires to configure explicitly which labels should be included for the kube_node_labels metrics and some Telemetry rules depend on them.
/retest to clear out the permission issues.

/retest

/retest

at least the permission errors are gone now.


ENYO-5867: Switched Spinner away from pseudo-elements for animation fidelity

Checklist

[x] I have read and understand the contribution guide
[ ] A CHANGELOG entry is included
[ ] At least one test case is included for this feature or bug fix
[x] Documentation was added or is not needed
[ ] This is an API breaking change

Issue Resolved / Feature Added
On some devices, the spinner animation can get out-of-sync after props changes
Resolution
Due to the way DOM nodes are laid out in react, ::before and ::after pseudo-elements get rendered slightly later on some hardware. Being tardy-to-the-party means that their animations aren't perfectly in sync. The Spinner is (was) using 3 DOM nodes, the first 2 of which had 2 pseudo-elements each (for a total of 4), which compose the "fan" part of the Spinner. The ball was its own DOM node, so it never got out of sync with where it should have been; the DOM node and the pseudo-elements were rendering at different times, causing the effect.
By switching the pseudo-elements to real DOM nodes, they all get rendered at the same time, allowing them to stay in sync when props change on the component.

I clicked the knob checkboxes as furiously as I could but couldn't reproduce the bug any longer. :clap: :clap: @Djspaceg !


Does this work for grant_type authorization_code?

Hi,
This seems like it could really useful for other scenarios such as with grant_type authorization_code, I would have found this very useful when writing integration tests which use the WebapplicationFactory for integration testing.
Is this possible with FakeAuth?

Any Claim Type can be injected into the pipeline with FakeAuth. As long as it ends up in the Claims collection. 👍

@calebjenkins do you have any examples how one would do this?

@milkshakeuk - my understanding is that grant_type is typically, used in the auth flow with an IDP in order to get an access tokens, FakeAuth essentially jumps to the end of the auth flow and tell your application  - I'm authenticated and here are my claims. So I don't think you would need a "grant_type" claim in your list, since this is used in the auth flow, and not normally by your application directly. That being said - if you are building middleware and you want to validate that it's doing the right behavior given certain claims, you should be able to by adding it as a claim:
options.Claims.Add(new Claim("grant_type", "authorization_code"));
https://github.com/calebjenkins/FakeAuth/blob/main/Samples/FakeAuth.SampleWeb/Startup.cs#L43
More info: https://developer.okta.com/blog/2018/04/10/oauth-authorization-code-grant-type
Would be similar for authorization code.
Hope that helps!


[BUG] Azure Blob Storage: Unable to generate a SAS token for file that contain URL encoded char in its name

Describe the bug
When using the BlobSasBuilder to generate a SAS token for a file that contains URL encoded characters in its name, the file name defined in the signature does not contain the encoded character but their non-encoded version.
Expected behavior
The file name defined in the signature should be the same as the one provided to generate the SAS token.
It's good to know that the SAS token generated from the Azure portal for the same file is working as expected.
Actual behavior (include Exception or Stack Trace)
When generating a SAS token to access the file 123456%2E.json, the generated URI return the following error:
<?xml version="1.0" encoding="utf-8"?>
<Error>
    <Code>
        AuthenticationFailed
    </Code>
    <Message>
        Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
        RequestId:0fc6dc09-a01e-014f-2e57-0b502e000000
        Time:2021-02-25T09:19:05.2377243Z
    </Message>
    <AuthenticationErrorDetail>
        Signature did not match. String to sign used was r
        2021-02-25T08:55:51Z
        2021-02-26T08:55:51Z
        /blob/STORAGEACCOUNT_NAME/CONTAINER_NAME/FOLDER_NAME/123456..json
        2019-12-12
        b
    </AuthenticationErrorDetail>
</Error>

To Reproduce
Steps to reproduce the behavior (include a code snippet, screenshot, or any additional information that might help us reproduce the issue)
1.1 Generate a SAS token with the below code:
private string GetServiceSasUriForBlob(
    BlobClient blobClient,
    string storedPolicyName = null)
{
    var keyCredential = new StorageSharedKeyCredential(_blobServiceClient.AccountName, _accountKey);

    var sasBuilder = new BlobSasBuilder
    {
        BlobContainerName = blobClient.GetParentBlobContainerClient().Name,
        BlobName = blobClient.Name,
        Resource = "b"
    };

     if (storedPolicyName == null)
    {
        sasBuilder.ExpiresOn = DateTimeOffset.UtcNow.AddMinutes(5);
        sasBuilder.SetPermissions(BlobSasPermissions.Read);
    }
    else
    {
        sasBuilder.Identifier = storedPolicyName;
    }

    var sasQueryParameters = sasBuilder.ToSasQueryParameters(keyCredential);

    var uriBuilder = new UriBuilder
    {
        Scheme = "https",
        Host = $"{_blobServiceClient.AccountName}.blob.core.windows.net",
        Path = $"{sasBuilder.BlobContainerName}/{sasBuilder.BlobName}",
        Query = sasQueryParameters.ToString()
    };

    return uriBuilder.Uri.OriginalString;
}

1.2 Generate a SAS token from the Azure Storage Explorer for the specified file.
2. Try to use the generated URI to download the file.
Environment:

Azure.Storage.Blobs 12.8.0
.NET 5.0
Visual Studio 16..8.2
Microsoft Azure Storage Explorer 1.17.0

Just to clarify, is your blob name 123456%2E.json or 123456..json ?
But looks like your suspicions is on the right track. Looks like when we go to create the signature, we are calculating the signature based on the encoded character and not the unencoded character. I need to look at how it's handling the blob name and how we are sending it in the URI that way the signature can be calculated correctly.
Thanks for bringing this bug up.

Just to clarify, is your blob name 123456%2E.json or 123456..json ?

The blob name is 123456%2E.json

Hi @LudovicSiegenthaler, for your repo, try this instead:
    var sasQueryParameters = sasBuilder.ToSasQueryParameters(keyCredential);

    var uriBuilder = new UriBuilder(blobClient.Uri)
    {
        Sas = sasQueryParameters;
    }
    return uriBuilder.ToUri().ToString();

Please reopen if you have further questions.

I am facing the exact same issue and as per our advice tried the above however the UriBuilder has no Sas property or a ToUri, it has a Query parameter and a Uri parameter but have tried those.

@HarryPi Use the BlobUriBuilder instead and then call uriBuilder.Sas.ToString(). If there are any further questions please open up a new github issue.


[Bug] check_yaml_consistency broken after rename

Action
Help with the renaming of the project
See https://github.com/krzema12/github-workflows-kt/pull/490
Expected
The workflows should still run
Actual
check_yaml_consistency is broken for now
https://github.com/krzema12/github-workflows-kt/actions/runs/3243958793/jobs/5319436742#logs
Run git diff --exit-code '.github/workflows/build.yaml'
 # This file was generated using Kotlin DSL (.github/workflows/build.main.kts).
 # If you want to modify the workflow, please change the Kotlin file and regenerate this YAML file.
-# Generated with https://github.com/krzema12/github-workflows-kt
+# Generated with https://github.com/krzema12/github-actions-kotlin-dsl

Workaround, if exists
I don't know.
Library version
@file:DependsOn("it.krzeminski:github-actions-kotlin-dsl:0.28.0")

Weird, I cannot reproduce it. Let me close for now.


chore: bdd-spring-1593171386 to 0.0.1

chore: Promote bdd-spring-1593171386 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Add Mail/Messages Tint Color

There isn't necessarily a clean approach to this, but these links may help, or at least jog my memory.

Finally got around to adding support for this!


When UIButton is disabled, its text will never change.

Describe the bug
A clear and concise description of what the bug is.
When UIButton is disable, it cannot responds to click event. This is expected behavior. However, it should change its text even it is disabled.
To Reproduce
Steps to reproduce the behaviour:
Sample code:
import pygame
import pygame_gui

# Initialize pygame
pygame.init()

# Set up the display
window_size = (800, 600)
window_surface = pygame.display.set_mode(window_size)
pygame.display.set_caption('Button Click Example')

# Set up the GUI manager
manager = pygame_gui.UIManager(window_size)

# Create buttons
button1 = pygame_gui.elements.UIButton(relative_rect=pygame.Rect((300, 275), (200, 50)),
                                       text='0',
                                       manager=manager)
button2 = pygame_gui.elements.UIButton(relative_rect=pygame.Rect((300, 350), (200, 50)),
                                       text='Toggle Button1',
                                       manager=manager)

# Variables to track button1 state
button1_click_count = 0
button1_enabled = True

# Main loop
clock = pygame.time.Clock()
is_running = True

while is_running:
    time_delta = clock.tick(60) / 1000.0
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            is_running = False

        if event.type == pygame.USEREVENT:
            if event.user_type == pygame_gui.UI_BUTTON_PRESSED:
                if event.ui_element == button1:
                    button1_click_count += 1
                    button1.set_text(str(button1_click_count))
                elif event.ui_element == button2:
                    button1_enabled = not button1_enabled
                    button1.disable() if not button1_enabled else button1.enable() # !!! BUG, the disabled button1 never changed its disabled text caption

        manager.process_events(event)

    manager.update(time_delta)
    window_surface.fill((0, 0, 0))
    manager.draw_ui(window_surface)

    pygame.display.update()

pygame.quit()

When I click button1, its number will increase by 1.
When I click button2 to disable button1, the button always keep the number when the button1 is first disabled. I hope when the button1 is enabled and disabled multiple times, button1's disabled text is the last text when button1 is enabled.

Expected behaviour
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Platform and software (please complete the following information):

OS: [e.g. Windows 10]
Pygame GUI version [0.6.9]
Pygame version [2.6.0]

(venv) C:\chenchang\study\pygame_study>systeminfo | findstr /B /C:"OS Version"
OS Version:                10.0.19045 N/A Build 19045

(venv) C:\chenchang\study\pygame_study>python -V
Python 3.10.6

(venv) C:\chenchang\study\pygame_study>python -m pip list
Package     Version
----------- -------
pip         24.2
pygame      2.6.0
pygame-gui  0.6.9
python-i18n 0.3.9
setuptools  63.2.0

Additional context
Add any other context about the problem here.
I change the following code, and the behavior is my expected:
venv\Lib\site-packages\pygame_gui\core\drawable_shapes\drawable_shape.py

class DrawableShapeState:
    """
    Represents a single state of a drawable shape.

    :param state_id: The ID/name of this state.

    """
    def __init__(self, state_id: str):

        self.state_id = state_id
        self.surface = pygame.surface.Surface((0, 0), flags=pygame.SRCALPHA, depth=32)
        self.has_fresh_surface = False
        self.cached_background_id = None  # type: Union[str, None]
        self.transition = None  # type: Union[DrawableStateTransition, None]

        #self.should_auto_pregen = True #self.state_id != 'disabled'  # !!! THIS IS MY CHANGE: assign value is always True
        self.should_auto_pregen = self.state_id != 'disabled'
        self.generated = False

But I am not sure my change is appropriate for the whole library. Please verify the bug and fix it.

When I upgrade to pygame_gui 0.6.12, the bug is fixed.

Ok. I just double checked and this is still working as expected in main so I will close this now.


dual space key to space + ctrl config

Hi,
I used to use Karbiner/Seil before Sierra to make space held down to behave as ctrl. spacebar behaves as space on tap (not held down).
I didn't find the config option to do this in the elements repo, is this possible in elements?
Thanks and Regards,
ManjuXD

Not possible yet. Please follow discussion at #8.
Kindly close this issue.

@talha131 Thanks!

looks like its working now: #916


compose: Fix image fileName from uri for HEIC image files.

Copying the jsdoc comment I've written for fixFileNameFromUri:
/**
 * In 2017, Apple adopted a new standard image format, HEIF, which stands
 * for High Efficiency File Format; Apple photos are named with the '.heic'
 * extension. When an image file with the extension '.heic' is uploaded to the
 * server,the image becomes unviewable within a message list. Interestingly,
 * the `file` command line utility reports that images saved under this format
 * are JPEG files, so there's likely some pecularity with how the server handles
 * file uploads based on the extension.
 *
 * If an image file name has the '.heic' extension, and the uri of the image on a
 * mobile device has an extension for the JPEG format, fixFileNameFromUri replaces
 * that extension with '.jpeg'.
 */

This resolves #2178.
@gnprice

Merged -- thanks @jackrzhang !
I added a change to give the helper a perhaps more meaningful name, and revise the jsdoc accordingly.


Remove deprecated dexOptions gradle property

This PR removes the deprecated gradle property dexOptions, which will be removed with Gradle 8.0.
Warning in Android Studio:
DSL element 'dexOptions' is obsolete and should be removed.
It will be removed in version 8.0 of the Android Gradle plugin.
Using it has no effect, and the AndroidGradle plugin optimizes dexing automatically.
Affected Modules: react-native-mmkv

Resolves #437

Thanks for merging @mrousavy . When are you planning the next release?

Uhm, this is just a warning right? So nothing breaks? No need for a new release right now, I'll do that when a bugfix or a feature lands.

Yes, just a warning. I just wanted to see if you already have plans for next release to prio when to bump it on our side, but if not, it's also fine, will wait for 👍 Happy holidays!


Need apk on Tribe RGB

[ ] @cakesoft-shashank Can you create apk file so that it could be added on website
[x] Need to give a option for Download APK on website

Please find apk download links in github releases: https://github.com/bithyve/bitcoin-tribe/releases

Completed


NodePort broken when no of the backend endpoints are local

All Cilium versions
All kernel versions
Kubernetes

The issue seems to be that kube-proxy DNATed packets sometimes get SNATed with the private router IP <IP_ADDRESS> instead of the NodeIP

#2032  does not fix the issue @tgraf  @eloycoto

#2032 does not fix the issue @tgraf @eloycoto

@f0  Should be fixed in master, #2112 was required as well.


[std, framework] Adds "buffer" module to std

Description
Adds std::buffer module for aggregating any data.
Test Plan
TBD
Type of Change (Check all that apply)

[ ] protocol change
[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

adds the std::buffer module for aggregating data (intended use within PTB)

I have similar concerns as @tzakian about the general usefulness.
I think also that long term this feels like something you might just want a macro for with vector
Something like
macro fun exact_size<T>(n: u64, $f: |&mut vector<T>|) {
  let v = vector[];
  $f(&mut v);
  assert!(v.length() == n, 42);
}

@tnowacki, I believe the background here is that Buffer is used to accumulate values on chain when the end result is bigger than could fit in a single transaction payload (like sending parts up to the ISS in separate rockets and assembling it in space), so a macro wouldn't work.
In terms of general usefulness, I'm not sure, I would tend to rely on @damirka's anecdotal evidence for that, given that I think he's used this in anger multiple times already, but I did have similar reservations to other folks about whether it is so universally useful to be included in stdlib or sui.
Given it's free-standing, I would much prefer for us to work on a policy for us to share utility libraries freely on-chain, but under their own Package IDs, and come up with a solution to address the trust aspect of depending on a random on-chain package.

Needs more discussion, closing for now.


Add test that check if edition is set in scarb packages.

Which components does the task require to be changed? (think hard pls)
snforge, sncast
Description
From version 2.9.0, Scarb will give a warning `edition` field not set in `[package]` section for package if the edition is not set.

Add proper test that check output of new scarb

Relates: #2649

Please can I work on this @kkawula

@ShantelPeters Hey, thanks for applying, however we mostly accept applications for tasks marked with "help wanted" or "good first issue" label.


Missing period at the end of a comment in the function header caused …

…a build break. Fixing that.

Hi @nizarq, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, MSBOT;


PyVRP version pin

We currently depend on some changes on top of PyVRP to support dispatch windows. These changes live on main in @leonlan's fork here. That's somewhat fragile for two reasons:

main is a moving target, so a few months down the line this version of the codebase is no longer the one we used for the DDWP paper. We do pin the revision, but this implicitly assumes the fork will have a main that has a different history from upstream PyVRP forever. In any case, we must ensure the fork remains compatible with this repository, and that seems like an annoying compatibility guarantee.
This repo is not standalone 'enough'.

I propose we merge main from Leon's PyVRP fork into a pyvrp branch in this repository, and explicitly depend on that branch in our pyproject.toml. I think something like branch = "pyvrp" should work there. That ensures this repo is completely standalone.

@leonlan what do you think?

Yeah branches are possible: https://python-poetry.org/docs/dependency-specification/#git-dependencies.

To understand it better: pyproject.toml currently points to a specific revision, so it doesn't really matter whether the fork's main is moving or not, right? Your suggestion to have a pyvrp branch on this repository would still require to pin the pyproject.toml to some revision, assuming that this repository might be updated in the future.
But overall I agree that it's better to have pyvrp in this repository rather than my fork.

pyproject.toml currently points to a specific revision, so it doesn't really matter whether the fork's main is moving or not, right?

Unless at some point you might want to remove that repo, or remove and pull main again from upstream, or do anything else that breaks that dependency. It's somewhat hard to predict what might happen, and this dependency is not explicit in the fork either.

Your suggestion to have a pyvrp branch on this repository would still require to pin the pyproject.toml to some revision, assuming that this repository might be updated in the future.

I'm assuming we're archiving this repository after publication - and then it's nicely self-contained. Or do you have plans to work on this beyond the paper?

I'm assuming we're archiving this repository after publication - and then it's nicely self-contained. Or do you have plans to work on this beyond the paper?

Maybe, but now thinking about it again, I think it's better to have this repo (publically) archived and then continue that other project with a cloned repository. So yes, let's do what you suggested :-)

Sounds good!


Fix ctc codestyle

I fixed code style of CTC

Would you like to be to return sum of forward_prob_trans and backward_prob_trans in calc_trans?

LGTM!


Some more information about disabling PowerShell connectivity

One of the Miscellaneous/non-policy settings is to disable PowerShell connectivity. Can we have some more information about what is meant here, is that PowerShell connectivity for all, or just for mailboxes ?
Thanks in advance

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0a4f6b67-85ac-ef6e-5260-6ae160cfd6d8
Version Independent ID: b4ae42b8-dd36-9f18-092b-af0b55b3c0fb
Content: Best practices for configuring EOP and Office 365 ATP - Office 365
Content Source: microsoft-365/security/office-365-security/best-practices-for-configuring-eop.md
Service: o365-seccomp
GitHub Login: @MSFTTracyP
Microsoft Alias: tracyp

@kennethvs, I updated the topic with a link to the 'how to' procedure and some notes.
In the cloud, you enable/disable PowerShell access via the Set-User cmdlet, so recipient objects that are returned by the Get-User cmdlet are viable. Basically, you're talking about mailboxes with associated user accounts, and also mail users (mail-enabled users).
Thanks for the feedback.


Scope slot "close" throw error

Hi, the close scoped slot throwing an error
Uncaught TypeError: _ctx.close is not a function
any idea?

I have the latest version and I still have this issue. Any updates?


CORTEX_M0_FT32F072_KEIL

Add a new demo.
This directory contains an FT32F072XX demo project (ARM compiler V6.16) for FT32F072XX StarterKit board equipped with FT32F072XX microcontroller (128 KB Flash and 8 KB SRAM or 128 KB Flash and 24 KB SRAM).
The project comes with two different demos. One is standard demo tasks and the other is normal demo.
See the readme.md for detail.

Thank you for the PR.
Please review the core-checks and either fix the license or add the file to the ignore list.

Please move this demo to the community supported demos repo - https://github.com/FreeRTOS/FreeRTOS-Community-Supported-Demos


Automatically determine the DHCP dynamic range on the virtual bridge.

This lays the foundation for supporting configurable subnets.  It also hardens the code a bit because the virtual bridge will actually get reconfigured if its configuration doesn't contain the correct IP or DHCP range. Previously it was reconfigured only if STP was ON.
CC: @simonartxavier @bn222

Let's make the whole bridge a seperate class that you can interact with. You can then add the config to it and tell it to configure a system.

Let's make the whole bridge a separate class you can interact with. You can then add the config and then tell it to configure a system.

I may have went a bit over board.. In any case, I opened a new PR as the changes are more than just DHCP related now.  Closing this one in favor of #132.


[stable/prometheus] Use git-sync for alert rules

Is this a request for help?: No
Is this a BUG REPORT or FEATURE REQUEST? (choose one): Feature request

Hello, I'm investigating ways to make it easier for our teams to set up their own alerts in prometheus. I know we can use extraConfigMapMounts, but I would like a little more flexibility.
I've been thinking of configuring git-sync as a sidecar container and store the alerting rules in a git repo. Is this a good approach? Would this feature be accepted upstream?

Another (could complement each other) approach could be the sidecar concept and configmaps with given annotations, like for dashboards and datasources in grafana: https://github.com/kubernetes/charts/tree/master/stable/grafana

I like the way grafana does it, and also found git2kube.
Judging by the example this tool was written for this exact purpose. I'll try to integrate the k8s-sidecar container with the prometheus chart in the following days.

The sidecar is a better way because then different teams can publish their rules (with for instance helm for their app) but get it in centrally, rather than having to rely on ONE git repo which can have an organizational burden

I tried to implement the sidecar concept from the grafana chart, but I've hit a few issues:

Can't trigger a prometheus reload through the configmap-reload container because there's no ..data directory because I'm not mounting the configmap directly.
Rules aren't always loaded at startup, I suspect it's because both the prometheus-server and sidecar containers start up at the same time.

The code is in https://github.com/codertux/charts/tree/prometheus-sidecar if anyone wants to take a look. I'm open to suggestions / ideas.

Is it possible to get a hook/callback triggered when new rules are written? Look at https://github.com/prometheus/prometheus/issues/1866 / https://www.robustperception.io/reloading-prometheus-configuration/

I was hoping that the configmap-reload container would use the HTTP api to reload prometheus, but it's not detecting the changes because the directory is not actually a configmap mount.


Fix button with chosen answer on Question page (should turn and STAY yellow)

https://github.com/sopra-fs23-group-39/sopra-client/commit/4147b84db4253bb6be44a49ddcd2d62aa8dfd089


Investigate IncrementalIndex ValueMatcher performance

@leventov raised a concern in review of #3797 that even though IncrementalIndex ValueMatcher benchmarks look fine, this may not hold up in production when different strategy types are mixed. We should endeavor to write a better benchmark that smokes out any potential performance regressions, and if regressions are found, fix them before release of 0.10.0. I think FilteredAggregatorFactory benchmarks are a good place to try to verify this.
See review comment in https://github.com/druid-io/druid/pull/3797#discussion_r93735214 and response in https://github.com/druid-io/druid/pull/3797#discussion_r93792025.

Shouldn't this issue be called like "Make benchmarks to emulate non-uniformity of production queries"?
However this work will be made obsolete by #3798, because the essence of #3798 is specifically getting rid of megamorphism inside hot query processing loops, that makes production to perform just like mono-query benchmarks. But #3798 almost certainly won't be part of 0.10.0, because it is 10-15 PRs away from completion. And propagating this optimization to types of queries different from topN will take even longer.
And also because adding DimensionSelector.makeValueMatcher() is a useful optimization with or without #3798, I suggest to add it before 0.10.0 to ensure there is no performance regression in this area in 0.10.0. While preparing, running and verifying proper benchmarks for 0.10.0 is a lot of work, that will be obsolete soon.

I think "Make benchmarks to emulate non-uniformity of production queries" is too broad to be a github issue (how would you know when you fully achieved that?) so would prefer to make issues for smaller things where it's clear when they are achieved. It sounds like you are suggesting to not do benchmarks but to just do the optimization anyway, is that right?
Also, could you please write up a proposal about what changes you need to make #3798 work? It seems like whatever changes you are making there are likely to have code conflicts with work that @jon-wei is doing to follow up on #3570, to handle grouping on more types than just strings (bringing even more polymorphism to the query path).
The goal would be to get both of those efforts moving in the same direction.

Yes, I suggest to not do benchmarks, because this work (very time-consuming) will be obsoleted soon. So yes, I suggest to "blindly" do some optimization before 0.10.0 to have the same level of ValueMatcher specialization we had before #3797.
Definitely there will be some code conflicts between #3798 and #3570 follow-ups, but they are not going to be very big, those works are not contradictory. So either I or @jon-wei will need to rebase, depending on whose work is merged into master first. Adding more polymorphism is not a problem for #3798, because it's job is to turn any level of polymorphism into monomorphism.

Regarding this optimization, DimensionSelector.makeValueMatcher(), I'm ready to do it myself.

Ok, that'd be helpful. Hopefully the optimization doesn't blow up the code size too badly.
I'd still really like to see at least a sketch of a proposal of #3798 – I'm curious what approach you plan on taking.

@gianm see https://github.com/druid-io/druid/issues/3798#issuecomment-269045047