Skip to content
This repository has been archived by the owner on Feb 1, 2022. It is now read-only.

Graduate XGBoost Operator to v1 #44

Open
terrytangyuan opened this issue Apr 13, 2020 · 1 comment
Open

Graduate XGBoost Operator to v1 #44

terrytangyuan opened this issue Apr 13, 2020 · 1 comment

Comments

@terrytangyuan
Copy link
Member

terrytangyuan commented Apr 13, 2020

This issue tracks the progress of graduating XGBoost Operator to v1. Please check out the application requirements for details. Each item in the table below includes a check box that marks the completion of that particular requirement.

If you are interested in working on any of the items below, please leave a comment on this issue.

Requirements

Configuration and deployment

Description Category Explanation
  • Kustomize package
Required
  • Kubeflow has standardized on Kustomize for configuring and deploying packages
  • Application CR
Required
  • Kubeflow has standardized on using the Kubernetes Application CR to provide consistent metadata and monitoring about applications
  • Application CR should be an owner of all resources so that deleting the application CR uninstalls the application
  • app.kubernetes.io labels on every resource
Required
  • Every resource that is part of the application should include the labels recommended by Kubernetes, currently:
    • app.kubernetes.io/name
    • app.kubernetes.io/instance
    • app.kubernetes.io/version
    • app.kubernetes.io/component
    • app.kubernetes.io/part-of
    • app.kubernetes.io/managed-by
  • See example here
  • Images listed in kustomization.yaml
Required
  • All docker images used by the application should be listed in one or more kustomization.yaml files
  • This facilitates mirroring the images to different docker registries
  • Upgradeability
Required
  • Applications must support upgrading between consecutive major and minor releases
  • Separate cluster scoped and namespace scoped resources
Recommended
  • To the extent possible cluster scoped resources should be installable separately (e.g. via a separate kustomize package)
  • This allows cluster admins to install only the cluster scoped resources
  • Clear documentation of cluster and namespace scoped behavior
  • Kustomize package should be deployable on its own
Recommended
  • To the extent possible users should be able to run kustomize build

Custom Resources

Description Category Explanation
  • Version stability
Required
  • No deprecative API changes
  • Multi Version Support
Required
  • Supports status subresource
Required
  • Status subresource documented here
  • CRD schema validation
Required
  • Training operators follow kubeflow/common conventions
Required

Logging and monitoring

Description Category Explanation
  • Liveness/Readiness signals
Required
  • The application should expose liveness and/or readiness signals as appropriate for the application
  • Prometheus metrics
Required
  • Applications should export suitable application level metrics (e.g. number of jobs) using prometheus
  • Json logging
Recommended
  • Applications should optionally emit structured logs with suitable metadata to facilitate debugging
  • e.g. CR controllers should annotate log messages with the name of the resource involved so it's easy to filter logs to all messages about a resource

Docker Images

Description Category Explanation
  • Vulnerability Scanning
Required
  • Docker images must be scanned for vulnerabilities and known vulnerabilities published
  • Licensing
Required
  • Docker images must provide a list of all OSS licensces used by the image and its transitive dependencies, e.g. you can follow these instructions to get licenses of dependencies for Golang images

CI/CD

Description Category Explanation
  • E2E tests
Required
  • E2E tests should be run on presubmit, postsubmit, and periodically
  • Tests should cover deployment (kustomize packages)
  • As well as the application functionality
  • Scalability / load testing
Required
  • Applications must have scalability and or load testing demonstrating that the application meets appropriate requirements for the application (e.g. # of concurrent CRs)
  • Continuous building of docker images
Recommended
  • On post-submit, docker images should be automatically built and pushed
  • Continuous updating of Kustomize manifests
Recommended
  • On post-submit, kustomize packages should be automatically updated to point to latest images

Docs

Description Category Explanation
  • API Reference docs
Required
  • Applications exposing APIs (e.g. CRs) need reference docs documenting the API
  • Application docs
Required
  • There must be docs on kubeflow.org explaining what an application is used for and how to use it

Ownership/Maintenance

Description Category Explanation
  • Healthy number of committers and commits
Required
  • Committers are listed as approvers in owners files
  • Number to be determined by TOC based on size and scope of application
  • At least 2 different organizations are committers
Required

Adoption

Description Category Explanation
  • List of users running the application
Recommended
  • Suggest listing adopters willing to be identified publicly in ADOPTERS.md
@issue-label-bot
Copy link

Issue-Label Bot is automatically applying the labels:

Label Probability
feature 0.94

Please mark this comment with 👍 or 👎 to give our bot feedback!
Links: app homepage, dashboard and code for this bot.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants