Crane (FinOps Crane) is an opensource project which manages cloud resource on Kubernetes stack, it is inspired by FinOps concepts.

Overview

Crane: Cloud Resource Analytics and Economics


Architecture

Crane (FinOps Crane) is an opensource project which manages cloud resource on Kubernetes stack, it is inspired by FinOps concepts. Goal of Crane is to provide an one-stop shop project to help Kubernetes users to save cloud resource usage with a rich set of functionalities:

  • Resource Metrics Prediction based on monitoring data
  • Cost visibility including:
    • Cost allocation, cost and usage virtualization
    • Waste identification
    • Idle resource collection and reallocation
  • Usage & Cost Optimization including:
    • Enhanced scheduling which optimized for better resource utilization
    • Intelligent Scaling based on prediction result
    • Cost Optimization based on better billing rate
  • QoS Ensurance based on Pod PriorityClass

crane-architecture

Components

Predictor


Knowing the future makes things easier for us.


Many businesses are naturally cyclical in time series, especially for those that directly or indirectly serve "people". This periodicity is determined by the regularity of people’s daily activities. For example, people are accustomed to ordering take-out at noon and in the evenings; there are always traffic peaks in the morning and evening; even for services that don't have such obvious patterns, such as searching, the amount of requests at night is much lower than that during business hours. For applications related to this kind of business, it is a natural idea to infer the next day's metrics from the history data of the past few days, or to infer the coming Monday's access traffic from the data of last Monday. With predicted metrics or traffic patterns in the next 24 hours, we can better manage our application instances, stabilize our system, and meanwhile, reduce the cost.

Crane predictor fetches historical metric data for the monitoring system, such as Prometheus, and identifies the time series that are predictable, for example, system cpu load, memory footprint, application's user traffic, etc. Then it outputs the prediction results, which can be consumed by other crane components, like Effective Horizontal Pod Autoscaler and Analysis. It's also straightforward to apply the prediction results in user's applications.

Effective Horizontal Pod Autoscaler

EHPA is an application that is built on Predictor. It takes advantage of the native HPA mechanism, but it is based on prediction and scales applications in advance actively rather than reacting to monitoring metrics passively. Comparing with native HPA, advanced-horizontal-pod-autoscaler eliminates manual configuration and autoscaling lag and so it enhances HPA in terms of

  • Reliability -- Guarantee both scalability and availability
  • Responsiveness -- Scale up fast enough to successfully handle the increase in workload
  • Efficiency -- Reduce the cost

Please see this document to learn how to use EHPA.

Analysis

Ensurance

