Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support for custom CNIs #205

Closed
BenTheElder opened this issue Jan 9, 2019 · 9 comments · Fixed by #530
Closed

support for custom CNIs #205

BenTheElder opened this issue Jan 9, 2019 · 9 comments · Fixed by #530
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Projects
Milestone

Comments

@BenTheElder
Copy link
Member

this could potentially even be the default.

more generally we should look into suporting multiple other CNI
while low-prio, it is something we should eventually be doing, for sure

/priority important-longterm
/kind feature

@k8s-ci-robot k8s-ci-robot added priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. kind/feature Categorizes issue or PR as related to a new feature. labels Jan 9, 2019
@neolit123
Copy link
Member

FYI the kubeadm survey revealed these results about CNI.
kubeadm-cni-results

weave is still something i recommend to users, though.

@mauilion
Copy link

mauilion commented Feb 7, 2019

Related #278

@BenTheElder BenTheElder added this to To do in 1.0 via automation Feb 11, 2019
@BenTheElder BenTheElder added this to the 1.0 milestone Feb 11, 2019
@BenTheElder
Copy link
Member Author

After #331 it will be pretty straightforward to load an alternative CNI with a custom image at least, we still need to do #278 as well which should be pretty straightforward, will put that in the next minor milestone after 0.2 tentatively.

@BenTheElder BenTheElder changed the title support for cillium CNI support for custom CNIs Feb 27, 2019
@aojea
Copy link
Contributor

aojea commented Mar 5, 2019

I think that one simple solution to this problem can be adding a new field CNI under the networking struct in the new v1alpha3 API #340
This CNI field should be a string pointing to a remote or local manifest, if this field is empty we continue using current implementation.

apiVersion: kind.sigs.k8s.io/v1alpha3
kind: Cluster
networking:
  CNI: https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

For air-gapped environment, we can deliver manifests for each plugin that uses a local registry #110 avoiding to have to recreate continuously the node-image or to ship the images and load them with kind load

@neolit123
Copy link
Member

CNI: https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml`

or make the CNI field accept a mount path too...
something to note is that some plugins have more than one YAML file.

For air-gapped environment, we can deliver manifests for each plugin that uses a local registry #110 avoiding to have to recreate continuously the node-image or to ship the images and load them with kind load

we don't have to ship the images as long as the custom CNI process is document in kind.
also a custom registry seems like an overkill for this.

also, we have to keep in mind that custom CNI falls under advanced testing use cases and making this easy to use from kind shouldn't be a primary goal IMO. e.g. "kind does support custom CNI, but you need to do these steps"..

@aojea
Copy link
Contributor

aojea commented Mar 11, 2019

@neolit123 thanks, the mount path works with the current version using the extraMounts option and overwriting the /kind/manifests/default-cni.yaml file

# this config file contains all config fields with comments
kind: Config
apiVersion: kind.sigs.k8s.io/v1alpha2
# 3 control plane node and 3 workers
nodes:
# the control plane node config
- role: control-plane
  replicas: 1
  extraMounts:
  - containerPath: /kind/manifests/default-cni.yaml
    hostPath: /home/aojeagarcia/go/src/github.com/aojea/kindnet/install-kindnet.yaml
    readOnly: true
    type: File
# the three workers
- role: worker
  replicas: 2

@aojea aojea mentioned this issue Apr 1, 2019
@BenTheElder BenTheElder modified the milestones: 1.0, 0.4 May 2, 2019
@BenTheElder
Copy link
Member Author

no later than 0.4 I'd like to include some way to not have a default CNI installed so you may choose to install your own. "supported" is a strong word, but "possible without modifying the kind binary" definitely will happen.

@BenTheElder BenTheElder modified the milestones: 0.4, 0.3 May 15, 2019
@BenTheElder
Copy link
Member Author

this is simple enough now, going to add it to 0.3 so we can let anyone with complaints about kindnetd bypass it entirely.

@BenTheElder
Copy link
Member Author

#530 should make it a bit more first class.

1.0 automation moved this from To do to Done May 15, 2019
yankay pushed a commit to yankay/kind that referenced this issue Mar 17, 2022
adding session affinity code in ipvs
stg-0 pushed a commit to stg-0/kind that referenced this issue Jul 31, 2023
* Move storage class installation below

* Fix gcp storage class parameters

* Support encrypted in aws storage class parameters

* Fix default storage class

* Add fstype storage parameter to gcp

* Added fsType validation to gcp

* Added fsType validation to gcp

---------

Co-authored-by: lreciomelero <lrecio@stratio.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Projects
1.0
  
Done
Development

Successfully merging a pull request may close this issue.

5 participants