Skip to content
This repository was archived by the owner on Oct 28, 2024. It is now read-only.

Commit ce11f3e

Browse files
authored
Merge pull request #136 from christopherhein/feature/vc-capi-provisioner
✨ Adding CAPI Provisioner to vc-manager
2 parents acdb025 + 3799f8b commit ce11f3e

File tree

18 files changed

+732
-232
lines changed

18 files changed

+732
-232
lines changed

controllers/nestedcluster_controller.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package controllers
2020

2121
import (
2222
"context"
23+
"time"
2324

2425
"github.com/go-logr/logr"
2526
apierrors "k8s.io/apimachinery/pkg/api/errors"
@@ -97,7 +98,8 @@ func (r *NestedClusterReconciler) Reconcile(ctx context.Context, req ctrl.Reques
9798
if err := r.Status().Update(ctx, nc); err != nil {
9899
return ctrl.Result{}, err
99100
}
101+
return ctrl.Result{}, nil
100102
}
101103

102-
return ctrl.Result{}, nil
104+
return ctrl.Result{RequeueAfter: 5 * time.Second}, nil
103105
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
apiVersion: cluster.x-k8s.io/v1alpha4
3+
kind: Cluster
4+
metadata:
5+
name: "${CLUSTER_NAME}"
6+
spec:
7+
controlPlaneEndpoint:
8+
# currently this has to be the in-cluster endpoint, the in-cluster
9+
# kubeconfig is used by controller-manager w/ ClusterIP services
10+
# we can `port-forward` this service and be able to test, this includes
11+
# NAMESPACE so we can connect to the VC syncer.
12+
host: "${CLUSTER_NAME}-apiserver.${NAMESPACE}"
13+
port: 6443
14+
infrastructureRef:
15+
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4
16+
kind: NestedCluster
17+
name: "${CLUSTER_NAME}"
18+
controlPlaneRef:
19+
apiVersion: controlplane.cluster.x-k8s.io/v1alpha4
20+
kind: NestedControlPlane
21+
name: "${CLUSTER_NAME}-control-plane"
22+
23+
---
24+
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4
25+
kind: NestedCluster
26+
metadata:
27+
name: "${CLUSTER_NAME}"
28+
spec:
29+
controlPlaneEndpoint:
30+
host: "localhost"
31+
port: 6443
32+
---
33+
apiVersion: controlplane.cluster.x-k8s.io/v1alpha4
34+
kind: NestedControlPlane
35+
metadata:
36+
name: "${CLUSTER_NAME}-control-plane"
37+
spec:
38+
etcd:
39+
apiVersion: controlplane.cluster.x-k8s.io/v1alpha4
40+
kind: NestedEtcd
41+
name: "${CLUSTER_NAME}-nestedetcd"
42+
apiserver:
43+
apiVersion: controlplane.cluster.x-k8s.io/v1alpha4
44+
kind: NestedAPIServer
45+
name: "${CLUSTER_NAME}-nestedapiserver"
46+
controllerManager:
47+
apiVersion: controlplane.cluster.x-k8s.io/v1alpha4
48+
kind: NestedControllerManager
49+
name: "${CLUSTER_NAME}-nestedcontrollermanager"
50+
---
51+
apiVersion: controlplane.cluster.x-k8s.io/v1alpha4
52+
kind: NestedEtcd
53+
metadata:
54+
name: "${CLUSTER_NAME}-nestedetcd"
55+
spec:
56+
replicas: 1
57+
---
58+
apiVersion: controlplane.cluster.x-k8s.io/v1alpha4
59+
kind: NestedAPIServer
60+
metadata:
61+
name: "${CLUSTER_NAME}-nestedapiserver"
62+
spec:
63+
replicas: 1
64+
---
65+
apiVersion: controlplane.cluster.x-k8s.io/v1alpha4
66+
kind: NestedControllerManager
67+
metadata:
68+
name: "${CLUSTER_NAME}-nestedcontrollermanager"
69+
spec:
70+
replicas: 1
71+
---
72+
apiVersion: tenancy.x-k8s.io/v1alpha1
73+
kind: VirtualCluster
74+
metadata:
75+
name: ${CLUSTER_NAME}
76+
annotations:
77+
cluster.x-k8s.io/name: ${CLUSTER_NAME}
78+
tenancy.x-k8s.io/secret.admin-kubeconfig: "${CLUSTER_NAME}-kubeconfig"
79+
spec:
80+
clusterVersionName: "capi"
81+
opaqueMetaPrefixes:
82+
- "tenancy.x-k8s.io"
83+
transparentMetaPrefixes:
84+
- "k8s.net.status"

virtualcluster/cmd/manager/main.go

+6
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/apis"
2626
"sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/controller"
2727
"sigs.k8s.io/cluster-api-provider-nested/virtualcluster/pkg/webhook"
28+
clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha4"
2829
ctrl "sigs.k8s.io/controller-runtime"
2930
"sigs.k8s.io/controller-runtime/pkg/client/config"
3031
"sigs.k8s.io/controller-runtime/pkg/healthz"
@@ -121,6 +122,11 @@ func main() {
121122
os.Exit(1)
122123
}
123124

125+
if err := clusterv1.AddToScheme(mgr.GetScheme()); err != nil {
126+
log.Error(err, "unable add APIs to scheme")
127+
os.Exit(1)
128+
}
129+
124130
// Setup all Controllers
125131
log.Info("Setting up controller")
126132
if err := (&controller.Controllers{

virtualcluster/config/crd/cluster.x-k8s.io_clusters.yaml

-163
This file was deleted.

0 commit comments

Comments
 (0)