Giter VIP home page Giter VIP logo

placement's Introduction

Note: Do not edit any file in this repo.

The component is moved to the ocm as this task of consolidating code is going, please follow the CONTRIBUTING Guidence in the ocm to contribute.

Placement

With Placement, you can select a set of ManagedClusters from the ManagedClusterSets bound to the placement namespace.

Community, discussion, contribution, and support

Check the CONTRIBUTING Doc for how to contribute to the repo.


Getting Started

Prerequisites

You have at least one running kubernetes cluster;

Clone this repo

git clone https://github.com/open-cluster-management-io/placement.git
cd placement

Deploy the placement controller

Set environment variables.

export KUBECONFIG=</path/to/kubeconfig>

Build the docker image to run the placement controller.

go install github.com/openshift/imagebuilder/cmd/[email protected]
make images
export IMAGE_NAME=<placement_image_name> # export IMAGE_NAME=quay.io/open-cluster-management/placement:latest

If your are using kind, load image into the kind cluster.

kind load docker-image <placement_image_name> # kind load docker-image quay.io/open-cluster-management/placement:latest

And then deploy placement manager on the cluster.

make deploy-hub

What is next

After a successful deployment, check on the cluster and see the placement controller has been deployed.

kubectl -n open-cluster-management-hub get pods
NAME                                                  READY   STATUS    RESTARTS   AGE
cluster-manager-placement-controller-cf9bbd6c-x9dnd   1/1     Running   0          2m16s

Here is an example.

Create a ManagedClusterSet.

cat <<EOF | kubectl apply -f -
apiVersion: cluster.open-cluster-management.io/v1beta2
kind: ManagedClusterSet
metadata:
  name: clusterset1
EOF

Create a ManagedCluster and assign it to clusterset clusterset1.

cat <<EOF | kubectl apply -f -
apiVersion: cluster.open-cluster-management.io/v1
kind: ManagedCluster
metadata:
  name: cluster1
  labels:
    cluster.open-cluster-management.io/clusterset: clusterset1
    vendor: OpenShift
spec:
  hubAcceptsClient: true
EOF

Create a ManagedClusterSetBinding to bind the ManagedClusterSet to the default namespace.

cat <<EOF | kubectl apply -f -
apiVersion: cluster.open-cluster-management.io/v1beta2
kind: ManagedClusterSetBinding
metadata:
  name: clusterset1
  namespace: default
spec:
  clusterSet: clusterset1
EOF

Now create a Placement:

cat <<EOF | kubectl apply -f -
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Placement
metadata:
  name: placement1
  namespace: default
spec:
  predicates:
    - requiredClusterSelector:
        labelSelector:
          matchLabels:
            vendor: OpenShift
EOF

Check the PlacementDecision created for this placement. It contains all selected clusters in status.

kubectl get placementdecisions
NAME                    AGE
placement1-decision-1   2m27s

kubectl describe placementdecisions placement1-decision-1
......
Status:
  Decisions:
    Cluster Name:  cluster1
    Reason:
Events:            <none>

Clean up

Undeploy placement controller from the cluster.

make undeploy-hub

Run e2e test cases as sanity check on an existing environment

In order to verify the Placement API on an existing environment with placement controller installed and well configured, you are able to run the e2e test cases as sanity check by following the steps below.

Build the binary of the e2e test cases

make build-e2e

And then run the e2e test cases against an existing environment.

./e2e.test --ginkgo.v --ginkgo.label-filter=sanity-check -hub-kubeconfig=/path/to/file

In an environment that has already had the global clusterset created, you can skip the creation of the global clusterset during testing.

./e2e.test --ginkgo.v --ginkgo.label-filter=sanity-check -hub-kubeconfig=/path/to/file -create-global-clusterset=false

Since the e2e test cases create fake ManagedClusters (without agent installed) during testing, in a full featured OCM environment (with registration controller running on the hub), a taint cluster.open-cluster-management.io/unreachable will be added to those fake ManagedClusters automatically. You have to tolerate this taint when running e2e test cases in such an environment.

./e2e.test --ginkgo.v --ginkgo.label-filter=sanity-check -hub-kubeconfig=/path/to/file -tolerate-unreachable-taint

placement's People

Contributors

clyang82 avatar elgnay avatar haoqing0110 avatar jnpacker avatar kim-fitness avatar ldpliu avatar openshift-ci[bot] avatar openshift-merge-robot avatar qiujian16 avatar vincent-pli avatar xuezhaojun avatar xunpan avatar ycyaoxdu avatar yue9944882 avatar zhiweiyin318 avatar zhujian7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

placement's Issues

