Skip to content

Commit ab757f3

Browse files
authored
Work towards a running CP (AlexsJones#1)
1 parent 2d27b8a commit ab757f3

File tree

13 files changed

+125
-29
lines changed

13 files changed

+125
-29
lines changed

api/v1beta1/microk8scontrolplane_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ limitations under the License.
1717
package v1beta1
1818

1919
import (
20-
"github.com/AlexsJones/cluster-api-bootstrap-provider-microk8s/api/v1beta1"
20+
"github.com/AlexsJones/cluster-api-bootstrap-provider-microk8s/apis/v1beta1"
2121
corev1 "k8s.io/api/core/v1"
2222
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2323
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"

config/crd/bases/controlplane.cluster.x-k8s.io_microk8scontrolplanes.yaml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ spec:
2020
scope: Namespaced
2121
versions:
2222
- additionalPrinterColumns:
23-
- description: MicroK8sControlPlane API Server is ready to receive requests
23+
- description: TalosControlPlane API Server is ready to receive requests
2424
jsonPath: .status.ready
2525
name: Ready
2626
type: boolean
2727
- description: This denotes whether or not the control plane has the uploaded
28-
microk8s-config configmap
28+
talos-config configmap
2929
jsonPath: .status.initialized
3030
name: Initialized
3131
type: boolean
@@ -176,12 +176,16 @@ spec:
176176
convert recognized schemas to the latest internal value,
177177
and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
178178
type: string
179+
connectionToken:
180+
type: string
179181
kind:
180182
description: 'Kind is a string value representing the
181183
REST resource this object represents. Servers may infer
182184
this from the endpoint the client submits requests to.
183185
Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
184186
type: string
187+
required:
188+
- connectionToken
185189
type: object
186190
type: object
187191
init:
@@ -293,12 +297,16 @@ spec:
293297
convert recognized schemas to the latest internal value,
294298
and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
295299
type: string
300+
connectionToken:
301+
type: string
296302
kind:
297303
description: 'Kind is a string value representing the
298304
REST resource this object represents. Servers may infer
299305
this from the endpoint the client submits requests to.
300306
Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
301307
type: string
308+
required:
309+
- connectionToken
302310
type: object
303311
type: object
304312
required:

config/crd/kustomization.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ resources:
66
#+kubebuilder:scaffold:crdkustomizeresource
77
commonLabels:
88
cluster.x-k8s.io/provider: microk8s
9-
cluster.x-k8s.io/v1alpha3: v1beta1
10-
cluster.x-k8s.io/v1alpha4: v1beta1
119
cluster.x-k8s.io/v1beta1: v1beta1
1210

1311
patchesStrategicMerge:

controllers/configs.go

Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ package controllers
33
import (
44
"context"
55
"net"
6+
"strings"
67
"time"
78

8-
bootstrapv1beta1 "github.com/AlexsJones/cluster-api-bootstrap-provider-microk8s/api/v1beta1"
9+
bootstrapv1beta1 "github.com/AlexsJones/cluster-api-bootstrap-provider-microk8s/apis/v1beta1"
10+
911
clusterv1beta1 "github.com/AlexsJones/cluster-api-control-plane-provider-microk8s/api/v1beta1"
12+
1013
"github.com/pkg/errors"
1114
corev1 "k8s.io/api/core/v1"
1215
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -20,6 +23,30 @@ import (
2023
"sigs.k8s.io/controller-runtime/pkg/client"
2124
)
2225

26+
const (
27+
dummyConfig string = `
28+
apiVersion: v1
29+
clusters:
30+
- cluster:
31+
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREekNDQWZlZ0F3SUJBZ0lVQnNwdzRSbXNNTUlFRHBJU1BHcjlMSHUyZlgwd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0Z6RVZNQk1HQTFVRUF3d01NVEF1TVRVeUxqRTRNeTR4TUI0WERUSXlNRFl4TnpFeU1qVXhPVm9YRFRNeQpNRFl4TkRFeU1qVXhPVm93RnpFVk1CTUdBMVVFQXd3TU1UQXVNVFV5TGpFNE15NHhNSUlCSWpBTkJna3Foa2lHCjl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxY1lEd3NCbUpMSm1rZXg5bTQ0eCtJMlQ3Q3lvSlFvQ1p4UUEKSGtPRDNiNjhzME9IVWt4dW1YWmUwWHZGOVRQVy9yR0tlb1ZBRUpKMG53eHpEY3M4ZlZ6TXA0UmZ1S1BoL2NmVApOZVJNa2J3WFgxYVgxTXBrTzUxRzdEWm05bG90bVo4Q1V6TnZDaTlwUzBhTzM1WU9EcGh4UGtxT2tYamRuQm5BClhIWFdWUFJqdzZ6UGhYY3dXQVpVMDVlbDhpSFU4Wk1vMlk5eVhaNnhpcWk2Z01lc3p0SlgxQzFVUll6cXRvUU8KeVNrOHNsbUVxMXNRUUQxNjFTTFZsZ3VENy9WSG5LSGZ5bEJyZlFiaUcvcGkxZm5BdnhXYm1ZOG1vc2hpWm4xcwpDazMzbzc2NE93QXk4UFNDVElyNXJnOWJ5TUl2c0h3NkRVZ09qekljSlU2a3V1Z0xRd0lEQVFBQm8xTXdVVEFkCkJnTlZIUTRFRmdRVVBEQUhLYjlGVDdNOEJCREk3WUhtVDNGdmdPWXdId1lEVlIwakJCZ3dGb0FVUERBSEtiOUYKVDdNOEJCREk3WUhtVDNGdmdPWXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU5CZ2txaGtpRzl3MEJBUXNGQUFPQwpBUUVBSHZleWQwc3RGaHFjVERPZ09HMHJaWFcwUjNLRGxwVzc2NkZBRGRwOTZ5UGREeG9xZ2dUQktraDBjZ3Z6CmFub2oxR0JmK0ZFWVFuRjlJb29zbXFZWHlFVTNlU05MU2M1NmVpNTFXeWVDa1BROU9RZnZPejlRU2tDT2lVckgKRXhzVzlQRTZXOTBjSVJ6M0h6RXhHeUtFK1JDZUNqZlpDVmNtTUFXMEVrdVVyeHQvY3JJemhxSlFhNUJOV1hGcwo2cEVTWUFJbGtxY0ROZ3lJbjhhVWMxK2hKdVdRamxXeElRc3FnT09GNG56ZjlLTGNCek1sQ0Q0cFc4ekZWRXg0ClhVWEI1NlhyWGdKMzJJbjBxK045dHlXVkN3STZLdUYxak81blhqU0xDQTRQdkpBcmg3YjFsN2lJOGZxR09yaXQKdGFKTlR5N1pwOTFCclBWN3Nha1A1eFQrbXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
32+
server: https://<HOST>:6443
33+
name: microk8s-cluster
34+
contexts:
35+
- context:
36+
cluster: microk8s-cluster
37+
user: admin
38+
name: microk8s
39+
current-context: microk8s
40+
kind: Config
41+
preferences: {}
42+
users:
43+
- name: admin
44+
user:
45+
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN4ekNDQWE4Q0ZCNlVJb0ZQSzVTYnBiNWo0ZWNXa3hvYWkzaW5NQTBHQ1NxR1NJYjNEUUVCQ3dVQU1CY3gKRlRBVEJnTlZCQU1NRERFd0xqRTFNaTR4T0RNdU1UQWVGdzB5TWpBMk1UY3hOVEl4TXpkYUZ3MHpPVEV4TURVeApOVEl4TXpkYU1Da3hEakFNQmdOVkJBTU1CV0ZrYldsdU1SY3dGUVlEVlFRS0RBNXplWE4wWlcwNmJXRnpkR1Z5CmN6Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtqMmZONE8zUkQyWEtPRjJhNlMKUmIxQ3NZckh6eTZ6SFVBWGN6REJKZFYya1hVUWJSRVVaaWtPUkM5c0xnU2NFdFhiOHJpSGxKWG5YWkMzZ3RtUwphNnF4V1MwckFrWTBNREd5SW8xOVlXV2gyZUZvUVZPR1kweFdHeG9kd1BTY0ZoZnhVbVZTbS9ndzlEcFd2MnF3Cm9yV1hLUFlCZU1zeDBrbWdkRnZ0L2hzRXB3ZUt2U3FRYUJ5NGpyYmN2Tk05ZkcrbXJYQ01kY0VDRVRHZGNVTHAKTVB1VTdpcXgyMFkrRWkycWpwTDQwRWxjZVY2MDVzbThrb09mbjhOUFJ0anp5dTYrdFFkb0NRTGJyY2tlZFYyOAp6dmR2b1VJVmlKV25KbmgzaVVLR1F0cUtjMHcrdmVYSXl3blMzL1BMOXUxSmZhb3A0eXZUYjBmNVdQSFRTL244CjI3OENBd0VBQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWRrdjB5aS9kZkxXbWIxTU0vMklaYUhXcHpjR1QKb2kyS3lHMFJDOGtHQmxNeHZPYjBSY0d0ck9zdzNqdCtyOFU4ODRkZmV5NjI3cTZGZzdSQUxjWHowNk9aMXRCOQpTL3JGaFdGOHM1QlBJaWd1T2g2RWdMeWVoWitUczNzakZDaWdtZU83QWxVdGV0Q0xvWElNZmkwZG5PMzJJbkdUCndtTWR0aEh3c3pkaE10UGFHNG03YUYycmw1a1RSZlJla3NYd3J1M2ZNalR4MC9jdlU5dTF0MDdJbkVRdW5LaSsKbDBlSlFaVVNYNGx3dkJXb0hvYnZpOXdoMW9oSVJpRFZ1OExYS0xWbUZwQ1BuMG0wTzlxRXRUbnZ3Wi9tSk5DOApOL1VQVTMzVi9DZitEK1c1dC9LdG1GUzErQ0I0WW1DYlNkK3BseFdOaVNaY0orajd2MlRITnVVcHhRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
46+
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBcVBaODNnN2RFUFpjbzRYWnJwSkZ2VUt4aXNmUExyTWRRQmR6TU1FbDFYYVJkUkJ0CkVSUm1LUTVFTDJ3dUJKd1MxZHZ5dUllVWxlZGRrTGVDMlpKcnFyRlpMU3NDUmpRd01iSWlqWDFoWmFIWjRXaEIKVTRaalRGWWJHaDNBOUp3V0YvRlNaVktiK0REME9sYS9hckNpdFpjbzlnRjR5ekhTU2FCMFcrMytHd1NuQjRxOQpLcEJvSExpT3R0eTgwejE4YjZhdGNJeDF3UUlSTVoxeFF1a3crNVR1S3JIYlJqNFNMYXFPa3ZqUVNWeDVYclRtCnlieVNnNStmdzA5RzJQUEs3cjYxQjJnSkF0dXR5UjUxWGJ6TzkyK2hRaFdJbGFjbWVIZUpRb1pDMm9welRENjkKNWNqTENkTGY4OHYyN1VsOXFpbmpLOU52Ui9sWThkTkwrZnpidndJREFRQUJBb0lCQUIzVGpVMWgwRko3T3ZVKwozcU43Zk1ZaExOZ3oxM1lGOW1ibS9OV2hjdjFRdGZLMVdKdUlQMVNHQ1RGWjVuRzMzM2RUSVhERHRrNFVEcWRLClRkWDhpL2NRNFk0Z3BvRWdHMVhhZlZEK3poK3p4NU9MNU9SS3QrSzAzSW5xc0xJOWo0VGdlOHdaSGlGYyt2QUYKZWpycVBYN1MxVTlBQ1VQTllyTE9tVnZWRW1OUVVGaElzV2dhZkVaUndiNUI0UEtmK2toOEZLNngzR1duL0xIbgpCWG5XVU50VENGZjkzZ1dwYkFzc29KcjFCVVMzV1AwcFZaTmhzWWZpWWZoNm0xdnlIYUNNRHgyTXJpakhLZGJJClJOTXViWWFlOHZWQ0x3Q0tlOEloOGxLNWgwc2lZNk1YYlIwT2Mrc3Zaa3JJSkdjWmF3aHZFaU9NSnIxclprZ1AKRFVRK1YrRUNnWUVBM21DU2kzVytXZDNNTXgrdkRCUmtPNWJkdTM3alVKdXptZ1grVVFCY0pZa2hGb08vb1czago3blp1YkpoZ2VZUUhSektHT3NrQm1oV05CVFlLV1IxRnV0WEpwdmp6T1JtSXRYRStBTFVLRml3QUw2U0ZRSDcwCjlpK3U2UFBXS0NXMW5laVRxNnMzU0pGNkFWZTRwUERtRThsYXFTOXovWkUyMU42MEFKQS9yNUVDZ1lFQXdvSnYKWjdRU0VGb3ZOSlFSR0t1SVQ0MUE4U3lxRW92elJKRGRLakxZT0h4WW9kWUh0a2duMDZTaDU1MDVCem5qMXhxcgovVGdpRnQyT1V6eHNLbFJyY2RLWXljY2VySVM0L1Rad1YxK2dKQWJBRU5nK2d6THJ0dzJOcFF6UTJuK0NlbEpSCmc2V1JQcUlqM0xtS1hZZ0s4VWlGaHZwYVRkcVBYTVBhSFd5ZnprOENnWUI3K0F4YUVLYXdSSlNNdjVIL1F2THAKd1Y0VkkxU240RlVNZldEY1dUNEZjdC91UkQ0MVNTU3pFSFRZdDAyNUVHQmFVWkZBL2tPVldZUkhMbXd3WjhBeQp1dkh5MG9BTkNlNExjSGpuUGdYRWZIMFNFajV5eVJQWWxwYUVxVUp2R1M2WlBFbnVmc0dRQkFHbTgvY3NoRnRQCkZvWWpJU0FoY0szSGwrdHpFUGRmOFFLQmdEZFRSSDdaMEQySWVWN2FNdGF5aTY0Yy9uamEvSEVVRDVqVUg2Uk8KSEFSTkVpVE9MUmxqQXJrSFhlbjBaWEV4dlNYRTkyQ3FJOEFmT3NsZ0tXQU03UmJPRVJscm9zVHRaM1RXbERPMgpCbVhZNmE2ZzQzOEw3OUg4YitxZmI1U0dxa1ZDdnQ3VUxERUZpMi9QOHBSU0N0TEFqd0pxbVY4RnFMdDVGY1JDCnpsMnZBb0dBWjZnR1FIcEw2YXpvUkhsZlFkK2prdGo4dFpVNU4xaUtmVEFLMENYMk1CdGJHWUpiOEtNM2NhMGEKVms2MFBHYSs1OWhVTHgzblBSaU5maVBPVXdNS2JFcTBOeFhqbjN5YXRxTnBPcWlQUUlDaEdZQjVmN2IwaGZPUQpaM1orOFZQVHB3OTd1QVBVVUdaUmZPdUhQczFGYzA1TElrNGpxOTRjb0VUK0h2Mm1nNTQ9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
47+
`
48+
)
49+
2350
type kubernetesClient struct {
2451
*kubernetes.Clientset
2552

@@ -42,7 +69,44 @@ func newDialer() *connrotation.Dialer {
4269
func (r *MicroK8sControlPlaneReconciler) kubeconfigForCluster(ctx context.Context, cluster client.ObjectKey) (*kubernetesClient, error) {
4370
kubeconfigSecret := &corev1.Secret{}
4471

45-
err := r.Client.Get(ctx,
72+
// See if the kubeconfig exists. If not create it.
73+
secrets := &corev1.SecretList{}
74+
err := r.Client.List(ctx, secrets)
75+
if err != nil {
76+
return nil, err
77+
}
78+
79+
found := false
80+
for _, s := range secrets.Items {
81+
if s.Name == cluster.Name+"-kubeconfig" {
82+
found = true
83+
}
84+
}
85+
86+
c := &clusterv1.Cluster{}
87+
err = r.Client.Get(ctx, cluster, c)
88+
if err != nil {
89+
return nil, err
90+
}
91+
if !found && c.Spec.ControlPlaneEndpoint.IsValid() {
92+
93+
realDummyConfig := strings.Replace(dummyConfig, "<HOST>", c.Spec.ControlPlaneEndpoint.Host, -1)
94+
configsecret := &corev1.Secret{
95+
ObjectMeta: metav1.ObjectMeta{
96+
Namespace: cluster.Namespace,
97+
Name: cluster.Name + "-kubeconfig",
98+
},
99+
Data: map[string][]byte{
100+
"value": []byte(realDummyConfig),
101+
},
102+
}
103+
err = r.Client.Create(ctx, configsecret)
104+
if err != nil {
105+
return nil, err
106+
}
107+
}
108+
109+
err = r.Client.Get(ctx,
46110
types.NamespacedName{
47111
Namespace: cluster.Namespace,
48112
Name: cluster.Name + "-kubeconfig",

controllers/healthchecks.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55

66
clusterv1beta1 "github.com/AlexsJones/cluster-api-control-plane-provider-microk8s/api/v1beta1"
7+
78
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
89
)
910

controllers/microk8scontrolplane_controller.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"time"
2323

2424
clusterv1beta1 "github.com/AlexsJones/cluster-api-control-plane-provider-microk8s/api/v1beta1"
25+
2526
apierrors "k8s.io/apimachinery/pkg/api/errors"
2627
"k8s.io/apimachinery/pkg/runtime"
2728
kerrors "k8s.io/apimachinery/pkg/util/errors"

controllers/reconcile.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"time"
99

1010
clusterv1beta1 "github.com/AlexsJones/cluster-api-control-plane-provider-microk8s/api/v1beta1"
11+
1112
"github.com/pkg/errors"
1213
log "github.com/sirupsen/logrus"
1314
corev1 "k8s.io/api/core/v1"
@@ -147,8 +148,7 @@ func (r *MicroK8sControlPlaneReconciler) reconcileMachines(ctx context.Context,
147148

148149
if numMachines == 1 {
149150
conditions.MarkFalse(mcp, clusterv1beta1.ResizedCondition, clusterv1beta1.ScalingDownReason, clusterv1.ConditionSeverityError,
150-
"Cannot scale down control plane nodes to 0",
151-
desiredReplicas, numMachines)
151+
"Cannot scale down control plane nodes to 0")
152152

153153
return res, nil
154154
}

controllers/status.go

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55

66
clusterv1beta1 "github.com/AlexsJones/cluster-api-control-plane-provider-microk8s/api/v1beta1"
7+
78
"github.com/pkg/errors"
89
log "github.com/sirupsen/logrus"
910
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -52,15 +53,14 @@ func (r *MicroK8sControlPlaneReconciler) updateStatus(ctx context.Context,
5253

5354
kubeclient, err := r.kubeconfigForCluster(ctx, util.ObjectKey(cluster))
5455
if err != nil {
55-
log.Info("failed to get kubeconfig for the cluster", "error", err)
56-
56+
log.Info("failed to get kubeconfig for the cluster", " error ", err)
5757
return nil
5858
}
5959

6060
defer kubeclient.Close() //nolint:errcheck
6161

6262
nodeSelector := labels.NewSelector()
63-
req, err := labels.NewRequirement("node-role.kubernetes.io/master", selection.Exists, []string{})
63+
req, err := labels.NewRequirement("node.kubernetes.io/microk8s-controlplane", selection.Exists, []string{})
6464
if err != nil {
6565
return err
6666
}
@@ -75,8 +75,28 @@ func (r *MicroK8sControlPlaneReconciler) updateStatus(ctx context.Context,
7575
return nil
7676
}
7777

78+
// TODO: this is ugly and not in the right place. We need a better way to update the ProviderID
79+
// in each node because MicroK8s is not doing that by default.
7880
for _, node := range nodes.Items {
7981
if util.IsNodeReady(&node) {
82+
log.Info(node.Spec.ProviderID)
83+
if node.Spec.ProviderID == "" {
84+
for _, address := range node.Status.Addresses {
85+
for _, machine := range ownedMachines {
86+
for _, maddress := range machine.Status.Addresses {
87+
if maddress.Address == address.Address {
88+
node.Spec.ProviderID = *machine.Spec.ProviderID
89+
_, err := kubeclient.CoreV1().Nodes().Update(ctx, &node, metav1.UpdateOptions{})
90+
if err != nil {
91+
log.Info("failed to update node", " error ", err)
92+
return nil
93+
}
94+
}
95+
}
96+
}
97+
}
98+
}
99+
80100
mcp.Status.ReadyReplicas++
81101
}
82102
}
@@ -92,7 +112,7 @@ func (r *MicroK8sControlPlaneReconciler) updateStatus(ctx context.Context,
92112
mcp.Status.Ready = true
93113
}
94114

95-
log.Info("ready replicas", "count", mcp.Status.ReadyReplicas)
115+
log.Info("ready replicas", " count ", mcp.Status.ReadyReplicas)
96116

97117
return nil
98118
}

controllers/suite_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import (
3030
logf "sigs.k8s.io/controller-runtime/pkg/log"
3131
"sigs.k8s.io/controller-runtime/pkg/log/zap"
3232

33-
clusterv1beta1 "cluster-api-control-plane-provider-microk8s/api/v1beta1"
33+
clusterv1beta1 "github.com/AlexsJones/cluster-api-control-plane-provider-microk8s/api/v1beta1"
3434
//+kubebuilder:scaffold:imports
3535
)
3636

go.mod

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,22 @@ module github.com/AlexsJones/cluster-api-control-plane-provider-microk8s
33
go 1.17
44

55
require (
6-
github.com/AlexsJones/cluster-api-bootstrap-provider-microk8s v0.0.0-20220405083620-d2efbd3ad610
6+
github.com/AlexsJones/cluster-api-bootstrap-provider-microk8s v0.0.0-20220511083622-b3647739f72d
77
github.com/onsi/ginkgo v1.16.5
88
github.com/onsi/gomega v1.19.0
99
github.com/sirupsen/logrus v1.8.1
1010
k8s.io/api v0.23.5
1111
k8s.io/apimachinery v0.23.5
12+
k8s.io/apiserver v0.23.5
1213
k8s.io/client-go v0.23.5
1314
sigs.k8s.io/controller-runtime v0.11.2
1415
)
1516

17+
replace github.com/AlexsJones/cluster-api-bootstrap-provider-microk8s => github.com/ktsakalozos/cluster-api-bootstrap-provider-microk8s v0.0.0-20220620194523-668a92209b50
18+
1619
require (
1720
github.com/blang/semver v3.5.1+incompatible // indirect
1821
github.com/gobuffalo/flect v0.2.4 // indirect
19-
k8s.io/apiserver v0.23.5 // indirect
2022
)
2123

2224
require (
@@ -75,7 +77,7 @@ require (
7577
k8s.io/component-base v0.23.5 // indirect
7678
k8s.io/klog/v2 v2.60.1 // indirect
7779
k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 // indirect
78-
k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 // indirect
80+
k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9
7981
sigs.k8s.io/cluster-api v1.1.3
8082
sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect
8183
sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect

0 commit comments

Comments
 (0)