我正在运行 ArgoCD 服务器,并且想在Cluster
没有 CLI 的情况下定义一个。我想练习GitOps,所以我想在 Git 中声明我的 ArgoCD-cluster 配置。
在 CLI 中我可以做到:argocd cluster add
但是如何使用Kubernetes 清单来做到这一点?
我没有找到如何创建该Cluster
声明。我找到了如何创建Repositories
, 和Projects
,但没有类似kind: cluster
.
我正在使用Crossplane
(Crossplane 通过 k8s 清单创建集群)创建我的集群。Crossplane 将kubeconfig
其创建的集群保存在Secret
s 文件中,如下所示:
apiVersion: v1
kind: Secret
metadata:
name: cluster-details-my-cluster
namespace: default
uid: 50c7acab-3214-437c-9527-e66f1d563409
resourceVersion: '12868'
creationTimestamp: '2022-01-06T19:03:09Z'
managedFields:
- manager: crossplane-civo-provider
operation: Update
apiVersion: v1
time: '2022-01-06T19:03:09Z'
fieldsType: FieldsV1
fieldsV1:
f:data:
.: {}
f:kubeconfig: {}
f:type: {}
selfLink: /api/v1/namespaces/default/secrets/cluster-details-my-cluster
data:
kubeconfig: >-
YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VKbFJFTkRRVkl5WjBGM1NVSkJaMGxDUVVSQlMwSm5aM0ZvYTJwUFVGRlJSRUZxUVdwTlUwVjNTSGRaUkZaUlVVUkVRbWh5VFROTmRHTXlWbmtLWkcxV2VVeFhUbWhSUkVVeVRrUkZNRTlVVlROT1ZFbDNTR2hqVGsxcVNYZE5WRUV5VFZScmQwMXFUWGxYYUdOT1RYcEpkMDFVUVRCTlZHdDNUV3BOZVFwWGFrRnFUVk5_SHORTENED
type: Opaque
data.kubeconfig
内容是常规的 bas64 编码,kubeconfig
因此很容易解码,如下所示:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlRENDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHd_SHORTENED
server: https://MY.IP.TO.K8S:6443
name: my-cluster
contexts:
- context:
cluster: my-cluster
user: my-cluster
name: my-cluster
current-context: my-cluster
kind: Config
preferences: {}
users:
- name: my-cluster
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrVENDQVRlZ0F3SUJBZ0lJQS9adEZFT1Avcnd3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOalF4TkRrMU56VXlNQjRYRFRJeU1ERXdOakU1TURJek1sb1hEVEl6TURFdwpOakU1TURJek1sb3dNREVYT_SHORTENED
client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUpJNlVhTDlLem9yL1VpdzlXK1NNUTAxV1BES2ZIK_SHORTENED
我真的需要手动干预并且必须打破 GitOps 实践吗?只是告诉 ArgoCD 我的集群及其配置在哪里?配置已经在集群中。
k get secret cluster-details-my-cluster
NAME TYPE DATA AGE
cluster-details-my-cluster Opaque 1 158m
非常感谢您提前