Compare commits

..

2 Commits

Author SHA1 Message Date
Hussein Galal
dde877e285 Fixes to the controller and cli (#33)
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
2023-02-03 18:00:07 +02:00
Hussein Galal
0682b11100 Add version to cli (#32)
* Add version flag to cli

Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>

* Add version to cluster spec

---------

Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
2023-02-03 14:36:06 +02:00
8 changed files with 40 additions and 24 deletions

View File

@@ -18,7 +18,9 @@ Helm's [documentation](https://helm.sh/docs) to get started.
Once Helm has been set up correctly, add the repo as follows:
```
helm repo add k3k https://galal-hussein.github.io/k3k
```
If you had already added this repo earlier, run `helm repo update` to retrieve
the latest versions of the packages. You can then run `helm search repo
@@ -37,9 +39,9 @@ To uninstall the chart:
To create a new cluster you need to install and run the cli or create a cluster object, to install the cli:
```
wget https://github.com/galal-hussein/k3k/releases/download/v0.0.0-alpha2/k3k
chmod +x k3k
sudo cp k3k /usr/local/bin
wget https://github.com/galal-hussein/k3k/releases/download/v0.0.0-alpha2/k3kcli
chmod +x k3kcli
sudo cp k3kcli /usr/local/bin
```
To create a new cluster you can use:

View File

@@ -2,5 +2,5 @@ apiVersion: v2
name: k3k
description: A Helm chart for K3K
type: application
version: 0.1.1
version: 0.1.1-k3k1
appVersion: 0.0.0-alpha3

View File

@@ -5,7 +5,7 @@ image:
repository: husseingalal/k3k
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: "v0.0.0-alpha3"
tag: "v0.0.0-alpha5"
imagePullSecrets: []
nameOverride: ""

View File

@@ -34,6 +34,7 @@ var (
agents int64
serverArgs cli.StringSlice
agentArgs cli.StringSlice
version string
clusterCreateFlags = []cli.Flag{
cli.StringFlag{
@@ -77,6 +78,12 @@ var (
Usage: "agents extra arguments",
Value: &agentArgs,
},
cli.StringFlag{
Name: "version",
Usage: "k3s version",
Destination: &version,
Value: "v1.26.1-k3s1",
},
}
)
@@ -146,6 +153,7 @@ func newCluster(name, token string, servers, agents int32, clusterCIDR, serviceC
ServiceCIDR: serviceCIDR,
ServerArgs: serverArgs,
AgentArgs: agentArgs,
Version: version,
},
}
}

View File

@@ -19,7 +19,11 @@ func Resource(resource string) schema.GroupResource {
}
func addKnownTypes(s *runtime.Scheme) error {
s.AddKnownTypes(SchemeGroupVersion, &Cluster{}, &ClusterList{})
s.AddKnownTypes(SchemeGroupVersion,
&Cluster{},
&ClusterList{},
&CIDRAllocationPool{},
&CIDRAllocationPoolList{})
metav1.AddToGroupVersion(s, SchemeGroupVersion)
return nil
}

View File

@@ -28,7 +28,7 @@ type ClusterSpec struct {
ServerArgs []string `json:"serverArgs,omitempty"`
AgentArgs []string `json:"agentArgs,omitempty"`
Expose ExposeConfig `json:"expose,omitempty"`
Expose *ExposeConfig `json:"expose,omitempty"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

View File

@@ -207,7 +207,11 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
*out = make([]string, len(*in))
copy(*out, *in)
}
in.Expose.DeepCopyInto(&out.Expose)
if in.Expose != nil {
in, out := &in.Expose, &out.Expose
*out = new(ExposeConfig)
(*in).DeepCopyInto(*out)
}
return
}

View File

@@ -64,13 +64,11 @@ func Add(ctx context.Context, mgr manager.Manager) error {
},
}
if err := reconciler.Client.Create(ctx, &cidrClusterPool); err != nil {
if !apierrors.IsConflict(err) {
if !apierrors.IsAlreadyExists(err) {
// return nil since the resource has
// already been created
return nil
return err
}
return err
}
clusterServiceSubnets, err := generateSubnets(defaultClusterServiceCIDR)
@@ -97,13 +95,11 @@ func Add(ctx context.Context, mgr manager.Manager) error {
},
}
if err := reconciler.Client.Create(ctx, &cidrServicePool); err != nil {
if !apierrors.IsConflict(err) {
if !apierrors.IsAlreadyExists(err) {
// return nil since the resource has
// already been created
return nil
return err
}
return err
}
// create a new controller and add it to the manager
@@ -202,15 +198,17 @@ func (c *ClusterReconciler) createCluster(ctx context.Context, cluster *v1alpha1
return util.WrapErr("failed to create servers and agents deployment", err)
}
if cluster.Spec.Expose.Ingress.Enabled {
serverIngress, err := server.Ingress(ctx, cluster, c.Client)
if err != nil {
return util.WrapErr("failed to create ingress object", err)
}
if cluster.Spec.Expose != nil {
if cluster.Spec.Expose.Ingress != nil {
serverIngress, err := server.Ingress(ctx, cluster, c.Client)
if err != nil {
return util.WrapErr("failed to create ingress object", err)
}
if err := c.Client.Create(ctx, serverIngress); err != nil {
if !apierrors.IsAlreadyExists(err) {
return util.WrapErr("failed to create server ingress", err)
if err := c.Client.Create(ctx, serverIngress); err != nil {
if !apierrors.IsAlreadyExists(err) {
return util.WrapErr("failed to create server ingress", err)
}
}
}
}