Giter Club home page Giter Club logo

community's Introduction

Community

This repository contains community related content that applies to all repositories in the CSI org. This page documents how to participate in the community.

Stay Informed

All developers of CSI drivers should join https://groups.google.com/forum/#!forum/container-storage-interface-drivers-announce to remain informed about changes to CSI or cluster orchestrators (like Kubernetes) that may affect existing CSI drivers.

How to contribute or get involved?

The Container Storage Interface (CSI) Community aims to be open, transparent, inclusive, and promote the best ideas. Contributions are welcome and encouraged from everyone.

Github Org

If there are issues or changes you would like to see, feel free to open an issue or send out a PR in the appropriate repo (e.g. https://github.com/container-storage-interface/spec/issues). The review and approval process is defined in the governance doc.

Community Meeting

A CSI Community meeting is held every two weeks. Everyone is welcome to participate.

Details

Community Google Group

CSI community announcements, event invites, and discussions are posted to the container-storage-interface-community Google Group. Join the group to participate.

Approvers

The governance doc defines the role of approvers.

Communities attempting to define industry standards are susceptible to conflict between vendors or becoming primarily focused on a single vendor. The governance doc for this project limits membership of approvers to representatives of the COs. In order to be successful, CSI must remain vendor neutral and serve the needs of end users.

Ideas, however, should be generated, discussed, debated, and consensus achieved publicly within the community. Approvers should only have to step in or "overrule" when absolutely necessary (a vendor is clearly pushing a singularly beneficial agenda, two storage vendors strongly disagree, etc.).

Approvers Group Meetings

A CSI Approvers Group meeting is held every two weeks. Attendance is limited to the approvers as defined in the governance doc.

Approvers Mailing List

Approvers can be reached at [email protected]

community's People

Contributors

clintkitson avatar jdef avatar jieyu avatar owainlewis avatar saad-ali avatar

Stargazers

 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

community's Issues

Validate snapshot name

Need some clarification

During csi-sanity checks , got the following failure:-

[Fail] CreateSnapshot [Controller Server] [It] should succeed when creating snapshot with maximum-length name

Is it documented somewhere about the maximum length value? How can we incorporate this on our CSI driver?

is this piece of information authentic and can be considered?

Snapshot name must begin with a letter or number, end with a letter, number or underscore,
and may contain only letters, numbers, underscores, periods, or hyphens.
See https://docs.microsoft.com/en-us/rest/ap

Designing a standard library for attaching volumes of different storage vendors to Node Host

(Since I didn't find a guide about how to draft a proposal, so plz forgive me if I submit it to a wrong place.)

Motivation

From my opinion, CSI is a standard interface, aiming at making it easier for every storage vendor to be integrated into different container orchestration systems. Generally we have done well enough, but it is still complicated for vendors to implement ControllerPublishVolume and ControllerUnpublishVolume request in some use cases.

Use case 1: Dedicated server

If users expect to deploy CO system (for example Kubernetes) on dedicated servers, they can specify different storage systems, that means that every storage system plugin need to make sure their volume can be attached to different kinds of servers and work well on different operation systems.

Use case 2: Private or hybrid cloud

If CO system is deployed on private cloud or hybrid cloud nodes, then users may specify some storage systems that are not supported or badly supported by this private cloud (VMware+Cinder). Since VASA provider can not attach Cinder volume to VMware VMs, VMware SP has to talk with Cinder directly to attach the volume. And in the end, there will be numerous solos, which definitely is what we don't want to see.

Goal

To solve the problem, we plan to design a standard library in CSI providing volume attaching for different storage vendors. For any storage system which wants to provide storage resource for
dedicated servers or VMs of private cloud, they can call this library to finish host-side volume discovery
and then mount the device path to container.

Proposed Design

As we know, there are a lot of storage protocols, such as iscsi, rbd, fc, smbfs and so forth, and some of them are implemented in different ways according to different system types(x86, s390, ppc64) and os types (linux, windows), so this library will communicate with kernel and expose a unified interface to different SPs.

API Object

The API object will have the following structure:

const (
	// Platform type
	PLATFORM_ALL = 'ALL'
	PLATFORM_x86 = 'X86'
	PLATFORM_S390 = 'S390'
	PLATFORM_PPC64 = 'PPC64'
	
	// Operation system type
	OS_TYPE_ALL = 'ALL'
	OS_TYPE_LINUX = 'LINUX'
	OS_TYPE_WINDOWS = 'WIN'

	// Device driver type
	ISCSI = "ISCSI"
	ISER = "ISER"
	FIBRE_CHANNEL = "FIBRE_CHANNEL"
	AOE = "AOE"
	DRBD = "DRBD"
	NFS = "NFS"
	GLUSTERFS = "GLUSTERFS"
	LOCAL = "LOCAL"
	GPFS = "GPFS"
	HUAWEISDSHYPERVISOR = "HUAWEISDSHYPERVISOR"
	HGST = "HGST"
	RBD = "RBD"
	SCALEIO = "SCALEIO"
	SCALITY = "SCALITY"
	QUOBYTE = "QUOBYTE"
	DISCO = "DISCO"
	VZSTORAGE = "VZSTORAGE"
	
	// A unified device path prefix
	VOLUME_LINK_DIR = '/dev/disk/by-id/'
)

// Connector is an interface indicating what outside world can do with this
// library, notice that it is at very early stage right now.
type Connector interface {
	GetConnectorProperties(multiPath, doLocalAttach bool) (*ConnectorProperties, error)
	
	ConnectVolume(conn *ConnectionInfo) (string, error)
	
	DisconnectVolume(conn *ConnectionInfo) (string, error)
	
	GetDevicePath(volumeId string) (string, error)
}

// ConnectorProperties is a struct used to tell storage backend how to
// intialize connection of volume. Please notice that it is OPTIONAL.
type ConnectorProperties struct {
	DoLocalAttach bool   `json:"doLocalAttach"`
	Platform      string `json:"platform"`
	OsType        string `json:"osType"`
	Ip            string `json:"ip"`
	Host          string `json:"host"`
	MultiPath     bool   `json:"multipath"`
	Initiator     string `json:"initiator"`
}

// ConnectionInfo is a structure for all properties of
// connection when connect a volume
type ConnectionInfo struct {
	// the type of driver volume, such as iscsi, rbd and so on
	DriverVolumeType string `json:"driverVolumeType"`
	
	// Required parameters to connect volume and differs from DriverVolumeType.
	// For example, for iscsi driver, see struct IsciConnectionData below.
	// NOTICE that you have to convert it into a map.
	ConnectionData   map[string]interface{} `json:"data"`
}

type IscsiConnectionData struct {
	// boolean indicating whether discovery was used
	TragetDiscovered bool 	`json:"targetDiscovered"`
	
	// the IQN of the iSCSI target
	TargetIqn string `json:"targetIqn"`
	
	// the portal of the iSCSI target
	TargetPortal string `json:"targetPortal"`
	
	// the lun of the iSCSI target
	TargetLun string `json:"targetLun"`
	
	// the uuid of the volume
	VolumeId string `json:"volumeId"`
	
	// the authentication details
	AuthUsername string `json:"authUsername"`
	AuthPassword string `json:"authPassword"`
}

References

Release timelines for CSI adoption by COs?

(I am not sure if this is the place to ask this question. I couldn't find any links to the slack channel or googlegroups discussion forums?)

I was looking for some details, before I get started with plugin implementation for OpenEBS storage.

  • What is the approximate timeline when the version 0.1 will be frozen?
  • Are there already efforts under-way by COs (like kubernetes or mesos) for implementing the plugin-supervisors?
  • In the absence of the CO or for certifying a plugin as CSI complaint, are there any efforts under-way to implement an TestCO. This TestCO can also be used for integration/unit tests of the plugin implementation?

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.