Skip to content

Commit

Permalink
feat: add support for EKS cluster secrets
Browse files Browse the repository at this point in the history
Signed-off-by: Jim Ntosas <[email protected]>
  • Loading branch information
dntosas committed Feb 20, 2024
1 parent 855f175 commit 405c4cb
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 3 deletions.
2 changes: 1 addition & 1 deletion charts/capi2argo-cluster-operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -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:
Expand Down
2 changes: 1 addition & 1 deletion charts/capi2argo-cluster-operator/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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: []

Expand Down
2 changes: 2 additions & 0 deletions controllers/argo_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand Down
3 changes: 2 additions & 1 deletion controllers/capi_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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")
}
11 changes: 11 additions & 0 deletions tests/capi-kubeconfig-eks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Config
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJRnpCL0N3c1hXOGd3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TkRBeU1qQXhNVEV6TWpsYUZ3MHpOREF5TVRjeE1URTRNamxhTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUURoejZDOThoY09EUTVSLzZFSHpKR2tGM1YxWklSTkFxc2tFYkQ1Uk5xWEh1SWN0ZXk5YW8ya1hMcFUKUTJieGt4NDVXU2gxY1VHd0QwK2tBRXhEd2tSYStqbTBVaFlRM09uSG9zMVB6RnJLUnI5VG1XTXByYWo3akl0YQp6b1ZzQXlKN0tPT2NqWldkSjNDU2k3NHdWVklyTFpmL2NtMHh3eERqaFpDajRxUnBUZXIwakIrbjJGczFxVU9uCnVsdERwUzlkV0JwTGVkNWRBRU5UZGF5c0V4TDFseUh0NzI0OGZHckMySW1IN0N4NDljWWpVUEh0SkR4Vm9IZGcKZjFGdUZ6WjRaWGl3Sm9mYXNRMlZYS2p0L0VzOXVqcTQ3cWovd1pUd0pKTjl5dVRmNmxCT2cwKytXam1ua1ZpMAp5MndTdVVwd1BVc1pDS2Q3UEZJdVhDZnlSKzNCQWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJTV1A0ckVKQy9sN3FnVGx2QndzZDRXckxJOENqQVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQWVRUzF5T2pidAp1N1VNTU03U1BpdkEzeXRzS0pVbUw0ZTBmQjd0YzNaUVUwYjAyR0k4RUFRdGZoVGZxNW4yRUx5bEtJZTVXQW5DCmlPWWJha1QrSVJGQXJwR09YM2wxQkhmV0owUDN5UGxTQUYvbEpxc1FGRmdqTGJHbnFQWWhZWXQwTEp2THVOdDQKcXRDcndHMEdHZ05lUUkrYkpseFcwQmtZZHI2UmhHUEc1S0dqQWFQMlFhZ3hoTDVhNk9sUE5EVEQ4cFpweFhPNAo4UmVOS2lEanNTcVFYU0hXVTZCWms0K1F4VWdBM3I4S29yN3Jnb0JTOFpWVmR2NDhLdHAwRXZqUnRxQWdqc0FoCmFZc3NyeHVyV3VRaVpNUnJ6RXMwZU5SMjduUlhCN0g2ZTZPQURqbkNBZnBnMnA3bVJKSFJBUS9yRklCOXNScisKUDNuVVQrQnd4OE9iCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
server: https://FCB6EDA3109F58343CAFE69A0EC5CAEF.gr7.eu-west-1.eks.amazonaws.com
name: test-managed-cluster
users:
- name: test-managed-cluster-capi-admin
user:
token: k8s-aws-v1.aHR0cHM6Ly9zdHMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vP0FjdGlvbj1HZXRDYWxsZXJJZGVudGl0eSZWZXJzaW9uPTIwMTEtMDYtMTUmWC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BU0lBUjNNNkEyNjdNNFo0Vlk0UyUyRjIwMjQwMjIwJTJGZXUtd2VzdC0xJTJGc3RzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDAyMjBUMTMxODQyWiZYLUFtei1FeHBpcmVzPTkwMCZYLUFtei1TZWN1cml0eS1Ub2tlbj1JUW9KYjNKcFoybHVYMlZqRUVZYUNXVjFMWGRsYzNRdE1TSkhNRVVDSUhSZGhtOGtNcHdqdk5xZWs2QlVSUHdETkpCUjRxU0RtJTJCbW9kJTJCSHNKTzhNQWlFQW5zU3ozMjZ0d0xsVXpMM0ZkOVlNVlFLRWNWcUwwVkRkZ0ZzY3lDUGdCQzRxb0FJSUxoQURHZ3d4TWpjMU5qazRNVEV6T1RBaURHT2JiWXlXRW1ZSGpRSENiQ3I5QVl5VWFUbk8lMkZMUDNwMUZRbGkzN0lDYiUyRld6JTJCb0wyaTlyODNNV0oxQWxnY205VkE1aVpUTjgxaiUyQnVVNnlYamJhbjNkSDBhbG9vTTdscnNjUWNTTm80SEJKZEF0OEtHNzVURiUyRjc4VGU5OFVJUnUlMkZCSU43Wmp6JTJCdDJodUw0Y3MlMkZucG5uand6NWY4YlZuaTd5ZndDR1M3ajNUcUwwYkR4VHh0TXhBVHM2d25Bc2RLb3hONlZYa0ROSE9DTTVBNWh4Sk0yZXpLRCUyRkIlMkJwSlcxMTZRbDYxZlpScExYb1VXdXdjWG1lSktQaFcyWFlQaG90UTdDJTJCS1NEcENrSmpJOGhGQWRHUHZKTUZ4OU5BVTZHU09lbEk2QW1PSFclMkYwNnhWbHdqb1pFcXJrUHVub3ZGYWsxOTFqODZXdVdnJTJCeGl3SzB1NzUzUzBqRW9qSnpNa3FBYjMlMkIwRXdzYzNTcmdZNm5RR2c4d2RSdXNKVmZibjZ1eVFwZ0wzZzhHWmdmNUFCM3R5djQ1ekQxJTJGa0lyUmk5a3ZDOEtUb1RLOEpNeVU1JTJGZzdBMXZjNWpRS3hsUjNJMjU4RHh2Q1NtSkRxRTlHcEw0VkhUQmRxYUJXVkRZV1ZLUHdmYWQzN1d6OWxlc1Z0YUlqRTYwSVoyZnZ4QWRuMVUxQ1NhSUhzQWpKU3E5dzhMR2xxYzExQkdHSWdIUUlDN2kwZ0NUaXNaMFQzYnZuMmZtTTI0UEN3aVElMkZ2RjUydXoyUSUyQmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JTNCeC1rOHMtYXdzLWlkJlgtQW16LVNpZ25hdHVyZT00YWQxOGQ0ODJlMzAyMDEyOWIzMzIwNzU0ZWIwYjIxOTNkYzE3ZjgxZDdjMWIyMWQzOGY3NTFiNjAxNzdlZmQy

0 comments on commit 405c4cb

Please sign in to comment.