diff --git a/charts/capi2argo-cluster-operator/Chart.yaml b/charts/capi2argo-cluster-operator/Chart.yaml index 91b678ef..f5942aef 100644 --- a/charts/capi2argo-cluster-operator/Chart.yaml +++ b/charts/capi2argo-cluster-operator/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 0.1.14 +appVersion: 0.2.0 description: Capi-2-Argo Cluster Operator (CACO) converts ClusterAPI Cluster credentials into ArgoCD Cluster definitions and keep them synchronized. home: https://github.com/dntosas/capi2argo-cluster-operator keywords: diff --git a/charts/capi2argo-cluster-operator/values.yaml b/charts/capi2argo-cluster-operator/values.yaml index 585834a2..321717c4 100644 --- a/charts/capi2argo-cluster-operator/values.yaml +++ b/charts/capi2argo-cluster-operator/values.yaml @@ -12,7 +12,7 @@ replicaCount: 1 image: registry: ghcr.io repository: dntosas/capi2argo-cluster-operator - tag: v0.1.14 + tag: v0.2.0 pullPolicy: Always pullSecrets: [] diff --git a/controllers/argo_cluster.go b/controllers/argo_cluster.go index 459a6585..f08ecd73 100644 --- a/controllers/argo_cluster.go +++ b/controllers/argo_cluster.go @@ -50,6 +50,7 @@ type ArgoCluster struct { // ArgoConfig represents Argo Cluster.JSON.config type ArgoConfig struct { TLSClientConfig ArgoTLS `json:"tlsClientConfig"` + BearerToken string `json:"bearerToken"` } // ArgoTLS represents Argo Cluster.JSON.config.tlsClientConfig @@ -81,6 +82,7 @@ func NewArgoCluster(c *CapiCluster, s *corev1.Secret, cluster *clusterv1.Cluster }, TakeAlongLabels: takeAlongLabels, ClusterConfig: ArgoConfig{ + BearerToken: c.KubeConfig.Users[0].User.Token, TLSClientConfig: ArgoTLS{ CaData: c.KubeConfig.Clusters[0].Cluster.CaData, CertData: c.KubeConfig.Users[0].User.CertData, diff --git a/controllers/capi_cluster.go b/controllers/capi_cluster.go index e6503aac..1598af28 100644 --- a/controllers/capi_cluster.go +++ b/controllers/capi_cluster.go @@ -48,6 +48,7 @@ type User struct { type UserInfo struct { CertData string `yaml:"client-certificate-data"` KeyData string `yaml:"client-key-data"` + Token string `yaml:"token"` } // NewCapiCluster returns an empty CapiCluster type. @@ -85,5 +86,5 @@ func ValidateCapiSecret(s *corev1.Secret) error { // ValidateCapiNaming validates CAPI kubeconfig naming convention. func ValidateCapiNaming(n types.NamespacedName) bool { - return strings.HasSuffix(n.Name, "-kubeconfig") + return strings.HasSuffix(n.Name, "-kubeconfig") && !strings.HasSuffix(n.Name, "-user-kubeconfig") } diff --git a/tests/capi-kubeconfig-eks.yaml b/tests/capi-kubeconfig-eks.yaml new file mode 100644 index 00000000..2b24877b --- /dev/null +++ b/tests/capi-kubeconfig-eks.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Config +clusters: +- cluster: + certificate-authority-data: test + server: https://test.gr7.eu-west-1.eks.amazonaws.com + name: test-cluster +users: +- name: test-cluster-capi-admin + user: + token: test \ No newline at end of file