enable PlacementDecision to reflect AddOnPlacementScore more frequently than every 5 minutes

Apparently, PlacementDecision is only updated once every 5 minutes to reflect the AddOnPlacementScore. For CRD's that are scheduled frequently, this could mean placing them on nodes that are no longer available.

Is it possible to make it configurable such that the AddOnPlacementScore change causes an update to the PlacementDecision or to make the 5 minutes configurable? Or if something else is advised, feel free to comment.

Dont use `Allocatable` resources to get a decision

Status->Allocatable resources (cpu, memory) from kubectl describe managedcluster $clusterName will be used to update a decision with policy like ResourceRatioCPU now, this is not correct as Allocatable here is for the resource limitation on a node that can be used to run pods, it is a static value. We should use free resources on a node for decision policies.

PlacementDecision be empty when no cluster is selected

The current behavior is we always remove the empty decision.

To make the implementer easy to look up the placement decision result, when no cluster is selected, an empty decision might be better than no decision resource.

Error reported after creating more than 1000 managedclusters

After creating 1000 managedclusters and build a placement on them, the following error will be reported by placement controller pod, as the message length exceed the limitation (1024) of event message, event will not be send to API server.

E1014 09:19:28.694868       1 event_broadcaster.go:253] Server rejected event '&v1.Event{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"placement-mdczc.16addb1fa0b2ae74", GenerateName:"", Namespace:"ns-mdczc", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, EventTime:v1.MicroTime{Time:time.Time{wall:0xc0521b68293ccf17, ext:1338634553744, loc:(*time.Location)(0x2ef4a20)}}, Series:(*v1.EventSeries)(nil), ReportingController:"placementController", ReportingInstance:"placementController-cluster-manager-placement-controller-745c576949-twjqm", Action:"ScoreUpdated", Reason:"ScoreUpdate", Regarding:v1.ObjectReference{Kind:"Placement", Namespace:"ns-mdczc", Name:"placement-mdczc", UID:"5ba8170d-717c-48c5-8631-aaf6ae0216b3", APIVersion:"cluster.open-cluster-management.io/v1alpha1", ResourceVersion:"8605165", FieldPath:""}, Related:(*v1.ObjectReference)(0xc000f6e000), Note:"cluster-cgmlk:100 cluster-vxtrh:100 cluster-stwvl:100 cluster-2r8nk:100 cluster-hnx7n:100 cluster-dk74p:100 cluster-6vk55:100 cluster-q7bjc:100 cluster-8sk5s:100 cluster-xkdcx:100 cluster-l25zl:100 cluster-dqtq8:100 cluster-2mhch:100 cluster-wvzv9:100 cluster-zjwd6:100 cluster-nwcd5:100 cluster-bdnxs:100 cluster-ktqmg:100 cluster-nm9pn:100 cluster-zqk4s:100 cluster-tbzb7:100 cluster-thrft:100 cluster-7k7j6:100 cluster-qbd6p:100 cluster-l5ffp:100 cluster-b7gst:100 cluster-5ldkr:100 cluster-klt5k:100 cluster-pgrbd:100 cluster-t8qqz:100 cluster-8n9ms:100 cluster-7nfh7:100 cluster-qlcqv:100 cluster-wgrs4:100 cluster-mlrfl:100 cluster-74mpm:100 cluster-llkqw:100 cluster-c29hn:100 cluster-wr6bv:100 cluster-8bbgm:100 cluster-gmxcj:100 cluster-vvpmr:100 cluster-snc68:100 cluster-5hc4s:100 cluster-zhs2j:100 cluster-5lk6w:100 cluster-nkc7n:100 cluster-lw2nn:100 cluster-vkcm4:100 cluster-hb6cw:100 cluster-66cv8:100 cluster-jjx8t:100 cluster-bn2rp:100 cluster-qlfzz:100 cluster-bbv87:100 cluster-fhfbm:100 cluster-7tv5s:100 cluster-9hj4q:100 cluster-7cnlt:100 cluster-dg78b:100 cluster-r7c2h:100 cluster-6st2x:100 cluster-kv856:100 cluster-tw27l:100 cluster-kqccq:100 cluster-4bkr8:100 cluster-stdh7:100 cluster-ptkkz:100 cluster-hmqqs:100 cluster-vd6nj:100 cluster-tjjww:100 cluster-qx8xq:100 cluster-phtwn:100 cluster-h7m7w:100 cluster-2l688:100 cluster-v8bcw:100 cluster-vlcc9:100 cluster-dmg5m:100 cluster-d475q:100 cluster-85j9v:100 cluster-wsw4c:100 cluster-4nv76:100 cluster-vvjxv:100 cluster-px9rf:100 cluster-zz7wz:100 cluster-km6vr:100 cluster-gkhcq:100 cluster-4htmv:100 cluster-64g2d:100 cluster-wxgfz:100 cluster-dxc6z:100 cluster-jwlbw:100 cluster-zwqw7:100 cluster-6p6mm:100 cluster-fpwml:100 cluster-hrgm7:100 cluster-b5rkl:100 cluster-l445q:100 cluster-8crw9:100 cluster-cw225:100 cluster-whtt6:100 cluster-6d88z:100 cluster-8c8gf:100 cluster-fqtgm:100 cluster-9dckg:100 cluster-nc94w:100 cluster-zf8vc:100 cluster-r6szn:100 cluster-h6t6p:100 cluster-w4r4l:100 cluster-d4sb4:100 cluster-b479x:100 cluster-5lkdr:100 cluster-ktnh7:100 cluster-pbx6t:100 cluster-62lxt:100 cluster-sxvvp:100 cluster-bscwf:100 cluster-n4ghm:100 cluster-lzqbx:100 cluster-vq5xz:100 cluster-ht5jp:100 cluster-6t22k:100 cluster-rqdvh:100 cluster-gnd25:100 cluster-2v2cw:100 cluster-2lltg:100 cluster-fw8hq:100 cluster-fdjv9:100 cluster-29ss2:100 cluster-kpf9c:100 cluster-kpqmv:100 cluster-4rvbb:100 cluster-hvm9b:100 cluster-57htv:100 cluster-r4hht:100 cluster-k8nz8:100 cluster-g7jnk:100 cluster-nhc4d:100 cluster-znf87:100 cluster-vd4kh:100 cluster-mlzsn:100 cluster-pj629:100 cluster-bpf2h:100 cluster-cz8wh:100 cluster-j67pn:100 cluster-6dd2v:100 cluster-pc79p:100 cluster-qdhxk:100 cluster-n6f8b:100 cluster-5mg5h:100 cluster-lcpfk:100 cluster-s547j:100 cluster-jb67r:100 cluster-nlm8r:100 cluster-grllb:100 cluster-qd866:100 cluster-76stv:100 cluster-qdp85:100 cluster-zsd5s:100 cluster-xh62z:100 cluster-zmc9g:100 cluster-svjq6:100 cluster-tv6tx:100 cluster-x958q:100 cluster-wd97x:100 cluster-hmk7t:100 cluster-cf8g8:100 cluster-n667c:100 cluster-x7xbn:100 cluster-xwx69:100 cluster-7jfsv:100 cluster-xc2lh:100 cluster-gzccn:100 cluster-vsv5m:100 cluster-tsk62:100 cluster-5bxkc:100 cluster-xtfzj:100 cluster-8tc7k:100 cluster-pvcw8:100 cluster-v4dm8:100 cluster-kqjdh:100 cluster-nn6mp:100 cluster-4scgk:100 cluster-528hl:100 cluster-s5s6t:100 cluster-qk4d8:100 cluster-8n9dc:100 cluster-g7krn:100 cluster-9sb5q:100 cluster-79r65:100 cluster-5wgsx:100 cluster-6cz2s:100 cluster-84q4d:100 cluster-kl2lm:100 cluster-lnkfj:100 cluster-kknt8:100 cluster-2fkf9:100 cluster-lvdrc:100 cluster-s8w9l:100 cluster-vgmxg:100 cluster-2lz8p:100 cluster-8flgt:100 cluster-2vtmb:100 cluster-kw55n:100 cluster-zx7w4:100 cluster-chklp:100 cluster-df8jn:100 cluster-2jwjh:100 cluster-tcdwr:100 cluster-sfg2r:100 cluster-vqkfq:100 cluster-tvfsr:100 cluster-2rnvh:100 cluster-rdcf6:100 cluster-wmq5n:100 cluster-ggwqb:100 cluster-dqltv:100 cluster-lxk7q:100 cluster-2w4vz:100 cluster-xg9mw:100 cluster-tcfkw:100 cluster-s9kk9:100 cluster-hhmv5:100 cluster-gb6s2:100 cluster-2j4n4:100 cluster-bwh72:100 cluster-gtvn5:100 cluster-96hp4:100 cluster-447s4:100 cluster-djqkc:100 cluster-bqwbj:100 cluster-bh4jg:100 cluster-fnzvw:100 cluster-gl8b5:100 cluster-jhxsw:100 cluster-j4nmk:100 cluster-vxclt:100 cluster-2w5xs:100 cluster-pdzlb:100 cluster-xmh5x:100 cluster-xm6sv:100 cluster-4dsh6:100 cluster-gjdv5:100 cluster-4qs6g:100 cluster-h6lz8:100 cluster-w8mgt:100 cluster-6x7b7:100 cluster-bhq9f:100 cluster-4t2dm:100 cluster-hp7db:100 cluster-pxhdj:100 cluster-4jchf:100 cluster-w5pgc:100 cluster-6vwwk:100 cluster-pd9wj:100 cluster-9pzww:100 cluster-wm6jn:100 cluster-kqlcr:100 cluster-f5mcb:100 cluster-n474r:100 cluster-8pkhx:100 cluster-9bhx2:100 cluster-xqbbw:100 cluster-j2s2d:100 cluster-vd5j2:100 cluster-rfh56:100 cluster-gl9mp:100 cluster-tl4lf:100 cluster-vv8j4:100 cluster-8z7zp:100 cluster-5x55k:100 cluster-2stwl:100 cluster-zzwr6:100 cluster-dqdbk:100 cluster-jb4hl:100 cluster-bkrbp:100 cluster-fwj4h:100 cluster-knw8r:100 cluster-m8gjk:100 cluster-jzpq8:100 cluster-scr8j:100 cluster-hxztj:100 cluster-d8526:100 cluster-s8g59:100 cluster-qrcbb:100 cluster-ztnvf:100 cluster-zwnv4:100 cluster-2vswz:100 cluster-5nwnt:100 cluster-5bh69:100 cluster-6cwvx:100 cluster-n9xj5:100 cluster-nj88d:100 cluster-4zdq9:100 cluster-89r2v:100 cluster-wn4sg:100 cluster-s764b:100 cluster-86m5c:100 cluster-p5hg9:100 cluster-lt5q8:100 cluster-wh4ft:100 cluster-jrdbr:100 cluster-ljffw:100 cluster-p54gh:100 cluster-vs497:100 cluster-q2kk2:100 cluster-45cfg:100 cluster-dt7pf:100 cluster-f67mw:100 cluster-pwjj8:100 cluster-p97t8:100 cluster-242kd:100 cluster-s9hdb:100 cluster-9tf9s:100 cluster-kdrvr:100 cluster-6mnwj:100 cluster-bx68c:100 cluster-6jzk2:100 cluster-m5dql:100 cluster-bhzlh:100 cluster-df4k4:100 cluster-7w4pn:100 cluster-mbh5r:100 cluster-g5xlx:100 cluster-bpbbg:100 cluster-lntjc:100 cluster-zhbhz:100 cluster-mfggt:100 cluster-xmjtx:100 cluster-4hnmt:100 cluster-8l7fw:100 cluster-8z42d:100 cluster-xr78c:100 cluster-jm9pp:100 cluster-bv6bc:100 cluster-r799x:100 cluster-cj9l5:100 cluster-8jr8d:100 cluster-7nptg:100 cluster-d5fxz:100 cluster-cjswc:100 cluster-6g5tb:100 cluster-bn24r:100 cluster-8xj25:100 cluster-cj6tr:100 cluster-2svrq:100 cluster-b55vf:100 cluster-ft6qf:100 cluster-nm4bg:100 cluster-9dw2m:100 cluster-x78qx:100 cluster-v7dkx:100 cluster-tk7h6:100 cluster-s7tcm:100 cluster-h6mpl:100 cluster-lwtgs:100 cluster-xrb97:100 cluster-t8xb6:100 cluster-l49mp:100 cluster-jd98b:100 cluster-sq7tt:100 cluster-qh8vz:100 cluster-qrrhj:100 cluster-p6g8b:100 cluster-phmbk:100 cluster-5gpbz:100 cluster-c9fqh:100 cluster-bpk97:100 cluster-v2xt7:100 cluster-hgrrp:100 cluster-79npn:100 cluster-drnwj:100 cluster-zvv6v:100 cluster-bv7z9:100 cluster-x85mm:100 cluster-shtpr:100 cluster-n6dx2:100 cluster-sf4nk:100 cluster-q98tk:100 cluster-6knxw:100 cluster-jtprc:100 cluster-mzq48:100 cluster-mjtfq:100 cluster-m74bs:100 cluster-9q88f:100 cluster-5q7jf:100 cluster-vtgxg:100 cluster-bj5x6:100 cluster-hxfzk:100 cluster-km5pd:100 cluster-b9trl:100 cluster-zrsqc:100 cluster-bqrnq:100 cluster-c4wld:100 cluster-9zzbz:100 cluster-dcfjh:100 cluster-jfp5v:100 cluster-9z7mm:100 cluster-sqs6x:100 cluster-5vswz:100 cluster-jbshq:100 cluster-9d68z:100 cluster-ntjk6:100 cluster-z9hz2:100 cluster-v96gc:100 cluster-ddd4x:100 cluster-7w5vv:100 cluster-tbtnm:100 cluster-g9dz4:100 cluster-t96kk:100 cluster-brhm4:100 cluster-psqvz:100 cluster-6rq7z:100 cluster-hbh6f:100 cluster-tnhkk:100 cluster-hmw7x:100 cluster-86ww6:100 cluster-hxj9g:100 cluster-l5fld:100 cluster-d4jr2:100 cluster-qx2w6:100 cluster-h79d6:100 cluster-6bhxj:100 cluster-5r48b:100 cluster-ll2bm:100 cluster-dd82l:100 cluster-q2snm:100 cluster-7tpzt:100 cluster-rlpxw:100 cluster-4p7mh:100 cluster-kn5g9:100 cluster-kxgl4:100 cluster-bnskn:100 cluster-cmnrd:100 cluster-b5clv:100 cluster-f6w79:100 cluster-cdggh:100 cluster-vh5hb:100 cluster-2g2kv:100 cluster-rd6qm:100 cluster-8htqr:100 cluster-vqp8k:100 cluster-kdjl2:100 cluster-2mg57:100 cluster-nln6k:100 cluster-v4dbk:100 cluster-mk24z:100 cluster-ftbp8:100 cluster-dpmh5:100 cluster-7m7xc:100 cluster-6wc2q:100 cluster-44wfg:100 cluster-fd4r5:100 cluster-lz6zc:100 cluster-xw7d4:100 cluster-jhgw6:100 cluster-p6scq:100 cluster-b6c5l:100 cluster-mnptn:100 cluster-bzntf:100 cluster-dhfqw:100 cluster-pxs46:100 cluster-2tncn:100 cluster-cjpq7:100 cluster-259v4:100 cluster-wsxjb:100 cluster-756pl:100 cluster-cpxbl:100 cluster-z6fc9:100 cluster-2s9vv:100 cluster-fw7sm:100 cluster-lrqqj:100 cluster-xrg5x:100 cluster-cn8vs:100 cluster-2hzgl:100 cluster-v68lj:100 cluster-vvllp:100 cluster-xj6cv:100 cluster-n2wzc:100 cluster-599bl:100 cluster-2hxct:100 cluster-tfnwv:100 cluster-bqk7h:100 cluster-2x9p5:100 cluster-xlfnr:100 cluster-72zpw:100 cluster-mfhkd:100 cluster-hqplc:100 cluster-qqzrc:100 cluster-nd782:100 cluster-lgzkg:100 cluster-z44gb:100 cluster-ppllq:100 cluster-vzz6z:100 cluster-s7pdx:100 cluster-ndrpf:100 cluster-ndb8w:100 cluster-jch5f:100 cluster-m5xxx:100 cluster-l9rwz:100 cluster-kdvrn:100 cluster-hk4lk:100 cluster-qsdml:100 cluster-vhv76:100 cluster-gbpjg:100 cluster-4r9h9:100 cluster-bk8c6:100 cluster-h8cs2:100 cluster-d9fqz:100 cluster-h8lkn:100 cluster-pjqv2:100 cluster-pjlpg:100 cluster-5qhl7:100 cluster-xlv8w:100 cluster-7x9nt:100 cluster-vh8zs:100 cluster-2hwnd:100 cluster-7b664:100 cluster-7p96p:100 cluster-884xb:100 cluster-2kj7x:100 cluster-dggxj:100 cluster-ln9p7:100 cluster-7wcsq:100 cluster-5jscl:100 cluster-pvzmz:100 cluster-zh5tk:100 cluster-gqlmr:100 cluster-s4nr7:100 cluster-qzf6n:100 cluster-xhx5n:100 cluster-cmd8d:100 cluster-bt86j:100 cluster-58jc9:100 cluster-2kpt8:100 cluster-cmtzc:100 cluster-822vw:100 cluster-tjnc4:100 cluster-rwdlb:100 cluster-755km:100 cluster-fksj9:100 cluster-k9b2m:100 cluster-qxcfz:100 cluster-qlhh4:100 cluster-hb5wq:100 cluster-sk6qw:100 cluster-ctptm:100 cluster-rx8v4:100 cluster-8v6qm:100 cluster-25pqx:100 cluster-qvjbn:100 cluster-g9f56:100 cluster-wb9rh:100 cluster-ggk7k:100 cluster-dfsgb:100 cluster-njp8l:100 cluster-dtds4:100 cluster-jsdfn:100 cluster-5wn6z:100 cluster-scrsm:100 cluster-sv65k:100 cluster-n7sz9:100 cluster-nm7gl:100 cluster-c2nmw:100 cluster-szxbd:100 cluster-b2fch:100 cluster-8dhpw:100 cluster-c5wvd:100 cluster-qvcp4:100 cluster-rz2lt:100 cluster-gxjml:100 cluster-rcmzn:100 cluster-79sqf:100 cluster-ltqh7:100 cluster-x9fm6:100 cluster-ftzsb:100 cluster-csnqj:100 cluster-rf9cd:100 cluster-dxkhd:100 cluster-w56g4:100 cluster-8f22m:100 cluster-h7m2d:100 cluster-rkb7k:100 cluster-5mbm6:100 cluster-xgjl8:100 cluster-rbb84:100 cluster-w7ml6:100 cluster-4d9qr:100 cluster-4vjt5:100 cluster-wwwxt:100 cluster-l2zbd:100 cluster-m8n2p:100 cluster-4f8dw:100 cluster-xjx66:100 cluster-5zcqm:100 cluster-wpq4h:100 cluster-fn6sm:100 cluster-tsbc5:100 cluster-7jwmv:100 cluster-cz7jh:100 cluster-vxvss:100 cluster-26v2b:100 cluster-7hs25:100 cluster-sbmtr:100 cluster-phsfc:100 cluster-2nwlm:100 cluster-pxtgf:100 cluster-kg6z2:100 cluster-ggrsc:100 cluster-vjstp:100 cluster-4wtpq:100 cluster-kvz45:100 cluster-k64nj:100 cluster-k2l4n:100 cluster-6xsvp:100 cluster-9hdp8:100 cluster-fmwkt:100 cluster-p4p2x:100 cluster-hkr8t:100 cluster-4lpn9:100 cluster-pxlnw:100 cluster-ltbfq:100 cluster-fzx9j:100 cluster-c2h42:100 cluster-xf66g:100 cluster-zfms4:100 cluster-6n5rp:100 cluster-ztgnd:100 cluster-w7pgj:100 cluster-vwkpd:100 cluster-w7hf2:100 cluster-76q5c:100 cluster-gpdpw:100 cluster-b4kzw:100 cluster-ngjcp:100 cluster-sjm8g:100 cluster-sttgr:100 cluster-zhbtb:100 cluster-js2j5:100 cluster-8gbzc:100 cluster-vlgrh:100 cluster-kgjst:100 cluster-4czvq:100 cluster-wxl6z:100 cluster-ksj57:100 cluster-vh6c8:100 cluster-h46f7:100 cluster-j6mt5:100 cluster-2sng9:100 cluster-sqt66:100 cluster-fkfln:100 cluster-2l5vd:100 cluster-bqsvv:100 cluster-887kl:100 cluster-q2r9r:100 cluster-9bsxx:100 cluster-qwt4m:100 cluster-w8xk9:100 cluster-gckdl:100 cluster-x8dh8:100 cluster-mfpkt:100 cluster-d48ct:100 cluster-nsnb2:100 cluster-r4wvz:100 cluster-29hww:100 cluster-d96zz:100 cluster-gzlfn:100 cluster-58vct:100 cluster-gzpmj:100 cluster-zzhc7:100 cluster-svtm6:100 cluster-xkbp8:100 cluster-mgrr5:100 cluster-vvshc:100 cluster-v5mx8:100 cluster-g6zbd:100 cluster-4mfkk:100 cluster-bxhqg:100 cluster-8mt7m:100 cluster-2xddv:100 cluster-7cr89:100 cluster-q9xdx:100 cluster-7n8nq:100 cluster-zvnkj:100 cluster-mvwfx:100 cluster-9vsnd:100 cluster-pzjgf:100 cluster-qthp6:100 cluster-6vkz6:100 cluster-2ffsc:100 cluster-8rx2j:100 cluster-mzrxr:100 cluster-smds2:100 cluster-c8j8d:100 cluster-m247b:100 cluster-8fd8p:100 cluster-lwcln:100 cluster-sczkm:100 cluster-brbt6:100 cluster-469qq:100 cluster-qbzjg:100 cluster-blm6k:100 cluster-74kqn:100 cluster-97c5v:100 cluster-48bc7:100 cluster-9td5c:100 cluster-cmrwj:100 cluster-skmw2:100 cluster-w2h2n:100 cluster-2mm5m:100 cluster-rzs65:100 cluster-g79bb:100 cluster-w6q9d:100 cluster-xtdmv:100 cluster-8sdbt:100 cluster-mschb:100 cluster-v6c44:100 cluster-xl6df:100 cluster-v8598:100 cluster-fl6hp:100 cluster-llhjm:100 cluster-s6q2p:100 cluster-zkdbh:100 cluster-tmpnd:100 cluster-v28kh:100 cluster-6lxd6:100 cluster-g242n:100 cluster-v8ltb:100 cluster-g96ck:100 cluster-bjrvd:100 cluster-7n8k4:100 cluster-pkr68:100 cluster-7vsn2:100 cluster-fg6zk:100 cluster-brgxs:100 cluster-bdxkv:100 cluster-j7zvs:100 cluster-bdkfm:100 cluster-dnl89:100 cluster-v9qbp:100 cluster-zx8d4:100 cluster-7zc9c:100 cluster-xph92:100 cluster-kx89l:100 cluster-h55v6:100 cluster-75rqk:100 cluster-nsb6z:100 cluster-crhxx:100 cluster-s8x4w:100 cluster-g5lwr:100 cluster-th6rf:100 cluster-bq99w:100 cluster-f789d:100 cluster-plwc5:100 cluster-smkcf:100 cluster-66pq7:100 cluster-pg5kf:100 cluster-thbzj:100 cluster-cb4m7:100 cluster-zvgzt:100 cluster-5dn24:100 cluster-6d2ps:100 cluster-2xv6d:100 cluster-mzd59:100 cluster-2w4wn:100 cluster-4kdf7:100 cluster-g8f6k:100 cluster-rf4ks:100 cluster-mzq8b:100 cluster-7l4b6:100 cluster-x2vrl:100 cluster-jxktv:100 cluster-85zsk:100 cluster-vd9fx:100 cluster-hbcvk:100 cluster-d7lgx:100 cluster-6nd2n:100 cluster-xsqpt:100 cluster-8pddr:100 cluster-mwh4x:100 cluster-tmmdv:100 cluster-69snk:100 cluster-fj9x8:100 cluster-xqhzb:100 cluster-xmqvw:100 cluster-fvwdc:100 cluster-5zrn9:100 cluster-swnq5:100 cluster-s5lhh:100 cluster-wlwqc:100 cluster-znxlh:100 cluster-v94mw:100 cluster-x67kp:100 cluster-gfjk4:100 cluster-ckc2x:100 cluster-clj8m:100 cluster-qlkp4:100 cluster-h52cm:100 cluster-48ksh:100 cluster-829j8:100 cluster-xm7ns:100 cluster-79x5q:100 cluster-6v6zk:100 cluster-98qr7:100 cluster-nnr6x:100 cluster-hqrbk:100 cluster-kc569:100 cluster-zgpmf:100 cluster-rmqjg:100 cluster-mhdk4:100 cluster-n7bpt:100 cluster-d4vt9:100 cluster-2vjdn:100 cluster-lqrj2:100 cluster-ggd92:100 cluster-tp5n2:100 cluster-zvds9:100 cluster-qdzgq:100 cluster-7h7nc:100 cluster-5lkcj:100 cluster-qwtwx:100 cluster-5gkfw:100 cluster-8gb7j:100 cluster-4dbck:100 cluster-dpvtj:100 cluster-99qfh:100 cluster-dvv4m:100 cluster-p2s8v:100 cluster-h7bc7:100 cluster-xvlzv:100 cluster-d6ttv:100 cluster-k65m4:100 cluster-vh7kt:100 cluster-4mpwl:100 cluster-ll755:100 cluster-8dppk:100 cluster-wx5dx:100 cluster-zxtdq:100 cluster-jntb6:100 cluster-8ctmd:100 cluster-l95dn:100 cluster-hntr9:100 cluster-q9zdg:100 cluster-txmhd:100 cluster-zhdzs:100 cluster-jx8v4:100 cluster-bsg7p:100 cluster-lgj2n:100 cluster-r8npj:100 cluster-fpnqn:100 cluster-zjq9m:100 cluster-hf699:100 cluster-d9f7x:100 cluster-wndk5:100 cluster-xn5mt:100 cluster-zbgbm:100 cluster-6zznx:100 cluster-gk98r:100 cluster-7tgcz:100 cluster-zrcql:100 cluster-42m5g:100 cluster-6xtsd:100 cluster-hm2bc:100 cluster-dhqwv:100 cluster-n6jtb:100 cluster-f47xk:100 cluster-n4mfx:100 cluster-v696x:100 cluster-df4mz:100 cluster-75s6k:100 cluster-w8f2q:100 cluster-qsqqx:100 cluster-6jhhk:100 cluster-9cdbn:100 cluster-d2k7k:100 cluster-jqdk5:100 cluster-42j5b:100 cluster-r5mcs:100 cluster-bhp7h:100 cluster-4gq4q:100 cluster-npxg5:100 cluster-jb5zp:100 cluster-q5fdj:100 cluster-fzfxj:100 cluster-qmfp2:100 cluster-zqwbr:100 cluster-fmttd:100 cluster-b7hst:100 cluster-4xplf:100 cluster-7nmlg:100 cluster-nl5jm:100 cluster-mbcll:100 cluster-zn62j:100 cluster-zjk8g:100 cluster-bk9kx:100 cluster-mvjrs:100 cluster-k2zkb:100 cluster-j4csr:100 cluster-jbnmx:100 cluster-bljw6:100 cluster-mtj79:100 cluster-xt7nw:100 cluster-2bsrp:100 cluster-vv7pv:100 cluster-7h25b:100 cluster-fmmm8:100 cluster-gzkjm:100 cluster-p7fqx:100 cluster-rfddc:100 cluster-x6gfz:100 cluster-pnxgf:100 cluster-fd9wm:100 cluster-gmkkc:100 cluster-fckgz:100 cluster-8p2tp:100 cluster-bvjd7:100 cluster-dr864:100 cluster-72mwl:100 cluster-88d7q:100 cluster-8rj87:100 cluster-qtdlb:100 cluster-x9jrv:100 cluster-qspt7:100 cluster-sxh7j:100 cluster-ggzqg:100 cluster-n8xqx:100 cluster-g7cxp:100 cluster-7c4lr:100 cluster-287mm:100 cluster-6rzj7:100 cluster-8hkf7:100 cluster-9pcz6:100 cluster-vlft9:100 cluster-wfzc8:100 cluster-54cmh:100 cluster-hmczv:100 cluster-jdwjq:100 cluster-9vs2c:100 cluster-zk9gw:100 cluster-twgvt:100 cluster-gsxq8:100 cluster-zqqr5:100 cluster-wpwj5:100 cluster-b5hxt:100 cluster-9gwnm:100 cluster-78mfp:100 cluster-zr7pt:100 cluster-z7vsw:100 cluster-cwxd5:100 cluster-rkbz9:100 cluster-qt6sz:100 cluster-p8dw2:100 cluster-zhnqx:100 cluster-ppfkj:100 cluster-428wd:100 cluster-sshzt:100 cluster-2bxrn:100 cluster-4vwxp:100 cluster-g5gtw:100 cluster-hkh4f:100 cluster-qz6n5:100 cluster-pnpkd:100 cluster-qnm5q:100 cluster-9hstc:100 cluster-89f2l:100 cluster-lkj8r:100 cluster-vd98f:100 cluster-4pbjz:100 cluster-vqvpf:100 cluster-fvlz7:100 cluster-6wj56:100 cluster-r8b68:100 cluster-l84hp:100 cluster-t7sgx:100 cluster-78bjj:100 cluster-9gp6k:100 cluster-mtbbm:100 cluster-2t4j6:100 cluster-b6nmp:100 cluster-2d2x8:100 cluster-zj88s:100 cluster-gqkgj:100 cluster-sm5rn:100 cluster-9jcfc:100 cluster-x7qhr:100 cluster-n4rbj:100 cluster-7wq5t:100 cluster-vd5cx:100 cluster-jkt67:100 cluster-j84m6:100 cluster-nr5d7:100 cluster-6pjjl:100 cluster-kzg74:100 cluster-rz85x:100 cluster-rqwbs:100 cluster-b8hzf:100 cluster-khnlh:100 cluster-cr9s4:100 cluster-9d7rw:100 ", Type:"Normal", DeprecatedSource:v1.EventSource{Component:"", Host:""}, DeprecatedFirstTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeprecatedLastTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeprecatedCount:0}': 'Event "placement-mdczc.16addb1fa0b2ae74" is invalid: message: Invalid value: "": can have at most 1024 characters' (will not retry!)

[Feature] - Control and Limit application by cost or duration

In a classic hybrid cloud scenario, primary resources will run on-premise. Therefore, applications should use cloud provider resources for a limited time.

This feature should cover all the aspects of controlling and limiting applications or pods running on the cloud by cost or duration.

  1. need to retrieve and reflect the estimated and actual cost of application per cloud provider.
  2. add in placement CR cost limit per pod per cloud or overall application
  3. add in placement CR time limit per pod per cloud or overall application
  4. configure notification list when an application or pod is about to reach the limit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.