Git Product home page Git Product logo

container-upstream's Introduction

Contributing

This project welcomes contributions and suggestions. If you wonder what the Azure Container Compute team is working on, check out the Project Board. If you would like to see the Azure Container Compute Upstream team work on something, first check if there is an existing issue. If there isn't, please create a new one. If there is existing information elsewhere on the internet, please include the links.

This project is not setup for contributing code. It is intended only for tracking issues.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Azure Container Compute Upstream Projects

This list of projects is maintained by the Azure container compute upstream team. This list is intended to help you make informed decisions about what projects to use (or not use) in the context of your goals (e.g. proof of concept vs. production). To make this decision you need to consider your goals, your need for formal support, the project's maturity, governance, version level, and your willingness to work in open source.

Support

Projects listed on this page are open source that Microsoft maintain or contribute to. These projects are NOT covered by the Microsoft Azure support policy. To get help please search the open issues on the project using the links in the table. To communicate with the Azure Container Compute Upstream team please use the issues in this repo. If your issue isn't already represented, please open a new one. However, if you consume one of these projects as a part of a Microsoft or Azure product or service, you may be eligible for support through that product or service.

Project list

Project Area Project & (artifacts) Goal Project State &
API Version
Communication Use on Azure
Kubernetes Cluster Management
Cluster API Azure Provider
(releases)
Tests
Self-managed clusters on Azure using Cluster API CNCF: incubating
API: v1alpha4
#cluster-api-azure
[email protected]
GitHub issues
AKS Engine
(releases)
Self-managed clusters on Azure Azure: Deprecating. Consider using AKS or Cluster API Azure Provider
API: N/A
#aks-engine-users
GitHub issues
  • Azure Stack Hub
  • Kubernetes Enhancements
    Virtual Kubelet
    (releases)
    Enable services to masquerade as kubelet - serverless CNCF: sandbox
    API: N/A
    #virtual-kubelet
    GitHub issues
    AKS Virtual Nodes
    Windows containers
    (kubernetes releases)
    Tests
    Run Windows server containers with Kubernetes Kubernetes: stable
    API: N/A
    #sig-windows
    [email protected]
    Windows Community Forum
    GitHub issues
  • AKS Windows
  • IPv4/v6 Dual-Stack
    (kubernetes releases)
    Tests
    IPv4/IPv6 dual-stack enables the allocation of both IPv4 and IPv6 addresses to Pods and Services. Kubernetes:
    IPv6: beta
    Dual-stack: GA
    #sig-network
    [email protected]
    GitHub issues
  • Use dual-stack with AKS
  • Cloud Native Governance and Security
    AAD Pod Identity
    (releases)
    Enables K8s applications to access cloud resources securely with Azure Active Directory Azure: Archived
    API: v1
    GitHub issues
    GitHub Project
  • Use with AKS
  • OPA Gatekeeper
    (releases)
    K8s native Open Policy Agent policy enforcement Azure: GA (AKS and Arc)
    CNCF: graduated
    API: Config: v1alpha1; ConstraintTemplate: v1; Constraints: v1beta1; Mutation: v1; External Data: v1beta1
    #kubernetes-policy
    GitHub issues
  • Azure Policy for AKS
  • Azure Policy for Azure Arc connected clusters
  • Secrets Store CSI Driver
    (releases)
    Builds
    Integrates secrets stores with Kubernetes via a Container Storage Interface (CSI) volume Kubernetes: GA
    API: v1
    #csi-secrets-store
    GitHub issues
    Azure KeyVault Provider for Secrets Store CSI Driver
    (releases)
    Enables mounting AKV secrets as volumes in K8s pods Azure: GA (AKS and Arc)
    API: N/A
    GitHub issues Use with AKS
    KMS Plugin for Key Vault
    (releases)
    Enables encryption at rest of Kubernetes data in etcd using Azure Key Vault Azure: GA (AKS)
    API: N/A
    GitHub issues Use with AKS
    KMSv2
    (blog (alpha)
    blog (beta))
    Encryption at rest of Kubernetes data in etcd using Key Management Service (KMS) v2 API Kubernetes: GA
    API: v2
    #sig-auth-kms-dev
    GitHub issues
    Azure Workload Identity
    (releases)
    Uses Kubernetes primitives to associate managed identities for Azure resources and identities in Azure Active Directory (AAD) with pods based on Workload Identity federation Azure: GA (AKS)
    API: N/A
    GitHub issues How to use (OSS)
    How to use (AKS)
    Eraser
    (releases)
    Cleaning up images from Kubernetes nodes CNCF: sandbox
    Azure: GA (AKS)
    API: v1
    #eraser
    GitHub issues
    How to use (OSS)
    How to use (AKS)
    Copacetic (releases) CLI tool for directly patching container images using reports from vulnerability scanners CNCF: sandbox #copa
    GitHub issues
    How to use
    Cloud Native Service Mesh
    Istio The leading service mesh on Kubernetes CNCF: graduated
    APIs: experimental, alpha, beta, stable
    Istio Slack
    GitHub issues
    Deploy Istio addon on AKS
    Gateway API A sig-network subproject that establishes a specification for service networking in Kubernetes (ingress and service mesh) Kubernetes: v1beta
    APIs: Standard and Experimental
    #gateway-api in Kubernetes Slack
    GitHub issues
    Use application gateway for containers
    Service Mesh Interface (SMI) Spec A standard interface for service meshes on Kubernetes CNCF: sandbox
    APIs: Traffic Access Control: v1alpha3; Traffic Metrics: v1alpha1; Traffic Specs: v1alpha4; Traffic Split: v1alpha4
    #smi
    GitHub issues
    Open Service Mesh (OSM) A lightweight, extensible, cloud native service mesh Deprecated; consider using Istio #openservicemesh
    GitHub issues
    Container Runtime
    Moby
    (releases)
    Toolkit for app containerization #opencontainers
    Moby Forums
    GitHub issues
  • Azure Kubernetes Service
  • Azure Stack Hub
  • many more
  • Containerd
    (releases)
    Complete container lifecycle management on Linux and Windows hosts CNCF: graduated
    API: N/A
    #opencontainers
    [email protected]
    GitHub issues
  • Use with AKS
  • Containerd runwasi
    (releases)
    Facilitates running Wasm / WASI workloads managed by containerd CNCF: alpha #runwasi
    GitHub issues
  • Docker Desktop
  • Containerd Wasm Shims
    (releases)
    containerd shims for running WebAssembly workloads in Kubernetes DeisLabs: alpha #GitHub Issues
  • Docker Desktop
  • AKS WASI Node Pools
  • Platforms
    Brigade Event-driven scripting for Kubernetes CNCF: Archived
    API: v2
    #brigade channel on Kubernetes Slack
    GitHub Issues
    Deployment Tools
    Porter Package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command CNCF: Sandbox
    Stable: v0.38.x Prerelease: v1.0.0-alpha
    Mailing list, slack, etc
    Project Board
    Azure Service Operator, Azure Trusted Research Environments
    CNAB Specification Cloud Native Application Bundle Specification implemented by Porter Spec: 1.1 #cnab on CNCF Slack
    Issues
    Web Assembly / WASI
    SpiderLightning SpiderLightning defines a set of *.wit files that abstract distributed application capabilities, such as key-value, messaging, http-server/client and more. DeisLabs: alpha v0.3.2 GitHub Issues AKS WASI Node Pools

    Maturity

    Open source project maturity can be assessed on many dimensions including age, number of contributors, diversity of contributor employers, and many more. Two you should consider are represented in the table as:

    • Project state - The first entry in the Maturity column represents the project's status. Projects in the CNCF (kubernetes, kubernetes-sigs, prometheus, etc) use the CNCF maturity model. Projects in the Azure, Microsoft, or deislabs GitHub orgs are working towards using the graduation guidelines defined in this repo.
    • API or Feature Versions if relevant, are listed as the second entry of the Maturity column, and follow the Kubernetes convention except where noted

    Jobs

    Interested in joining our team at Microsoft? Please take a look at jobs to see current openings.

    container-upstream's People

    Contributors

    aramase avatar carolynvs-msft avatar craiglpeters avatar devigned avatar keithmattix avatar krancour avatar lachie83 avatar microsoft-github-policy-service[bot] avatar microsoftopensource avatar msftgits avatar nilekhc avatar ritazh avatar salaxander avatar sozercan avatar trstringer avatar

    Stargazers

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

    Watchers

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

    container-upstream's Issues

    Optimize disk configs for the most common VM sizes

    We should find out the best price/perf point for the most common VM sizes. Variables to test include standard/premium disks, and size since the IOPS quota is related to disk size.

    Ephemeral disks can also give a good improvement and might be the best price/perf default. This work item is needed to enable ephemeral disks and has a partially completed PR attached: Azure/aks-engine#1287

    This should yield improvements in:

    • Time to deploy nodes - internal data is aggregated from AKS-Engine test passes
    • Time to deploy first workload. This could probably be a new case added to the E2E test pass that we could aggregate data from. The image pull has a disk-bound phase that increases based on the size of the image. For Windows images where 1GB+ is typical, that's a big difference.

    [moby] Use containerd for Windows container execution

    Container will have Windows support in version 1.3.
    This work stream is about moving moby off of Windows HCS and rely on containerd.

    This is needed rather imminently for the upcoming Docker release.

    This is primarily driven by John Howard, but requires review upstream: moby/moby#38541

    • Review 38541
    • Get 38541 merged
    • [ ] CI/build (upstream)

    Plan for building Windows pause & test containers

    For 1.15:

    • Get plan reviewed with SIG-Test, wg-k8s-infra
      • Short term goal - have manual build & image promotion, plan to address and mitigate test failures
    • Review and make sure this doesn't break builds if windows build host is not specified kubernetes/kubernetes#75618

    For 1.15 or later if needed:

    • Get all test images merged from Kubernetes-sigs/windows-testing/images to Kubernetes/Kubernetes/test/images
    • Set up Windows build workers on Azure or GCE

    For full context, see April 9 notes in https://docs.google.com/document/d/1W31nXh9RYAb_VaYkwuPLd1hFxuRX3iU0DmaQ4lkCsX8/edit# and the notes from the breakout with dims, Claudiu and Patrick.

    [moby] Containerd image management integration

    Since contained 1.0, containerd now handles full container and image management lifecycle.

    Much of this is duplicated in Moby (older codebase). The work item here is to migrate Moby to use containerd's image management.
    Exercising containerd's full capabilities through Moby is a huge step towards ensuring stability of containerd which is at the core of basically all container workloads.

    Work stream is happening here: moby/moby#38738
    This is mainly being driven by Docker, but there are many TODO's in the change and needs help to get in.

    I do not believe there is enough time to get this in for the next Docker release, however.

    cluster-autoscaler redesign

    • collect any existing documents or ideas for redesign of the Azure cloudprovider in cluster-autoscaler (or larger scope?)
    • coalesce this into a set of goals ranked by priority we can implement

    Please help me clarify this issue!

    [opa] Gatekeeper to 3.0 MVP

    https://docs.google.com/document/d/1EPb3zg-hknAK7WqYh96XIXCEXG9mQqr_Cqn8VuEGoLI/edit#heading=h.6c6ba7tmtfdm

    Minimum Feature Set
    We believe the following minimum feature set will be best to have:

    • Kubernetes integration
      • Validate admission control
      • Audit
      • CRD representation of library and instances
      • Replicate k8s data into OPA
      • Cache data provided to the system where the caller can provide hints on how to interpret the data (e.g. Kubernetes API Server, GCP)
        • only one data source per target necessary for MVP
    • Library API on OPA
      • Ability to write ConstraintTemplates/Constraints
      • Support of multiple targets, where a target:
        • Scopes the behavior of matching_constraints
        • Scopes the behavior of iterator helpers that enable audit
        • Allows for some variance in ConstraintTemplate/Constraint schema that can be defined by the caller (see our documentation on TargetHandler for what we think this might look like)
      • A library of say 20 Kubernetes templates covering Workloads, Networks, Configuration, and Storage
        • The libraries Forseti would use to integrate would also be useful for writing the Admission Controller and writing them will make sure we don't code ourselves into a k8s-specific corner
    • Upgrade path for existing users

    [k8s] Write a KEP for Pullimage support for Multi-Arch/OS

    As an Application Operator, I need to specify the operating system and architecture of the images I pull from a registry so that I am sure the right images are going to the right machines
    Note: the Application Operator is specified as a new persona as identified in the Snowball working group

    Deterministic Windows patching

    Problem Statement

    Windows Update's automatic behavior doesn't match what's needed for AKS-Engine or AKS in a few ways:

    • Some optional updates may need to be applied, but not others
    • Some patches may need to be avoided if we find failures in testing. For example, the April & May 2019 cumulative updates had changes that intermittently broke Kubernetes service connectivity and DNS

    It would need to be configurable so that we can use it to patch VHDs with the known-good list of patches from Windows Update services, but also used for private testing to apply new patches in testing that may be in private storage blobs.

    Related solutions

    Service Fabric Patch Orchestration Application

    doc, github
    can orchestrate upgrades across multiple nodes, and handles stopping the Service Fabric service cleanly before reboot and starts it after upgrades complete. It also has a central service to make sure nodes are not taken down simultaneously. That would work for "hotpatching" scenarios if adapted to work with Kubernetes.

    As a standalone service, it may still be possible to use this to control what updates are installed. This config would let you include/exclude specific patches using a query language.

    https://github.com/microsoft/Service-Fabric-POA/blob/0accfa6d7b6218e1b9543e7403bd7a34905906f0/src/PatchOrchestrationApplication/PatchOrchestrationApplication/ApplicationPackageRoot/ApplicationManifest.xml#L27-L28

    windows-patching extension

    https://github.com/Azure/aks-engine/tree/master/extensions/windows-patches

    This uses the AKS-Engine extension support which calls an extra script as a VM extension. It has a few downsides:

    1. No VM Scale Set Support. This means it can't work in AKS
    2. It requires full paths to MSU or EXE files. It can't find them using Windows Update

    Test kubenet for Windows containers in Kubernetes

    In addition to the Azure-CNI support for Advanced networking in AKS, Windows containers need to support kubenetI for basic networking.

    TODO: document definition of done
    TODO: Link to issue for aks-engine implementation and testing

    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.