Comments
  • Improve GetRuntimeClient compatibility

    Improve GetRuntimeClient compatibility

    What type of PR is this?

    What this PR does / why we need it:

    Which issue(s) this PR fixes:

    Fixes #232 #251 #276

    Special notes for your reviewer:

    opened by lbbniu 15
  • Precise execution according to waterline

    Precise execution according to waterline

    What type of PR is this?

    Feature

    What this PR does / why we need it:

    Add waterline for precise execution, select how many pods will be executed.

    The sort logic will be put into executor module use with waterline.

    Proposal: #357

    Some things to complete

    • [x] add a proposal to expound sort rule and how it works
    • [x] there are some repeated codes like pod_info same with #201, and should be rebase on that
    kind/feature 
    opened by chenkaiyue 12
  • Use caddy to replace nginx

    Use caddy to replace nginx

    What type of PR is this?

    Fix bug

    What this PR does / why we need it:

    Solve that the grafana service is not created, and the dashboard cannot be started.

    Which issue(s) this PR fixes:

    Fixes #235

    Special notes for your reviewer:

    opened by lbbniu 10
  • Add developer-guide.md and some images.

    Add developer-guide.md and some images.

    What type of PR is this?

    For crane's developer, Add a developer guidebook.

    This Developer's Guide document to let new craner to know how to contribute code.

    What this PR does / why we need it:

    • Introduce to clone the project.

    • Introduce to build binary and images from code.

    Which issue(s) this PR fixes:

    Implement #459

    Special notes for your reviewer:

    For local developers, we also need to solicit suggestions after the release of the manual so that we can complete it. Thx~

    documentation 
    opened by JaneConan 9
  • doc: translation for docs/tutorials/timeseriees-forecasting-by-dsp.md

    doc: translation for docs/tutorials/timeseriees-forecasting-by-dsp.md

    Signed-off-by: shenxianjie [email protected]

    What type of PR is this?

    translate docs/tutorials/timeseriees-forecasting-by-dsp.md

    What this PR does / why we need it:

    fix the issue #421

    Which issue(s) this PR fixes:

    Fixes #421

    documentation 
    opened by jxs1211 8
  • ehp cant get cpu metrics

    ehp cant get cpu metrics

    Describe the bug

    resouce metrics use prometheus-adapter v1beta1.metrics.k8s.io monitoring/prometheus-adapter True 29h

    也可以获取到cpu指标 k top pod -n monitoring httpserver-64db7f5658-7l9gc NAME CPU(cores) MEMORY(bytes) httpserver-64db7f5658-7l9gc 0m 10Mi

    ehpa

      metrics:
        - type: Resource
          resource:
            name: cpu
            target:
              type: Utilization
              averageUtilization: 50
    
    - lastTransitionTime: "2022-08-25T08:35:45Z"
        message: 'the HPA was unable to compute the replica count: failed to get cpu utilization:
          missing request for cpu'
        reason: FailedGetResourceMetric
        status: "False"
        type: ScalingActive
    

    Environment (please complete the following information):

    • K8S Version: [e.g. 1.23]
    • Crane Version: [e.g. 0.7.0]
    • Browser [e.g. chrome, safari]
    kind/bug 
    opened by sunnoy 6
  • Translate README.md in to Chinese

    Translate README.md in to Chinese

    Translate README.md in to Chinese.

    What type of PR is this?

    What this PR does / why we need it:

    Which issue(s) this PR fixes:

    Fixes #372

    Special notes for your reviewer:

    opened by wheam2002 6
  • ehpa cron unable to fetch metrics from external metrics API

    ehpa cron unable to fetch metrics from external metrics API

    Describe the bug I have a problem using ehpa cron: unable to get external metric sgt/php-apache-cron-local/&LabelSelector{MatchLabels:map[string]string{autoscaling.crane.io/effective-hpa-uid: 16c36e97-3b9f-49b2-bf8b-16259c38d21e,},MatchExpressions:[]LabelSelectorRequirement{},}: unable to fetch metrics from external metrics API: the server could not find the requested resource (get php-apache-cron-local.external.metrics.k8s.io) Reproduce steps This is ehpa:

    apiVersion: autoscaling.crane.io/v1alpha1
    kind: EffectiveHorizontalPodAutoscaler
    metadata:
      annotations:
        kubectl.kubernetes.io/last-applied-configuration: >
          {"apiVersion":"autoscaling.crane.io/v1alpha1","kind":"EffectiveHorizontalPodAutoscaler","metadata":{"annotations":{},"name":"php-apache-cron-local","namespace":"sgt"},"spec":{"crons":[{"description":"keep
          normal","end":"0 6 * * *","name":"cron1","start":"0 0 * *
          *","targetReplicas":1,"timezone":"Local"},{"description":"scale
          up","end":"0 9 * * *","name":"cron2","start":"0 6 * *
          *","targetReplicas":3,"timezone":"Local"},{"description":"scale
          down","end":"00 11 * * *","name":"cron3","start":"00 9 * *
          *","targetReplicas":1,"timezone":"Local"},{"description":"scale
          up","end":"00 14 * * *","name":"cron4","start":"00 11 * *
          *","targetReplicas":3,"timezone":"Local"},{"description":"scale
          down","end":"00 17 * * *","name":"cron5","start":"00 14 * *
          *","targetReplicas":1,"timezone":"Local"},{"description":"scale
          up","end":"00 20 * * *","name":"cron6","start":"00 17 * *
          *","targetReplicas":3,"timezone":"Local"},{"description":"keep
          normal","end":"00 00 * * *","name":"cron7","start":"00 20 * *
          *","targetReplicas":1,"timezone":"Local"}],"maxReplicas":10,"minReplicas":1,"scaleStrategy":"Auto","scaleTargetRef":{"apiVersion":"apps/v1","kind":"Deployment","name":"php-apache-cron-local"}}}
      creationTimestamp: '2022-05-25T05:25:58Z'
      generation: 8
      name: php-apache-cron-local
      namespace: sgt
      resourceVersion: '893900623'
      selfLink: >-
        /apis/autoscaling.crane.io/v1alpha1/namespaces/sgt/effectivehorizontalpodautoscalers/php-apache-cron-local
      uid: 16c36e97-3b9f-49b2-bf8b-16259c38d21e
    status:
      conditions:
        - lastTransitionTime: '2022-05-26T09:24:16Z'
          message: Effective HPA is ready
          reason: EffectiveHorizontalPodAutoscalerReady
          status: 'True'
          type: Ready
        - lastTransitionTime: '2022-05-26T09:24:16Z'
          message: the HPA controller was able to get the target's current scale
          reason: SucceededGetScale
          status: 'True'
          type: AbleToScale
        - lastTransitionTime: '2022-05-26T09:24:16Z'
          message: >-
            the HPA was unable to compute the replica count: unable to get external
            metric
            sgt/php-apache-cron-local/&LabelSelector{MatchLabels:map[string]string{autoscaling.crane.io/effective-hpa-uid:
            16c36e97-3b9f-49b2-bf8b-16259c38d21e,},MatchExpressions:[]LabelSelectorRequirement{},}:
            unable to fetch metrics from external metrics API: the server could not
            find the requested resource (get
            php-apache-cron-local.external.metrics.k8s.io)
          reason: FailedGetExternalMetric
          status: 'False'
          type: ScalingActive
      currentReplicas: 1
      expectReplicas: 0
    spec:
      crons:
        - description: keep normal
          end: 0 6 ? * *
          name: cron1
          start: 0 0 ? * *
          targetReplicas: 1
        - description: scale up
          end: 0 9 ? * *
          name: cron2
          start: 0 6 ? * *
          targetReplicas: 2
        - description: scale down
          end: 00 11 ? * *
          name: cron3
          start: 00 9 ? * *
          targetReplicas: 3
        - description: scale up
          end: 00 14 ? * *
          name: cron4
          start: 00 11 ? * *
          targetReplicas: 4
        - description: scale down
          end: 00 17 ? * *
          name: cron5
          start: 00 14 ? * *
          targetReplicas: 5
        - description: scale up
          end: 00 20 ? * *
          name: cron6
          start: 00 17 ? * *
          targetReplicas: 6
        - description: keep normal
          end: 00 00 ? * *
          name: cron7
          start: 00 20 ? * *
          targetReplicas: 7
      maxReplicas: 10
      minReplicas: 1
      scaleStrategy: Preview
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: php-apache-cron-local
    
    

    Expected behavior

    Screenshots

    Environment (please complete the following information):

    • K8S Version: [e.g. 1.19]
    • Crane Version: [e.g. 0.1.0]
    • Browser [e.g. chrome, safari]
    kind/bug 
    opened by chenshiwei-io 6
  • add advanced cpuset manger

    add advanced cpuset manger

    Advanced CPUSet Manager

    • Provide a new mechanism to manage cpuset bypass, to do extra things that kubelet cannot do, such as revise cpuset when pod running, share the cpuset assigned with others and relax restrictions of cpuset allocation.

    Table of Contents

    Motivation

    Some latency-sensitive application have lower lantency and cpu usage when running with specific cores, which results in fewer context switchs and higer cache affinity. But kubelet will always exclude assigned cores in shared cores, which may waste resources.Offline and other online pods can running on the codes actually. In our experiment, for the most part, it is barely noticeable for performance of service.

    Goals

    • Provide a new mechanism to manage cpuset bypass
    • Provide a new cpuset control way "shared"
    • Allow revise cpuset when pod running
    • Relax restrictions of cpuset allocation

    Non-Goals/Future Work

    • Solve the conflict with kubelet static cpuset control (need close)
    • Numa manager will support in future, CCX/CCD manager can also considered

    Proposal

    Relax restrictions of cpuset allocation

    Kubelet allocate cpus for containers included in a pod of "Guaranteed" QoS class and the container's resource limit for the CPU resource is an integer greater than or equal to one.

    With Crane, containers only to neeed CPU resource limit is an integer greater than or equal to one and equal to cpu resource request.

    Add new annotation to describe the requirement of cpuset contorl manger

    apiVersion: v1
    kind: Pod
    metadata:
      annotations:
        qos.gocrane.io/cpu-manager: none/exclusive/share
    

    Provide three policy for cpuset control:

    • none: containers of this pod shares a set of cpus not allocated top exclusive policy containers
    • exclusive: containers of this pod exclude the CPUs allocated, other containers not allowed to use.
    • share: containers of this pod runs in the CPUs allocated, but other containers can alse use.

    Advanced CPU Manager component

    • Crane-agent use podLister informs to sense the creation of pod.
    • Crane-agent use alloca when pod is binded, and loop in cycle to addContainer(change cpuset) until contanerd is created
    • Update/Delete pod take effect in reconcile state.
    • state.State reference kubelet and topology_cpu_assign copied from kubelet

    User Stories

    • users can update pod annotaion to control cpuset policy flexibly

    Story 1

    make some pods to run with exclusive Cpus to compare with others

    Story 2

    make pod from exclusive to share,so that offline can use the cpu

    Risks and Mitigations

    • kubelet cpu manger policy need to be set to none or will be conflicted with crane-agent
    • if crane-agent can not allocate CPUs for pods, it will not refuse pod to start as kubelet
    opened by szy441687879 6
  • Put recommendation result into target's annotation

    Put recommendation result into target's annotation

    Describe the feature

    currently the recommendation result is present on recommendation.status, we can also put it into target's annotation. this feature should be an option in recommendation's spec.

    enhancement good first issue kind/feature 
    opened by qmhu 6
  • chore: Hide managedFields by default when display YAML

    chore: Hide managedFields by default when display YAML

    Signed-off-by: mango [email protected]

    What type of PR is this?

    /chore

    What this PR does / why we need it:

    Hide managedFields by default when display YAML

    Which issue(s) this PR fixes:

    Fixes #504

    Special notes for your reviewer:

    None

    area:dashboard 
    opened by mangoGoForward 5
  • feature:support resource spec for resource recommendation

    feature:support resource spec for resource recommendation

    What type of PR is this?

    feature

    What this PR does / why we need it:

    support configurable cpu/memory ratio for resource recommendation

    Which issue(s) this PR fixes:

    Fixes # https://github.com/gocrane/crane/issues/612

    Special notes for your reviewer:

    area:recommendation 
    opened by Mokaz111 0
  • 镜像下载过慢问题

    镜像下载过慢问题

    Describe the bug 使用docker pull镜像速度太慢,一分钟不到100K,还经常失败,已尝试各种镜像加速源,不好使。 是否考虑通过将 docker save 后的文件上传到git hub或其他地方,使得用户可以方便下载使用?

    Reproduce steps

    Expected behavior

    Screenshots

    Environment (please complete the following information):

    • K8S Version: [e.g. 1.19]
    • Crane Version: [e.g. 0.1.0]
    • Browser [e.g. chrome, safari]
    opened by wangcong010 2
  • inconsistent crd name between examples dir and deploy dir

    inconsistent crd name between examples dir and deploy dir

    Describe the bug in latest code in main branch, the crd of NodeQOS in deployment dir turned NodeQOSEnsurancePolicy in deploy dir

    Reproduce steps

    Expected behavior

    Screenshots

    Environment (please complete the following information):

    • K8S Version: [e.g. 1.19]
    • Crane Version: [e.g. 0.1.0]
    • Browser [e.g. chrome, safari]
    kind/bug 
    opened by EchoUtopia 0
  • crane agent panic

    crane agent panic

    Describe the bug following this tutorial: https://gocrane.io/zh-cn/docs/tutorials/colocation-with-enhanced-qos/qos-interference-detection-and-active-avoidance.zh/ after applying disablescheduling avoidanceaction and nodeqos, the expecting taints are not set on the node which trigger the threshold.

    checking crane-agent logs, it panics: image

    and the node's event are : Warning AvoidanceTriggered crane-agent waterline1/cpu-usage triggered action disablescheduling/ Reproduce steps described as description above

    Expected behavior the node be set taints when trigger the cpu usage threshold

    Screenshots

    Environment (please complete the following information):

    • K8S Version: 1.18.6, gitcommit: dc7354, goversion: 1.13.9, platform: linux/amd64
    • Crane Version: v0.8.0
    • Client: Docker Engine - Community Version: 20.10.7 API version: 1.41 Go version: go1.13.15 Git commit: f0df350 OS/Arch: linux/amd64 Context: default Experimental: true

    Server: Docker Engine - Community Engine: Version: 20.10.7 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: b0f5bc3 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.8 GitCommit: 7eba5930496d9bbe375fdf71603e610ad737d2b2 runc: Version: 1.0.0 GitCommit: v1.0.0-0-g84113ee docker-init: Version: 0.19.0 GitCommit: de40ad0

    kind/bug 
    opened by EchoUtopia 0
  • cpu/memory ratio configuration for resource recommendation

    cpu/memory ratio configuration for resource recommendation

    Describe the feature

    The result for resource recommendation don't consider the cpu/memory ratio now, It would be better to support configurable cpu/memory ratio for resource recommendation.

    The configuration name should be like memory-to-vCPU-ratio.

    good first issue kind/feature area:recommendation 
    opened by qmhu 1
  • Support more cloud providers for Cost API | 支持更多的云厂商

    Support more cloud providers for Cost API | 支持更多的云厂商

    Describe the feature

    Currently Crane only support calculate cloud cost for TencentCloud. We want to investigate the requirements for more clouds, So please share your requirements about which cloud provider do you want to integrated with?


    当前Crane支持通过对接腾讯云的API展示云成本,我们希望调研用户的需求:您希望Crane支持什么云厂商的计费API?请通过回复的方式提供您希望支持对接什么云的计费API展示成本,最好也能提供您的使用场景,比如:

    我的电商业务目前运行在xx云上,希望通过云成本展示管理云成本。

    feature request 
    opened by qmhu 2
Releases(v0.8.0)
  • v0.8.0(Oct 14, 2022)

    How to upgrade

    kubectl apply -f https://raw.githubusercontent.com/gocrane/helm-charts/crane-0.8.0/charts/crane/crds/ensurance.crane.io_nodeqoss.yaml
    kubectl apply -f https://raw.githubusercontent.com/gocrane/helm-charts/crane-0.8.0/charts/crane/crds/ensurance.crane.io_podqoss.yaml
    kubectl apply -f https://raw.githubusercontent.com/gocrane/helm-charts/crane-0.8.0/charts/crane/crds/topology.crane.io_noderesourcetopologies.yaml
    
    helm repo update
    helm upgrade -n crane-system --install crane crane/crane --version 0.8.0
    

    What's Changed

    • CI: add some tasks for issues and PR by @zsnmwy in https://github.com/gocrane/crane/pull/502
    • fix craned deployment yaml by @szpnygo in https://github.com/gocrane/crane/pull/514
    • fix the doc error about port-forward by @szpnygo in https://github.com/gocrane/crane/pull/517
    • Update labeler.yml by @zsnmwy in https://github.com/gocrane/crane/pull/518
    • Add developer-guide.md and some images. by @JaneConan in https://github.com/gocrane/crane/pull/512
    • docs: instant page by @zsnmwy in https://github.com/gocrane/crane/pull/519
    • feat: pkg-utils-time by @jxs1211 in https://github.com/gocrane/crane/pull/483
    • fix cgroup driver name by @chenkaiyue in https://github.com/gocrane/crane/pull/521
    • bugfix: fix rr selector error by @qmhu in https://github.com/gocrane/crane/pull/531
    • add resources limits and requests by @sunnoy in https://github.com/gocrane/crane/pull/533
    • refine cpu sorter of crane agent by @mfanjie in https://github.com/gocrane/crane/pull/487
    • update README.md by @qmhu in https://github.com/gocrane/crane/pull/529
    • fix the collect not use the config time by @szpnygo in https://github.com/gocrane/crane/pull/524
    • adapt to nodeqos and podqos api by @mfanjie in https://github.com/gocrane/crane/pull/481
    • Update schedule action determines logic & Add label selector in PodQOS by @chenkaiyue in https://github.com/gocrane/crane/pull/539
    • fix some klog typo by @whitebear009 in https://github.com/gocrane/crane/pull/543
    • update ensurance manifests by @chenkaiyue in https://github.com/gocrane/crane/pull/542
    • Website for crane by @qmhu in https://github.com/gocrane/crane/pull/545
    • make function GetPodTemplate and IsHPAControlledByEHPA more precise by @whitebear009 in https://github.com/gocrane/crane/pull/547
    • pref: optimized nginx configuration by @lbbniu in https://github.com/gocrane/crane/pull/548
    • Add extend memory in nodeResourceManager by @chenkaiyue in https://github.com/gocrane/crane/pull/541
    • fix some typo in evpa and remove useless variable by @whitebear009 in https://github.com/gocrane/crane/pull/553
    • fix(#515): fix k8s unit transform by @PatrickLai7528 in https://github.com/gocrane/crane/pull/555
    • fix(#535): fix cluster edit modal error message incorrect by @PatrickLai7528 in https://github.com/gocrane/crane/pull/556
    • 预测查询自定义及prometheus-adapter替代metric-adapter的实现 by @saikey0379 in https://github.com/gocrane/crane/pull/520
    • feat(CI): docsy preview by @zsnmwy in https://github.com/gocrane/crane/pull/561
    • add NRT collector by @Garrybest in https://github.com/gocrane/crane/pull/544
    • Add live demo menu, use / to be root path by @qmhu in https://github.com/gocrane/crane/pull/564
    • Local Env Setup by @qmhu in https://github.com/gocrane/crane/pull/567
    • fix prediction without resource metrics by @saikey0379 in https://github.com/gocrane/crane/pull/568
    • Idle Node recommender by @qmhu in https://github.com/gocrane/crane/pull/563
    • Add docs for quick-start by @qmhu in https://github.com/gocrane/crane/pull/569
    • Fix yaml display error by @qmhu in https://github.com/gocrane/crane/pull/571
    • pkg-utils-vpa by @jxs1211 in https://github.com/gocrane/crane/pull/572
    • feat: add idle node page by @PatrickLai7528 in https://github.com/gocrane/crane/pull/573
    • docs: Update docs for recommendation framework by @qmhu in https://github.com/gocrane/crane/pull/576
    • add cpumanager by @Garrybest in https://github.com/gocrane/crane/pull/574
    • Watermark of cpu usage percent by @chenkaiyue in https://github.com/gocrane/crane/pull/552
    • bugfix: fix rr label issue by @qmhu in https://github.com/gocrane/crane/pull/577
    • Mem percent watermark by @chenkaiyue in https://github.com/gocrane/crane/pull/557
    • bugfix: Add docs for recommend, revert expression change by @qmhu in https://github.com/gocrane/crane/pull/579

    New Contributors

    • @szpnygo made their first contribution in https://github.com/gocrane/crane/pull/514
    • @JaneConan made their first contribution in https://github.com/gocrane/crane/pull/512
    • @sunnoy made their first contribution in https://github.com/gocrane/crane/pull/533

    Full Changelog: https://github.com/gocrane/crane/compare/v0.7.0...v0.8.0

    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(Aug 19, 2022)

    NOTE: This release have some breaking changes.

    • Use RecommendationRule as configuration for enable Recommendation instead of Analytics
    • Remove ConfigMap Recommendation-config

    How to upgrade

    kubectl apply -f https://raw.githubusercontent.com/gocrane/helm-charts/crane-0.7.0/charts/crane/crds/analysis.crane.io_analytics.yaml
    kubectl apply -f https://raw.githubusercontent.com/gocrane/helm-charts/crane-0.7.0/charts/crane/crds/analysis.crane.io_recommendationrules.yaml
    kubectl apply -f https://raw.githubusercontent.com/gocrane/helm-charts/crane-0.7.0/charts/crane/crds/analysis.crane.io_recommendations.yaml
    kubectl apply -f https://raw.githubusercontent.com/gocrane/helm-charts/crane-0.7.0/charts/crane/crds/autoscaling.crane.io_effectivehorizontalpodautoscalers.yaml
    kubectl apply -f https://raw.githubusercontent.com/gocrane/helm-charts/crane-0.7.0/charts/crane/crds/autoscaling.crane.io_effectiveverticalpodautoscalers.yaml
    
    helm repo update
    helm upgrade -n crane-system --install crane crane/crane --version 0.7.0
    

    What's Changed

    Feature

    image

    • New Crane Dashboard
    • Carbon Calculator
    • Recommendation Framework
    • Add types for recommenderConfiguration by @qmhu in https://github.com/gocrane/crane/pull/420
    • Add recommendation apis by @qmhu in https://github.com/gocrane/crane/pull/422
    • Add recommendation rule controller by @qmhu in https://github.com/gocrane/crane/pull/427
    • Add prometheus api by @qmhu in https://github.com/gocrane/crane/pull/439
    • Add proposal policy-based-abnomal-detection by @yufeiyu in https://github.com/gocrane/crane/pull/441
    • New Crane Dashboard by @zsnmwy in https://github.com/gocrane/crane/pull/446
    • Modify external metrics and add metrics with windows by @saikey0379 in https://github.com/gocrane/crane/pull/461
    • ci: Support arm and build images for branch by @zsnmwy in https://github.com/gocrane/crane/pull/463
    • Dashboard: Added a dialog for showing yaml, i18n, fix some ts error by @PatrickLai7528 in https://github.com/gocrane/crane/pull/478
    • always collect node local metrics when node resource controller is enabled. by @mfanjie in https://github.com/gocrane/crane/pull/479
    • feat(web): adjust yaml dialog top offset by @PatrickLai7528 in https://github.com/gocrane/crane/pull/484
    • feat: Carbon calc and actions for recommendations by @qmhu in https://github.com/gocrane/crane/pull/482
    • feat: Recommendation framework by @xieydd in https://github.com/gocrane/crane/pull/445
    • add slack team info by @mfanjie in https://github.com/gocrane/crane/pull/493
    • feat: dashboard error handler by @zsnmwy in https://github.com/gocrane/crane/pull/491
    • Intergrate recommend to dashboard by @qmhu in https://github.com/gocrane/crane/pull/494

    Bugfix && Enhancement

    • Fix doc issue by @yufeiyu in https://github.com/gocrane/crane/pull/419
    • fix: change mkdocs.yml to adjust the roadmap file. by @zsnmwy in https://github.com/gocrane/crane/pull/426
    • fix(web): remove unnecessary grafana dashboard query str by @PatrickLai7528 in https://github.com/gocrane/crane/pull/429
    • Fix the bug that removeExtremeOutliers not called. by @yufeiyu in https://github.com/gocrane/crane/pull/430
    • update 2022 roadmap by @mfanjie in https://github.com/gocrane/crane/pull/431
    • Ignore status update by @qmhu in https://github.com/gocrane/crane/pull/449
    • bugfix:config change for example:workload-replicas by @qmhu in https://github.com/gocrane/crane/pull/450
    • Update proposal by @chenkaiyue in https://github.com/gocrane/crane/pull/418
    • Improve crane agent doc by @chenkaiyue in https://github.com/gocrane/crane/pull/417
    • docs: fix mirror links by @zsnmwy in https://github.com/gocrane/crane/pull/454
    • Refine dashboard for menus and overview by @qmhu in https://github.com/gocrane/crane/pull/458
    • doc: translation for effective-hpa-with-prometheus-adapter.md by @jxs1211 in https://github.com/gocrane/crane/pull/452
    • Fix: ci build arm images by @zsnmwy in https://github.com/gocrane/crane/pull/466
    • feat: Chart enhancement by @qmhu in https://github.com/gocrane/crane/pull/467
    • fix: helm install command miss params by @zsnmwy in https://github.com/gocrane/crane/pull/468
    • docs: Update missing fenced code block by @l2D in https://github.com/gocrane/crane/pull/476
    • Fix: CI task - golangci-lint by @zsnmwy in https://github.com/gocrane/crane/pull/477
    • Test: pkg-utils-slice by @jxs1211 in https://github.com/gocrane/crane/pull/473
    • test: pkg-utils-string by @jxs1211 in https://github.com/gocrane/crane/pull/480
    • fix: BoardChart time calc by @zsnmwy in https://github.com/gocrane/crane/pull/485
    • docs: access dashboard by @zsnmwy in https://github.com/gocrane/crane/pull/490
    • bugfix: Add labels from recommendation by @qmhu in https://github.com/gocrane/crane/pull/492
    • Fix gocrane slack inventation url. by @xieydd in https://github.com/gocrane/crane/pull/496
    • fix(helm): fix syntax errors caused by spaces in https://github.com/gocrane/helm-charts/pull/70
    • fix: scheduler chart version bump up to 0.2.1 in https://github.com/gocrane/helm-charts/pull/72

    New Contributors

    • @jxs1211 made their first contribution in https://github.com/gocrane/crane/pull/452
    • @l2D made their first contribution in https://github.com/gocrane/crane/pull/476
    • @anurnomeru made their first contribution in https://github.com/gocrane/helm-charts/pull/70
    • @yanhuan0802 made their first contribution in https://github.com/gocrane/helm-charts/pull/72

    Full Changelog: https://github.com/gocrane/crane/compare/v0.6.0...v0.7.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Jul 15, 2022)

    What's Changed

    Feature

    • feat: add metric for replicas recommendation by @qmhu in https://github.com/gocrane/crane/pull/346
    • feat/exports_workload_replicas by @yufeiyu in https://github.com/gocrane/crane/pull/351
    • add grpc provider by @yufeiyu in https://github.com/gocrane/crane/pull/353
    • Add finalizers role for node and tsp by @chenkaiyue in https://github.com/gocrane/crane/pull/358
    • Smart recommend by @qmhu in https://github.com/gocrane/crane/pull/363
    • Watch configSet file and update config for recommendation on the fly. by @yufeiyu in https://github.com/gocrane/crane/pull/348
    • Precise execution according to waterline by @chenkaiyue in https://github.com/gocrane/crane/pull/216
    • Proposal: Pod-Sorting-And-Precise-Execution-For-Crane-Agent by @chenkaiyue in https://github.com/gocrane/crane/pull/357
    • refactor: optimize computeWindowShards by @novahe in https://github.com/gocrane/crane/pull/299
    • Make crane's namespace configurable by @lbbniu in https://github.com/gocrane/crane/pull/384
    • Update DSP by @yufeiyu in https://github.com/gocrane/crane/pull/389
    • Prediction for external metrics by @qmhu in https://github.com/gocrane/crane/pull/390
    • Update doc for PrometheusAdapter with EHPA by @qmhu in https://github.com/gocrane/crane/pull/400
    • Add Code of conduct doc by @qmhu in https://github.com/gocrane/crane/pull/411
    • Add GUI interface for debugging DSP hyper-parameters by @yufeiyu in https://github.com/gocrane/crane/pull/412

    Bugfix && Enhancement

    • pass config to getPredictedValuesFromSignals by @yufeiyu in https://github.com/gocrane/crane/pull/347
    • bugfix:Set LastUpdateTime for recommend by @qmhu in https://github.com/gocrane/crane/pull/350
    • Bugfix/analytics controller empty identities by @yufeiyu in https://github.com/gocrane/crane/pull/354
    • the typo in the error msg of historyResolution's value by @whitebear009 in https://github.com/gocrane/crane/pull/355
    • change agent log level to 2 by @chenkaiyue in https://github.com/gocrane/crane/pull/356
    • update prediction window minimum value to 600s by @kitianFresh in https://github.com/gocrane/crane/pull/360
    • fix log with ehpa specificReplicas by @whitebear009 in https://github.com/gocrane/crane/pull/361
    • Update docs for smart recommend by @qmhu in https://github.com/gocrane/crane/pull/365
    • fix the issue of zero recommended value by @yufeiyu in https://github.com/gocrane/crane/pull/368
    • improve docs by @autumn0207 in https://github.com/gocrane/crane/pull/367
    • create chinese version doc/index.md by @hank6086 in https://github.com/gocrane/crane/pull/378
    • Translate README.md in to Chinese by @wheam2002 in https://github.com/gocrane/crane/pull/377
    • Update replicas docs and example by @qmhu in https://github.com/gocrane/crane/pull/370
    • using map instead by @zouyee in https://github.com/gocrane/crane/pull/393
    • fix evpa not found by @zouyee in https://github.com/gocrane/crane/pull/399
    • fix: proposals docs display by @zsnmwy in https://github.com/gocrane/crane/pull/391
    • Update effective-hpa-with-prometheus-adapter.zh.md by @saikey0379 in https://github.com/gocrane/crane/pull/395
    • Create Traditional Chinese Version Documents by @ReganYue in https://github.com/gocrane/crane/pull/396
    • fix: effective-hpa-with-prometheus-adapter docs error by @zsnmwy in https://github.com/gocrane/crane/pull/408
    • Add doc for DSP by @yufeiyu in https://github.com/gocrane/crane/pull/414

    New Contributors

    • @hank6086 made their first contribution in https://github.com/gocrane/crane/pull/378
    • @wheam2002 made their first contribution in https://github.com/gocrane/crane/pull/377
    • @novahe made their first contribution in https://github.com/gocrane/crane/pull/299
    • @saikey0379 made their first contribution in https://github.com/gocrane/crane/pull/395
    • @zouyee made their first contribution in https://github.com/gocrane/crane/pull/393
    • @ReganYue made their first contribution in https://github.com/gocrane/crane/pull/396

    Full Changelog: https://github.com/gocrane/crane/compare/v0.5.0...v0.6.0

    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Jun 2, 2022)

    What's Changed

    Feature

    • feat(pkg/web): Add a test for the crane url to avoid Grafana 404. by @zsnmwy in https://github.com/gocrane/crane/pull/280
    • add wildcard support for evpa container policy, and update the status… by @kitianFresh in https://github.com/gocrane/crane/pull/309
    • feat(analytics): Analytics refactor by @qmhu in https://github.com/gocrane/crane/pull/307
    • Adjust metric labels for EHPA by @qmhu in https://github.com/gocrane/crane/pull/322
    • support cgroup-driver systemd by @szy441687879 in https://github.com/gocrane/crane/pull/327
    • filter events with writes only to the status field for tsp by @szy441687879 in https://github.com/gocrane/crane/pull/325
    • Add metric ext_cpu_total_distribute for local state by @shijieqin in https://github.com/gocrane/crane/pull/315
    • add some metrics; 1.node_cpu_cannot_be_reclaimed_seconds, 2.node_resource_recommended, 3.node_resource_recommended_from by @shijieqin in https://github.com/gocrane/crane/pull/314
    • Add targetUtilization for percentile prediction by @yufeiyu in https://github.com/gocrane/crane/pull/330
    • Feat/res recommend metrics by @yufeiyu in https://github.com/gocrane/crane/pull/335
    • Replicas recommendation by @qmhu in https://github.com/gocrane/crane/pull/332
    • feat(docs): Add Chinese translations to docs by @zsnmwy in https://github.com/gocrane/crane/pull/328
    • feat(docs): Support MathJax && Refactor HPA, crane-scheduler by @zsnmwy in https://github.com/gocrane/crane/pull/321
    • feat: trans crane-scheduler docs to cn by @zsnmwy in https://github.com/gocrane/crane/pull/344

    Bugfix && Enhancement

    • change rules of ClusterRole crane-agent; change expressionQuery of no… by @shijieqin in https://github.com/gocrane/crane/pull/296
    • Optimize trigger github action rules by @lbbniu in https://github.com/gocrane/crane/pull/293
    • docs(installation): Add mirror by @zsnmwy in https://github.com/gocrane/crane/pull/274
    • fix(docs): fix images display - dynamic-scheduler-plugin.png && fix list by @zsnmwy in https://github.com/gocrane/crane/pull/301
    • docs(style): make the navigation sidebar on the right by @zsnmwy in https://github.com/gocrane/crane/pull/302
    • docs(using-qos-ensurance.md): fix asciicast inject by @zsnmwy in https://github.com/gocrane/crane/pull/303
    • Improve GetRuntimeClient compatibility by @lbbniu in https://github.com/gocrane/crane/pull/273
    • After creating an ehpa with a behavior, synchronize the behavior to its corresponding hpa by @whitebear009 in https://github.com/gocrane/crane/pull/311
    • fix(unit test): add mock by @hecomlilong in https://github.com/gocrane/crane/pull/298
    • fix mkdocs by @zsnmwy in https://github.com/gocrane/crane/pull/320
    • add docs for cron-ehpa and examples by @kitianFresh in https://github.com/gocrane/crane/pull/209
    • fix(docs): fix list style by @zsnmwy in https://github.com/gocrane/crane/pull/329
    • rename functions in manager.go by @yufeiyu in https://github.com/gocrane/crane/pull/339
    • (bugfix):Remove predict metric when tsp not ready by @qmhu in https://github.com/gocrane/crane/pull/338
    • check whether tsp is outdated in custom metric provider by @whitebear009 in https://github.com/gocrane/crane/pull/341
    • If ehpa is configured with prediction but does not contain predictable metrics, then no tsp object is created by @whitebear009 in https://github.com/gocrane/crane/pull/340
    • fix: crane dashboard crashed without prometheus service by @PatrickLai7528 in https://github.com/gocrane/crane/pull/334
    • bugfix: use percentile cpu to calc minReplicas by @qmhu in https://github.com/gocrane/crane/pull/342

    New Contributors

    • @whitebear009 made their first contribution in https://github.com/gocrane/crane/pull/311
    • @hecomlilong made their first contribution in https://github.com/gocrane/crane/pull/298

    Full Changelog: https://github.com/gocrane/crane/compare/v0.4.0...v0.5.0

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Apr 22, 2022)

    What's Changed

    Official Website

    Official website for crane. You can see all documents in it now, Enjoy it! https://docs.gocrane.io

    Crane Scheduler

    Crane scheduler is a Kubernetes scheduler which can schedule pod based on actual node load. https://github.com/gocrane/crane-scheduler

    Feature

    • Add timeout for prometheus datasource by @kitianFresh in https://github.com/gocrane/crane/pull/242
    • Support web docs by mkdocs by @zsnmwy in https://github.com/gocrane/crane/pull/244, https://github.com/gocrane/crane/pull/247, https://github.com/gocrane/crane/pull/255
    • Add website to docs by @qmhu in https://github.com/gocrane/crane/pull/252, https://github.com/gocrane/crane/pull/253
    • HPA Observer Controller by @qmhu in https://github.com/gocrane/crane/pull/260
    • Refine querybuilder factory to register way,by @kitianFresh in https://github.com/gocrane/crane/pull/239
    • Register hpa scale metric config by @qmhu in https://github.com/gocrane/crane/pull/268
    • Use workload name to query the containers of workload by @kitianFresh in https://github.com/gocrane/crane/pull/269
    • Refine cron metrics priority for ehpa by @kitianFresh in https://github.com/gocrane/crane/pull/258
    • Percentile estimator by @qmhu in https://github.com/gocrane/crane/pull/272
    • Add predictable for hpa recommendation by @qmhu in https://github.com/gocrane/crane/pull/283
    • support init mode for metric model by @kitianFresh in https://github.com/gocrane/crane/pull/278
    • The cpu that can't reclaimed need add cpu idle of ExclusiveCpuSet by @shijieqin in https://github.com/gocrane/crane/pull/222
    • add workload selector for evpa by @kitianFresh in https://github.com/gocrane/crane/pull/285
    • add docs for crane-scheduler by @autumn0207 in https://github.com/gocrane/crane/pull/292

    Bugfix && Enhancement

    • Update community call by @qmhu in https://github.com/gocrane/crane/pull/254
    • Update the video for disable scheduling by @yan234280533 in https://github.com/gocrane/crane/pull/229
    • Chore(dashboard): remove runtime-env-cra in dockerfile by @PatrickLai7528 in https://github.com/gocrane/crane/pull/231
    • Update the video for disable scheduling by @yan234280533 in https://github.com/gocrane/crane/pull/229
    • Dashboard: fix edit cluster model click cancel, form data does not clear; add logo; fix start scripts by @PatrickLai7528 in https://github.com/gocrane/crane/pull/256
    • Update crane ehpa arch by @kitianFresh in https://github.com/gocrane/crane/pull/263
    • Add zh doc for ehpa by @qmhu in https://github.com/gocrane/crane/pull/264
    • Fix ehpa document yaml field by @lbbniu in https://github.com/gocrane/crane/pull/265
    • Fix /grafana/api/live/ws 400 in nginx by @lbbniu in https://github.com/gocrane/crane/pull/270
    • Optimize docs preview github action trigger rule by @lbbniu in https://github.com/gocrane/crane/pull/275
    • perf(workflows): Optimize CI by @zsnmwy in https://github.com/gocrane/crane/pull/259
    • Add code static check with reviewdog by @lbbniu in https://github.com/gocrane/crane/pull/261
    • fix(docs): fix Algorithm list by @zsnmwy in https://github.com/gocrane/crane/pull/287
    • feat(workflows): build images and upload to coding by @zsnmwy in https://github.com/gocrane/crane/pull/291
    • Fixed Crane dashboard discount modification invalid by @lbbniu in https://github.com/gocrane/crane/pull/290
    • bugfix for crane-agent create nodeResourceTsp by @shijieqin in https://github.com/gocrane/crane/pull/294

    New Contributors

    • @zsnmwy made their first contribution in https://github.com/gocrane/crane/pull/244
    • @lbbniu made their first contribution in https://github.com/gocrane/crane/pull/265
    • @autumn0207 made their first contribution in https://github.com/gocrane/crane/pull/292

    Full Changelog: https://github.com/gocrane/crane/compare/v0.3.0...v0.4.0

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Mar 18, 2022)

    What's Changed

    OoS Ensurance

    Crane allows users defined PrioirtyClass for the pods and QoSEnsurancePolicy, then detects disruption and ensure the high priority pods not being impacted by resource competition.

    Avoidance Actions:

    • Disable Schedule: disable scheduling by setting node taint and condition.
    • Throttle: throttle the low priority pods by squeezing cgroup settings.
    • Evict: evict low priority pods.

    Crane Dashboard

    The Dashboard to visualize all the cool things in Crane.

    Feature

    • Maxpoint and Ratelimit for prometheus datasource (https://github.com/gocrane/crane/pull/157, @kitianFresh)
    • Update Document: Contributor guide and Code of Conduct by (https://github.com/gocrane/crane/pull/169, @chenhong231)
    • Prediction refactor (https://github.com/gocrane/crane/pull/184, @yufeiyu)
    • Cron-based autoscaling for EHPA(https://github.com/gocrane/crane/pull/156, https://github.com/gocrane/crane/pull/227, @kitianFresh)
    • Set workload target reference in analytics status (https://github.com/gocrane/crane/pull/190, @yufeiyu)
    • Enhancement for EHPA recommendation (https://github.com/gocrane/crane/pull/192, @qmhu)
    • Implement Effective VPA Controller (https://github.com/gocrane/crane/pull/181, @qmhu)
    • MetricNamer to support metric server as real time data provider for algo percentile (https://github.com/gocrane/crane/pull/204, @kitianFresh)
    • Convert pod ext resource to quota limit (https://github.com/gocrane/crane/pull/196, @chenkaiyue)
    • add advanced cpuset manger (https://github.com/gocrane/crane/pull/165, @szy441687879)
    • EVPA recommendation by @qmhu in https://github.com/gocrane/crane/pull/225

    Bugfix && Enhancement

    • Refactor analyze and merge for crane agent (https://github.com/gocrane/crane/pull/171, @chenkaiyue)
    • Set historyDuration to 15 days by default (https://github.com/gocrane/crane/pull/185, @yufeiyu)
    • Enhance error handling for NotFound error in controller reconcile. (https://github.com/gocrane/crane/pull/183, @wxyh)
    • Default PROMQL query syntax should not use regular expressions (https://github.com/gocrane/crane/pull/178, @shijieqin)
    • Break loop in cronScaler (https://github.com/gocrane/crane/pull/191, @yufeiyu)
    • Use NewQuantity for mem recommended value (https://github.com/gocrane/crane/pull/199, @yufeiyu)
    • Update proposeMinReplicas logic(https://github.com/gocrane/crane/pull/203, @yufeiyu)
    • Set historyDuration to 15 days by default (https://github.com/gocrane/crane/pull/185, @yufeiyu)
    • Fix typo for EHPA doc (https://github.com/gocrane/crane/pull/214, @nevermosby )
    • Cleanup: reduce nested level (https://github.com/gocrane/crane/pull/224, @zhuangqh)

    Changes since v0.2.0

    Full Changelog: https://github.com/gocrane/crane/compare/v0.2.0...v0.3.0

    New Contributors

    • @chenhong231 made their first contribution in https://github.com/gocrane/crane/pull/169
    • @PatrickLai7528 made their first contribution in https://github.com/gocrane/crane/pull/175
    • @wxyh made their first contribution in https://github.com/gocrane/crane/pull/183
    • @shijieqin made their first contribution in https://github.com/gocrane/crane/pull/178
    • @nevermosby made their first contribution in https://github.com/gocrane/crane/pull/214
    • @zhuangqh made their first contribution in https://github.com/gocrane/crane/pull/224
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Feb 18, 2022)

    What's Changed

    Feature

    • Support remote adapter for Crane's metricAdapter (https://github.com/gocrane/crane/pull/108, @qmhu)
    • Use unstructured value to be recommendation's result (https://github.com/gocrane/crane/pull/118, @yufeiyu)
    • Propagate labels and annotations for ehpa (https://github.com/gocrane/crane/pull/128, @chenkaiyue)
    • Dynamic change klog log level by http requests (https://github.com/gocrane/crane/pull/135, @kitianFresh)
    • Introduce web server in crane (https://github.com/gocrane/crane/pull/126, @kitianFresh)
    • Add roadmap of H1 2022 (https://github.com/gocrane/crane/pull/147, @mfanjie)

    Bugfix

    • Use the same logic to handle completion strategy and add event/condition/logging for analytics (https://github.com/gocrane/crane/pull/127, @qmhu)
    • Change pql time interval to avoid discontinuous points problem (https://github.com/gocrane/crane/pull/127, @kitianFresh)
    • Fix agent name bug in crane-agent (https://github.com/gocrane/crane/pull/132, @szy441687879)
    • Fix prediction error when time series cycle duration is hourly (https://github.com/gocrane/crane/pull/137, @kitianFresh)
    • Expend cabundle exparity to 10 years (https://github.com/gocrane/crane/pull/138, @mfanjie)
    • Don't predict memory in effective HPA (https://github.com/gocrane/crane/pull/148, @qmhu)
    • Rename service for craned (https://github.com/gocrane/crane/pull/145, @smileusd)

    Changes since v0.1.0

    Full Changelog: https://github.com/gocrane/crane/compare/v0.1.0...v0.2.0

    New Contributors

    • @alierkilic made their first contribution in https://github.com/gocrane/crane/pull/97
    • @chenkaiyue made their first contribution in https://github.com/gocrane/crane/pull/128
    • @szy441687879 made their first contribution in https://github.com/gocrane/crane/pull/132
    • @smileusd made their first contribution in https://github.com/gocrane/crane/pull/145
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Jan 10, 2022)

    What's In

    Time Series Prediction

    • TimeSeriesPrediction is a CRD that used to forecast the kubernetes object metric.
    • Support many kinds of metric types: ResourceQuery,MetricQuery,ExpressionQuery.
    • Provide two out-of-box prediction algorithm: DSP and Percentile.

    Effective HorizontalPodAutoscaler

    • Prediction-driving horizontal autoscaling.
    • Provide two scale strategy: Auto and Preview.
    • It is compatible with native HorizontalPodAutoscaler.

    Analysis

    Analytics the workload and provide recommendations about resource optimize. Two recommendations are currently supported:

    • ResourceRecommend: Recommend container requests & limit resources based on historic metrics.
    • Effective HPARecommend: Recommend which workloads are suitable for autoscaling and provide optimized configurations such as minReplicas, maxReplicas.

    New Contributors

    • @yekangming made their first contribution in https://github.com/gocrane/crane/pull/59
    • @shiqiuzhang made their first contribution in https://github.com/gocrane/crane/pull/60
    • @wxytjustb made their first contribution in https://github.com/gocrane/crane/pull/63
    Source code(tar.gz)
    Source code(zip)
Owner
Crane
Cloud Resource Analytics and Economics
Crane
PolarDB Stack is a DBaaS implementation for PolarDB-for-Postgres, as an operator creates and manages PolarDB/PostgreSQL clusters running in Kubernetes. It provides re-construct, failover swtich-over, scale up/out, high-available capabilities for each clusters.

PolarDB Stack开源版生命周期 1 系统概述 PolarDB是阿里云自研的云原生关系型数据库,采用了基于Shared-Storage的存储计算分离架构。数据库由传统的Share-Nothing,转变成了Shared-Storage架构。由原来的N份计算+N份存储,转变成了N份计算+1份存储

null 23 Nov 8, 2022
Terraform Controller manages the life cycles of a terraform resource, allowing developers to self-serve dependencies in a controlled manner.

TERRAFORM CONTROLLER Terraform Controller manages the life cycles of a terraform resource, allowing developers to self-serve dependencies in a control

appvia 53 Nov 22, 2022
Cloud-gaming-operator - The one that manages VMs for cloud gaming built on GCE

cloud-gaming-operator GCE上に建てたクラウドゲーミング用のVMを管理するやつ 事前準備 GCEのインスタンスかマシンイメージを作成してお

Naoki Kishi 1 Jan 22, 2022
A simple project (which is visitor counter) on kubernetesA simple project (which is visitor counter) on kubernetes

k8s playground This project aims to deploy a simple project (which is visitor counter) on kubernetes. Deploy steps kubectl apply -f secret.yaml kubect

null 12 Nov 10, 2022
Terraform Provider for Azure (Resource Manager)Terraform Provider for Azure (Resource Manager)

Terraform Provider for Azure (Resource Manager) Version 2.x of the AzureRM Provider requires Terraform 0.12.x and later, but 1.0 is recommended. Terra

null 0 Oct 16, 2021
Apachedist-resource - A concourse resource to track updates of an apache distribution, e.g. tomcat

Apache Distribution Resource A concourse resource that can track information abo

Gareth Evans 0 Feb 2, 2022
provide api for cloud service like aliyun, aws, google cloud, tencent cloud, huawei cloud and so on

cloud-fitter 云适配 Communicate with public and private clouds conveniently by a set of apis. 用一套接口,便捷地访问各类公有云和私有云 对接计划 内部筹备中,后续开放,有需求欢迎联系。 开发者社区 开发者社区文档

null 23 May 8, 2022
A Controller written in kubernetes sample-controller style which watches a custom resource named Bookstore

bookstore-sample-controller A Controller written in kubernetes sample-controller style which watches a custom resource named Bookstore. A resource cre

Abdullah Al Shaad 0 Jan 20, 2022
cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resource objects related of Kubernetes Cluster API.

Overview cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resou

Daimler Group 61 Oct 27, 2022
Nebula Operator manages NebulaGraph clusters on Kubernetes and automates tasks related to operating a NebulaGraph cluster

Nebula Operator manages NebulaGraph clusters on Kubernetes and automates tasks related to operating a NebulaGraph cluster. It evolved from NebulaGraph Cloud Service, makes NebulaGraph a truly cloud-native database.

vesoft inc. 56 Nov 3, 2022
YurtCluster Operator creates and manages OpenYurt cluster atop Kubernetes

YurtCluster Operator Quick Start Prepare a Kubernetes cluster # cat <<EOF | kind create cluster --config=- kind: Cluster apiVersion: kind.x-k8s.io/v1a

OpenYurt 10 Aug 3, 2022
An Oracle Cloud (OCI) Pulumi resource package, providing multi-language access to OCI

Oracle Cloud Infrastructure Resource Provider The Oracle Cloud Infrastructure (OCI) Resource Provider lets you manage OCI resources. Installing This p

Pulumi 13 Nov 10, 2022
Cloud-Z gathers information and perform benchmarks on cloud instances in multiple cloud providers.

Cloud-Z Cloud-Z gathers information and perform benchmarks on cloud instances in multiple cloud providers. Cloud type, instance id, and type CPU infor

CloudSnorkel 16 Jun 8, 2022
Just a playground with some interesting concepts like pipelines aka middleware, handleFuncs, request validations etc. Check it out.

Pipeline a.k.a middleware in Go Just a playground with some interesting concepts like pipelines aka middleware, handleFuncs, request validations etc.

null 0 Dec 9, 2021
I'd like to share random apps in the spare times. Thus, I'm going to try learning some concepts of Go and as much as I can I try to clarify each line.

go-samples I'd like to share random apps in the spare times. Thus, I'm going to try learning some concepts of Go and as much as I can I try to clarify

Mert Simsek 1 Mar 16, 2022
Hello-go - Messing around with Go concepts.

Go Characteristics Naturally non-blocking Compiled directly to machine code M:N Scheduling Model Is a divergence language Goroutine https://medium.com

Zhang 0 Jan 9, 2022
👀 A Kubernetes cluster resource sanitizer

Popeye - A Kubernetes Cluster Sanitizer Popeye is a utility that scans live Kubernetes cluster and reports potential issues with deployed resources an

Fernand Galiana 4.1k Nov 18, 2022
Helm Operator is designed to managed the full lifecycle of Helm charts with Kubernetes CRD resource.

Helm Operator Helm Operator is designed to install and manage Helm charts with Kubernetes CRD resource. Helm Operator does not create the Helm release

Chen Zhiwei 5 Aug 25, 2022
OpenDILab RL Kubernetes Custom Resource and Operator Lib

DI Orchestrator DI Orchestrator is designed to manage DI (Decision Intelligence) jobs using Kubernetes Custom Resource and Operator. Prerequisites A w

OpenDILab 176 Nov 22, 2022