mirror of
https://github.com/siderolabs/talos.git
synced 2025-12-16 15:01:18 +01:00
fix: update COSI and reset restart backoff on success
See https://github.com/cosi-project/runtime/pull/191 Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
This commit is contained in:
parent
e92fdcbad1
commit
a505b8909a
10
go.mod
10
go.mod
@ -40,7 +40,7 @@ require (
|
||||
github.com/containernetworking/plugins v1.1.1
|
||||
github.com/coreos/go-iptables v0.6.0
|
||||
github.com/coreos/go-semver v0.3.0
|
||||
github.com/cosi-project/runtime v0.2.0
|
||||
github.com/cosi-project/runtime v0.3.0-alpha.0
|
||||
github.com/docker/distribution v2.8.1+incompatible
|
||||
github.com/docker/docker v20.10.21+incompatible
|
||||
github.com/docker/go-connections v0.4.0
|
||||
@ -90,7 +90,7 @@ require (
|
||||
github.com/siderolabs/crypto v0.4.0
|
||||
github.com/siderolabs/discovery-api v0.1.1
|
||||
github.com/siderolabs/discovery-client v0.1.3
|
||||
github.com/siderolabs/gen v0.4.1
|
||||
github.com/siderolabs/gen v0.4.2
|
||||
github.com/siderolabs/go-blockdevice v0.4.2
|
||||
github.com/siderolabs/go-circular v0.1.0
|
||||
github.com/siderolabs/go-cmd v0.1.1
|
||||
@ -123,7 +123,7 @@ require (
|
||||
go.etcd.io/etcd/etcdutl/v3 v3.5.6
|
||||
go.uber.org/atomic v1.10.0
|
||||
go.uber.org/multierr v1.8.0
|
||||
go.uber.org/zap v1.23.0
|
||||
go.uber.org/zap v1.24.0
|
||||
go4.org/netipx v0.0.0-20220925034521-797b0c90d8ab
|
||||
golang.org/x/net v0.2.0
|
||||
golang.org/x/sync v0.1.0
|
||||
@ -199,7 +199,7 @@ require (
|
||||
github.com/gorilla/mux v1.8.0 // indirect
|
||||
github.com/gosuri/uilive v0.0.4 // indirect
|
||||
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.13.0 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.14.0 // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
|
||||
github.com/hashicorp/go-memdb v1.3.4 // indirect
|
||||
@ -279,7 +279,7 @@ require (
|
||||
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect
|
||||
golang.org/x/crypto v0.1.0 // indirect
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
|
||||
golang.org/x/oauth2 v0.1.0 // indirect
|
||||
golang.org/x/oauth2 v0.2.0 // indirect
|
||||
golang.org/x/text v0.4.0 // indirect
|
||||
golang.org/x/tools v0.1.12 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
|
||||
|
||||
20
go.sum
20
go.sum
@ -312,8 +312,8 @@ github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzA
|
||||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/cosi-project/runtime v0.2.0 h1:4jzNWoftvsHCU3pv49mzmALc6iaXfNwMpRD2U9LSfqE=
|
||||
github.com/cosi-project/runtime v0.2.0/go.mod h1:6KLUKBiwLpZNOi4opnz96v6HDl8VUGnTiyCFeqSzQJQ=
|
||||
github.com/cosi-project/runtime v0.3.0-alpha.0 h1:Jd8CAOG/FXliVPmKQ+TrVjjzUCRhuHevLXoxXaOLv+I=
|
||||
github.com/cosi-project/runtime v0.3.0-alpha.0/go.mod h1:5PyAjBqrjRRqobGHBIImQAek/XwLYx+cc3UjxA2Y3jc=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
|
||||
@ -591,8 +591,8 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.13.0 h1:fi9bGIUJOGzzrHBbP8NWbTfNC5fKO6X7kFw40TOqGB8=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.13.0/go.mod h1:uY3Aurq+SxwQCpdX91xZ9CgxIMT1EsYtcidljXufYIY=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.14.0 h1:t7uX3JBHdVwAi3G7sSSdbsk8NfgA+LnUS88V/2EKaA0=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.14.0/go.mod h1:4OGVnY4qf2+gw+ssiHbW+pq4mo2yko94YxxMmXZ7jCA=
|
||||
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
|
||||
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
|
||||
github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
@ -1013,8 +1013,8 @@ github.com/siderolabs/discovery-api v0.1.1 h1:DI+CjD/Nl0nIk8qkaNKz1sEquWTEKHKH4+
|
||||
github.com/siderolabs/discovery-api v0.1.1/go.mod h1:JnJg4h1HbAhOazQl0lYHEjrg63rg/cf9r2te6/DqUxo=
|
||||
github.com/siderolabs/discovery-client v0.1.3 h1:DsiH2aiObxHGJISLXxih4q+NmSixUzxRegNjLlRC8s4=
|
||||
github.com/siderolabs/discovery-client v0.1.3/go.mod h1:4ahEk2dMPKAGCLK5sRUxHfVryROxflwDPL+2c5MrLMI=
|
||||
github.com/siderolabs/gen v0.4.1 h1:NoPmxjLFwOGRFaKypk2hoT5/XIzoM6AhF0eqy61bQLk=
|
||||
github.com/siderolabs/gen v0.4.1/go.mod h1:wS8tFq7sn5vqKAuyS30vJUig3tX5v6q79VG4KfUnILM=
|
||||
github.com/siderolabs/gen v0.4.2 h1:25z0dRKymC8uFxHfOWc3GKTCpK058u4FvOYLmfeQTfw=
|
||||
github.com/siderolabs/gen v0.4.2/go.mod h1:wS8tFq7sn5vqKAuyS30vJUig3tX5v6q79VG4KfUnILM=
|
||||
github.com/siderolabs/go-api-signature v0.2.2 h1:C5tUzuFsJYidpYyVfJGYpgQwETglA8B62ET4obkLDGE=
|
||||
github.com/siderolabs/go-api-signature v0.2.2/go.mod h1:9jSRiJsuKyf6b/hyKcBgCZXvu7xGJ+RiCQQAVraGdN0=
|
||||
github.com/siderolabs/go-blockdevice v0.4.2 h1:ZA8rds0Ge/7ScNCAchK/wVJs0mmdphu4OZncirYaFyk=
|
||||
@ -1232,8 +1232,8 @@ go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
|
||||
go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
|
||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
|
||||
go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY=
|
||||
go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY=
|
||||
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
|
||||
go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
|
||||
go4.org/netipx v0.0.0-20220925034521-797b0c90d8ab h1:+yW1yrZ09EYNu1spCUOHBBNRbrLnfmutwyhbhCv3b6Q=
|
||||
go4.org/netipx v0.0.0-20220925034521-797b0c90d8ab/go.mod h1:tgPU4N2u9RByaTN3NC2p9xOzyFpte4jYwsIIRF7XlSc=
|
||||
golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
@ -1360,8 +1360,8 @@ golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4Iltr
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
|
||||
golang.org/x/oauth2 v0.1.0 h1:isLCZuhj4v+tYv7eskaN4v/TM+A1begWWgyVJDdl1+Y=
|
||||
golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A=
|
||||
golang.org/x/oauth2 v0.2.0 h1:GtQkldQ9m7yvzCL1V+LrYow3Khe0eJH0w7RbX/VbaIU=
|
||||
golang.org/x/oauth2 v0.2.0/go.mod h1:Cwn6afJ8jrQwYMxQDTpISoXmXW9I6qF6vDeuuoX3Ibs=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
|
||||
@ -106,5 +106,7 @@ func (ctrl *AffiliateMergeController) Run(ctx context.Context, r controller.Runt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -144,5 +144,7 @@ func (ctrl *ConfigController) Run(ctx context.Context, r controller.Runtime, log
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -320,6 +320,8 @@ func (ctrl *DiscoveryServiceController) Run(ctx context.Context, r controller.Ru
|
||||
if err := cleanupAffiliates(ctx, ctrl, r, touchedIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -91,5 +91,7 @@ func (ctrl *EndpointController) Run(ctx context.Context, r controller.Runtime, l
|
||||
); err != nil {
|
||||
return fmt.Errorf("error updating endpoints: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -171,5 +171,7 @@ func (ctrl *KubernetesPullController) Run(ctx context.Context, r controller.Runt
|
||||
if err := cleanupAffiliates(ctx, ctrl, r, touchedIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -140,5 +140,7 @@ func (ctrl *KubernetesPushController) Run(ctx context.Context, r controller.Runt
|
||||
return fmt.Errorf("error pushing to Kubernetes registry: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -296,5 +296,7 @@ func (ctrl *LocalAffiliateController) Run(ctx context.Context, r controller.Runt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -104,5 +104,7 @@ func (ctrl *MemberController) Run(ctx context.Context, r controller.Runtime, log
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -125,5 +125,7 @@ func (ctrl *NodeIdentityController) Run(ctx context.Context, r controller.Runtim
|
||||
|
||||
ctrl.identityEstablished = true
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -75,5 +75,7 @@ func (ctrl *MachineTypeController) Run(ctx context.Context, r controller.Runtime
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error updating objects: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -99,5 +99,7 @@ func (ctrl *SeccompProfileController) Run(ctx context.Context, r controller.Runt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -165,6 +165,8 @@ func (ctrl *SeccompProfileFileController) Run(ctx context.Context, r controller.
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -109,6 +109,8 @@ func (ctrl *AdvertisedPeerController) Run(ctx context.Context, r controller.Runt
|
||||
if err = ctrl.updateAdvertisedPeers(ctx, logger, etcdSpec.TypedSpec().AdvertisedAddresses); err != nil {
|
||||
return fmt.Errorf("error updating advertised peers: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -118,6 +118,8 @@ func (ctrl *ConfigController) Run(ctx context.Context, r controller.Runtime, log
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error updating Config status: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -94,6 +94,8 @@ func (ctrl *MemberController) Run(ctx context.Context, r controller.Runtime, log
|
||||
return fmt.Errorf("error destroying etcd member resource: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -144,5 +144,7 @@ func (ctrl *PKIController) Run(ctx context.Context, r controller.Runtime, logger
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error updating PKI status: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -192,5 +192,7 @@ func (ctrl *SpecController) Run(ctx context.Context, r controller.Runtime, logge
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error updating Spec status: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,5 +88,7 @@ func (ctrl *CRIConfigPartsController) Run(ctx context.Context, r controller.Runt
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error modifying resource: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -127,6 +127,8 @@ func (ctrl *CRIRegistryConfigController) Run(ctx context.Context, r controller.R
|
||||
if err := ctrl.syncHosts(shadowPath, criHosts); err != nil {
|
||||
return fmt.Errorf("error syncing hosts: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -161,6 +161,8 @@ func (ctrl *EtcFileController) Run(ctx context.Context, r controller.Runtime, lo
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -137,5 +137,7 @@ func (ctrl *AddressFilterController) Run(ctx context.Context, r controller.Runti
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -144,6 +144,8 @@ func (ctrl *ControlPlaneController) Run(ctx context.Context, r controller.Runtim
|
||||
return fmt.Errorf("error updating objects: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -207,6 +207,8 @@ func (ctrl *ControlPlaneStaticPodController) Run(ctx context.Context, r controll
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -101,6 +101,8 @@ func (ctrl *EndpointController) Run(ctx context.Context, r controller.Runtime, l
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -138,6 +138,8 @@ func (ctrl *ExtraManifestController) Run(ctx context.Context, r controller.Runti
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -96,6 +96,8 @@ func (ctrl *KubeletConfigController) Run(ctx context.Context, r controller.Runti
|
||||
); err != nil {
|
||||
return fmt.Errorf("error modifying KubeletConfig resource: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -205,6 +205,8 @@ func (ctrl *KubeletServiceController) Run(ctx context.Context, r controller.Runt
|
||||
if err = ctrl.V1Alpha1Services.Start("kubelet"); err != nil {
|
||||
return fmt.Errorf("error starting kubelet service: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -199,6 +199,8 @@ func (ctrl *KubeletSpecController) Run(ctx context.Context, r controller.Runtime
|
||||
); err != nil {
|
||||
return fmt.Errorf("error modifying KubeletSpec resource: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -159,6 +159,8 @@ func (ctrl *KubeletStaticPodController) Run(ctx context.Context, r controller.Ru
|
||||
if err != nil {
|
||||
return fmt.Errorf("error building kubelet client: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -141,6 +141,8 @@ func (ctrl *ManifestController) Run(ctx context.Context, r controller.Runtime, l
|
||||
return fmt.Errorf("error cleaning up manifests: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -173,6 +173,8 @@ func (ctrl *ManifestApplyController) Run(ctx context.Context, r controller.Runti
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error updating manifest status: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -99,5 +99,7 @@ func (ctrl *NodeLabelSpecController) Run(ctx context.Context, r controller.Runti
|
||||
return fmt.Errorf("error destroying node label spec: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,6 +86,8 @@ func (ctrl *NodeLabelsApplyController) Run(ctx context.Context, r controller.Run
|
||||
if err := ctrl.reconcileWithK8s(ctx, r, logger); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -146,5 +146,7 @@ func (ctrl *NodeIPController) Run(ctx context.Context, r controller.Runtime, log
|
||||
); err != nil {
|
||||
return fmt.Errorf("error modifying NodeIP resource: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -116,6 +116,8 @@ func (ctrl *NodeIPConfigController) Run(ctx context.Context, r controller.Runtim
|
||||
); err != nil {
|
||||
return fmt.Errorf("error modifying NodeIPConfig resource: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -106,5 +106,7 @@ func (ctrl *NodenameController) Run(ctx context.Context, r controller.Runtime, l
|
||||
); err != nil {
|
||||
return fmt.Errorf("error modifying nodename resource: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -166,6 +166,8 @@ func (ctrl *RenderConfigsStaticPodController) Run(ctx context.Context, r control
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -315,5 +315,7 @@ func (ctrl *RenderSecretsStaticPodController) Run(ctx context.Context, r control
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -127,5 +127,7 @@ func (ctrl *StaticPodConfigController) Run(ctx context.Context, r controller.Run
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -93,6 +93,8 @@ func (ctrl *StaticPodServerController) Run(ctx context.Context, r controller.Run
|
||||
ctrl.podList = staticPodList
|
||||
ctrl.podListMu.Unlock()
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -109,5 +109,7 @@ func (ctrl *ConfigController) Run(ctx context.Context, r controller.Runtime, log
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -128,6 +128,8 @@ func (ctrl *EndpointController) Run(ctx context.Context, r controller.Runtime, l
|
||||
if err = ctrl.updateTalosEndpoints(ctx, logger, kubeconfig, endpointAddrs); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -177,6 +177,8 @@ func (ctrl *CRDController) Run(ctx context.Context, r controller.Runtime, logger
|
||||
logger,
|
||||
)
|
||||
}()
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -104,5 +104,7 @@ func (ctrl *ConfigController) Run(ctx context.Context, r controller.Runtime, log
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -133,5 +133,7 @@ func (ctrl *EndpointController) Run(ctx context.Context, r controller.Runtime, l
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,5 +149,7 @@ func (ctrl *IdentityController) Run(ctx context.Context, r controller.Runtime, l
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -389,6 +389,8 @@ func (ctrl *ManagerController) Run(ctx context.Context, r controller.Runtime, lo
|
||||
|
||||
if !updateSpecs {
|
||||
// micro-optimization: skip updating specs if there are no changes to the incoming resources and no endpoint changes
|
||||
r.ResetRestartBackoff()
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
@ -500,6 +502,8 @@ func (ctrl *ManagerController) Run(ctx context.Context, r controller.Runtime, lo
|
||||
if err = nfTablesMgr.Update(allowedIPsSet); err != nil {
|
||||
return fmt.Errorf("failed updating nftables: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -192,6 +192,8 @@ func (ctrl *PeerSpecController) Run(ctx context.Context, r controller.Runtime, l
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -150,6 +150,8 @@ func (ctrl *AddressConfigController) Run(ctx context.Context, r controller.Runti
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -110,5 +110,7 @@ func (ctrl *AddressEventController) Run(ctx context.Context, r controller.Runtim
|
||||
Hostname: hostname,
|
||||
Addresses: addresses,
|
||||
})
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -136,5 +136,7 @@ func (ctrl *AddressMergeController) Run(ctx context.Context, r controller.Runtim
|
||||
if conflictsDetected > 0 {
|
||||
return fmt.Errorf("%d conflict(s) detected", conflictsDetected)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,6 +112,8 @@ func (ctrl *AddressSpecController) Run(ctx context.Context, r controller.Runtime
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -142,5 +142,7 @@ func (ctrl *AddressStatusController) Run(ctx context.Context, r controller.Runti
|
||||
return fmt.Errorf("error deleting address status %s: %w", res, err)
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -151,6 +151,8 @@ func (ctrl *DeviceConfigController) Run(ctx context.Context, r controller.Runtim
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -149,6 +149,8 @@ func (ctrl *EtcFileController) Run(ctx context.Context, r controller.Runtime, lo
|
||||
return fmt.Errorf("error modifying resolv.conf: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -102,5 +102,7 @@ func (ctrl *HardwareAddrController) Run(ctx context.Context, r controller.Runtim
|
||||
return fmt.Errorf("error deleting resource %q: %w", id, err)
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -170,6 +170,8 @@ func (ctrl *HostnameConfigController) Run(ctx context.Context, r controller.Runt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -118,5 +118,7 @@ func (ctrl *HostnameMergeController) Run(ctx context.Context, r controller.Runti
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -116,5 +116,7 @@ func (ctrl *HostnameSpecController) Run(ctx context.Context, r controller.Runtim
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -227,6 +227,8 @@ func (ctrl *LinkConfigController) Run(ctx context.Context, r controller.Runtime,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -152,5 +152,7 @@ func (ctrl *LinkMergeController) Run(ctx context.Context, r controller.Runtime,
|
||||
if conflictsDetected > 0 {
|
||||
return fmt.Errorf("%d conflict(s) detected", conflictsDetected)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -126,6 +126,8 @@ func (ctrl *LinkSpecController) Run(ctx context.Context, r controller.Runtime, l
|
||||
if err = multiErr.ErrorOrNil(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -116,6 +116,8 @@ func (ctrl *LinkStatusController) Run(ctx context.Context, r controller.Runtime,
|
||||
if err = ctrl.reconcile(ctx, r, logger, conn, ethClient, ethIoctlClient, wgClient); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -243,6 +243,8 @@ func (ctrl *NodeAddressController) Run(ctx context.Context, r controller.Runtime
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -290,6 +290,8 @@ func (ctrl *OperatorConfigController) Run(ctx context.Context, r controller.Runt
|
||||
if err = specErrors.ErrorOrNil(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -136,5 +136,7 @@ func (ctrl *OperatorMergeController) Run(ctx context.Context, r controller.Runti
|
||||
if conflictsDetected > 0 {
|
||||
return fmt.Errorf("%d conflict(s) detected", conflictsDetected)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -178,6 +178,8 @@ func (ctrl *OperatorSpecController) Run(ctx context.Context, r controller.Runtim
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -163,6 +163,8 @@ func (ctrl *OperatorVIPConfigController) Run(ctx context.Context, r controller.R
|
||||
if err = specErrors.ErrorOrNil(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -197,6 +197,8 @@ func (ctrl *PlatformConfigController) Run(ctx context.Context, r controller.Runt
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -127,6 +127,8 @@ func (ctrl *ResolverConfigController) Run(ctx context.Context, r controller.Runt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -126,5 +126,7 @@ func (ctrl *ResolverMergeController) Run(ctx context.Context, r controller.Runti
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -103,5 +103,7 @@ func (ctrl *ResolverSpecController) Run(ctx context.Context, r controller.Runtim
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,6 +145,8 @@ func (ctrl *RouteConfigController) Run(ctx context.Context, r controller.Runtime
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -134,5 +134,7 @@ func (ctrl *RouteMergeController) Run(ctx context.Context, r controller.Runtime,
|
||||
if conflictsDetected > 0 {
|
||||
return fmt.Errorf("%d conflict(s) detected", conflictsDetected)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -115,6 +115,8 @@ func (ctrl *RouteSpecController) Run(ctx context.Context, r controller.Runtime,
|
||||
if err = multiErr.ErrorOrNil(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -141,5 +141,7 @@ func (ctrl *RouteStatusController) Run(ctx context.Context, r controller.Runtime
|
||||
return fmt.Errorf("error deleting route status %q: %w", id, err)
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -136,5 +136,7 @@ func (ctrl *StatusController) Run(ctx context.Context, r controller.Runtime, log
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error modifying output status: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -126,6 +126,8 @@ func (ctrl *TimeServerConfigController) Run(ctx context.Context, r controller.Ru
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -126,5 +126,7 @@ func (ctrl *TimeServerMergeController) Run(ctx context.Context, r controller.Run
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -108,5 +108,7 @@ func (ctrl *TimeServerSpecController) Run(ctx context.Context, r controller.Runt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -77,6 +77,8 @@ func (ctrl *StatsController) Run(ctx context.Context, r controller.Runtime, logg
|
||||
if err := ctrl.updateCPU(ctx, r, &fs); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -101,5 +101,7 @@ func (ctrl *KernelModuleConfigController) Run(ctx context.Context, r controller.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -76,5 +76,7 @@ func (ctrl *KernelModuleSpecController) Run(ctx context.Context, r controller.Ru
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,5 +112,7 @@ func (ctrl *KernelParamConfigController) Run(ctx context.Context, r controller.R
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -148,6 +148,8 @@ func (ctrl *KernelParamSpecController) Run(ctx context.Context, r controller.Run
|
||||
return errs
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -163,6 +163,8 @@ func (ctrl *KmsgLogDeliveryController) Run(ctx context.Context, r controller.Run
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error sending logs: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -151,6 +151,8 @@ func (ctrl *MachineStatusController) Run(ctx context.Context, r controller.Runti
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error updating machine status: %w", err)
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -78,5 +78,7 @@ func (ctrl *MachineStatusPublisherController) Run(ctx context.Context, r control
|
||||
}),
|
||||
},
|
||||
})
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -126,6 +126,8 @@ func (ctrl *APIController) Run(ctx context.Context, r controller.Runtime, logger
|
||||
if err = ctrl.teardownAll(ctx, r); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -131,6 +131,8 @@ func (ctrl *APICertSANsController) Run(ctx context.Context, r controller.Runtime
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -165,6 +165,8 @@ func (ctrl *EtcdController) Run(ctx context.Context, r controller.Runtime, logge
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -78,6 +78,8 @@ func (ctrl *KubeletController) Run(ctx context.Context, r controller.Runtime, lo
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -173,6 +173,8 @@ func (ctrl *KubernetesController) Run(ctx context.Context, r controller.Runtime,
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -142,6 +142,8 @@ func (ctrl *KubernetesCertSANsController) Run(ctx context.Context, r controller.
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -130,6 +130,8 @@ func (ctrl *RootController) Run(ctx context.Context, r controller.Runtime, logge
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -114,6 +114,8 @@ func (ctrl *TrustdController) Run(ctx context.Context, r controller.Runtime, log
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -237,5 +237,7 @@ func (ctrl *SyncController) Run(ctx context.Context, r controller.Runtime, logge
|
||||
}); err != nil {
|
||||
return fmt.Errorf("error updating objects: %w", err) //nolint:govet
|
||||
}
|
||||
|
||||
r.ResetRestartBackoff()
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@ replace gopkg.in/yaml.v3 => github.com/unix4ever/yaml v0.0.0-20220527175918-f17b
|
||||
|
||||
require (
|
||||
github.com/containerd/go-cni v1.1.7
|
||||
github.com/cosi-project/runtime v0.2.0
|
||||
github.com/cosi-project/runtime v0.3.0-alpha.0
|
||||
github.com/dustin/go-humanize v1.0.0
|
||||
github.com/evanphx/json-patch v5.6.0+incompatible
|
||||
github.com/ghodss/yaml v1.0.0
|
||||
@ -19,7 +19,7 @@ require (
|
||||
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417
|
||||
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8
|
||||
github.com/siderolabs/crypto v0.4.0
|
||||
github.com/siderolabs/gen v0.4.1
|
||||
github.com/siderolabs/gen v0.4.2
|
||||
github.com/siderolabs/go-api-signature v0.2.2
|
||||
github.com/siderolabs/go-blockdevice v0.4.1
|
||||
github.com/siderolabs/go-debug v0.2.2
|
||||
@ -44,7 +44,7 @@ require (
|
||||
github.com/gertd/go-pluralize v0.2.1 // indirect
|
||||
github.com/golang/protobuf v1.5.2 // indirect
|
||||
github.com/google/go-cmp v0.5.9 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.13.0 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.14.0 // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
github.com/josharian/native v1.0.0 // indirect
|
||||
github.com/mdlayher/genetlink v1.2.0 // indirect
|
||||
@ -58,7 +58,7 @@ require (
|
||||
github.com/sirupsen/logrus v1.7.0 // indirect
|
||||
go.uber.org/atomic v1.10.0 // indirect
|
||||
go.uber.org/multierr v1.8.0 // indirect
|
||||
go.uber.org/zap v1.23.0 // indirect
|
||||
go.uber.org/zap v1.24.0 // indirect
|
||||
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect
|
||||
golang.org/x/net v0.2.0 // indirect
|
||||
golang.org/x/sync v0.1.0 // indirect
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user