Yagan
Yagan is the main source for kubernetes cluster provisioning
Requirements
terraform v0.13
kubectl v1.17+
Yagan is the main source for kubernetes cluster provisioning
terraform v0.13
kubectl v1.17+
RKE has built-in support for (legacy) in-tree cloud providers deployment (AWS, Azure, OpenStack and vSphere), this limits deployment scenarios where a different cloud-provider is needed. Yagan should support out-tree cloud providers listed in kubernetes official repos through HCL-defined resources as well as allowing a bring your own CCM approach.
So defining a variable like cloud_provider = "openstack"
along with credentials and additional configuration enables the openstack out-tree provider within RKE.
Currently this module consumes a map of nodes which contains tightly defined roles per node group
nodes = {
controlplane = [
{
name = "node-1"
ip = "192.168.2.123"
}
]
etcd = [
{
name = "node-2"
ip = "192.168.2.25"
}
]
worker = [
{
name = "node-3"
ip = "192.168.2.95"
}
]
}
which is then consumed by
resource rke_cluster cluster {
...
dynamic nodes {
for_each = flatten(
[
for type, node in var.nodes : [
for n in node : {
ip = n.ip
name = n.name
role = type
}
]
]
)
content {
address = nodes.value.ip
hostname_override = nodes.value.name
internal_address = nodes.value.ip
node_name = nodes.value.name
role = [nodes.value.role]
ssh_key = var.private_key
user = var.vm_user
}
}
...
}
this approach does not offer much flexibility if one needs to define multi-role nodes
(e.g.: one node for controlplane
and etcd
+ one node for worker
).
A more flexible way to define nodes and their roles is necessary, as well as setting labels for each one, this way needs
to be standard for yagan infrasctructure modules to come (e.g.: yagan-openstack
, yagan-vsphere
, etc)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.