GithubHelp home page GithubHelp logo

heat-operator's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

heat-operator's Issues

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: Cannot find preset's package (github>openstack-k8s-operators/renovate-config)

Implement HeatAPI Reconciler logic

Issue
Need to implement logic for the Heat API service.

Description
We have three Controllers defined in this project. The underlying Heat Controller handles the DB sync / manage operations, and takes overrides for heat.conf. We need to implement the next Controller for the API service.

Ideally, this would be responsible for creating a deployment of the Heat API container. Additionally, it should allow for scaling of Heat API independent to Heat engine.

We can probably re-use some of the logic used for other API controllers. eg:
https://github.com/openstack-k8s-operators/ironic-operator/blob/master/controllers/ironicapi_controller.go#L106

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • Update module github.com/onsi/gomega to v1.33.1

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

gomod
api/go.mod
  • github.com/openstack-k8s-operators/lib-common/modules/common v0.3.1-0.20240429052447-09a614506ca6@09a614506ca6
  • k8s.io/api v0.28.9
  • k8s.io/apimachinery v0.28.9
  • sigs.k8s.io/controller-runtime v0.16.5
  • github.com/go-logr/logr v1.4.1
  • k8s.io/apiextensions-apiserver v0.28.9
  • k8s.io/client-go v0.28.9
  • k8s.io/component-base v0.28.9
  • k8s.io/klog/v2 v2.120.1
  • k8s.io/utils v0.0.0-20240423183400-0849a56e8f22@0849a56e8f22
go.mod
  • github.com/go-logr/logr v1.4.1
  • github.com/google/uuid v1.6.0
  • github.com/onsi/ginkgo/v2 v2.17.2
  • github.com/onsi/gomega v1.33.0
  • github.com/openstack-k8s-operators/infra-operator/apis v0.3.1-0.20240429104248-25176c735750@25176c735750
  • github.com/openstack-k8s-operators/keystone-operator/api v0.3.1-0.20240429164853-7e1e3b111ee9@7e1e3b111ee9
  • github.com/openstack-k8s-operators/lib-common/modules/common v0.3.1-0.20240429052447-09a614506ca6@09a614506ca6
  • github.com/openstack-k8s-operators/lib-common/modules/openstack v0.3.1-0.20240429052447-09a614506ca6@09a614506ca6
  • github.com/openstack-k8s-operators/lib-common/modules/test v0.3.1-0.20240429052447-09a614506ca6@09a614506ca6
  • github.com/openstack-k8s-operators/mariadb-operator/api v0.3.1-0.20240429121622-952f44520872@952f44520872
  • k8s.io/api v0.28.9
  • k8s.io/apimachinery v0.28.9
  • k8s.io/client-go v0.28.9
  • k8s.io/utils v0.0.0-20240423183400-0849a56e8f22@0849a56e8f22
  • sigs.k8s.io/controller-runtime v0.16.5
  • github.com/k8snetworkplumbingwg/network-attachment-definition-client v1.4.0
  • go.uber.org/zap v1.27.0
  • k8s.io/apiextensions-apiserver v0.28.9
  • k8s.io/component-base v0.28.9
  • k8s.io/klog/v2 v2.120.1

Implement Heat Engine reconciler logic

Issue
Need to implement logic for the Heat Engine service.

Description
We have three Controllers defined in this project. The underlying Heat Controller handles the DB sync / manage operations, and takes overrides for heat.conf. We need to implement the next Controller for the Engine service.

Ideally, this would be responsible for creating a deployment of the Heat Engine container. Additionally, it should allow for scaling of Heat Engine independent to Heat engine.

Considerations
This needs some additional thought. Considering we currently scale Heat engine workers using the num_engine_workers config option:
https://docs.openstack.org/heat/zed/configuration/sample_config.html

# Number of heat-engine processes to fork and run. Will default to either to 4
# or number of CPUs on the host, whichever is greater. (integer value)
#num_engine_workers = <None>

However, this would scale threads within the initial heat-engine container. The question and design consideration here is:

  1. Do we just want to stick with this method?

  2. Do we want to scale the number of pods and expose an option via the Heat CRD?

  3. Do we want a combination of both?

  4. This option isn't overly k8s friendly, given that we're launching new threads within a container, it doesn't give additional visibility via the kube API. But, it does maintain the current design expectation implemented by Heat and may be less complicated.

  5. This option would provide the users with visible feedback via the kube API, as we would be scaling a ReplicaSet and the additional pods could be seen. However, this would inevitebly result in higher resource consumption as we need to run entire containers to do this. It would also possibly create confusion for users if the num_engine_workers was set to 24 within heat.conf. We would have $n replicas with 24 heat-engine processes in each.

  6. Do we set a low default for num_engine_workers in heat.conf and primarily lean on scaling within k8s?

We can probably re-use some of the logic used for other controllers. eg:
https://github.com/openstack-k8s-operators/ironic-operator/blob/master/controllers/ironicconductor_controller.go#L94

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.