L'opérateur Kubernetes synchronise les entrées d'identifiants Devolutions Server en tant que Secrets Kubernetes.
Cet opérateur utilise la ressource personnalisée définie DvlsSecret qui gère son propre Secret Kubernetes et se mettra à jour à un intervalle défini (chaque minute par défaut). L'image Docker peut être trouvée ici.
Pour en savoir plus sur l'Opérateur Kubernetes, consulter notre GitHub.
Cet opérateur est en cours de développement, attendez-vous à des changements incompatibles entre les versions.
Les variables d'environnement suivantes peuvent être utilisées pour configurer l'opérateur :
DEVO_OPERATOR_DVLS_BASEURI(requis) - URI de base de l'instance Devolutions ServerDEVO_OPERATOR_DVLS_APPID(requis) - ID de l'application Devolutions ServerDEVO_OPERATOR_DVLS_APPSECRET(requis) - Secret d'application Devolutions ServerDEVO_OPERATOR_REQUEUE_DURATION(optionnel) - Intervalle de resynchronisation des Entrées/Secrets (par défaut 60s). Les unités de temps valides sont "ns", "us" (ou "µs"), "ms", "s", "m", "h".SSL_CERT_FILE(facultatif) - Chemin vers un fichier de certificat CA personnalisé pour les serveurs Devolutions Server avec des certificats auto-signés. Ceci est automatiquement défini par le graphique Helm lorsqueinstanceSecret.caCertest fourni.
Un exemple de ressource personnalisée est disponible ici. L'ID d'entrée peut être récupéré en accédant aux propriétés de l'entrée, Avancé -> ID de session.
Il est recommandé de créer un ID d'application spécifiquement pour l'utilisation avec l'Opérateur qui a un accès minimal à un coffre ne contenant que les secrets à synchroniser.
Seules les entrées d'identifiants sont prises en charge pour le moment. Les données d'entrée disponibles dépendront du type d'entrée d'identifiants.
Étant donné que cet opérateur utilise des Secrets Kubernetes, il est recommandé de suivre les meilleures pratiques concernant les secrets, en particulier le chiffrement au repos.
Vous aurez besoin d'un cluster Kubernetes pour exécuter. Vous pouvez utiliser KIND pour obtenir un cluster local pour les tests, ou exécuter sur un cluster distant. Remarque : Votre contrôleur utilisera automatiquement le contexte actuel de votre fichier kubeconfig (c'est-à-dire, quel que soit le cluster que montre kubectl cluster-info).
Un diagramme Helm est disponible pour simplifier l'installation. Ajouter le dépôt de charts Helm Devolutions, créer un values.yaml à partir des valeurs par défaut comme point de départ, et mettre à jour les valeurs selon les besoins.
Les valeurs suivantes doivent être configurées dans votre values.yaml:
controllerManager.manager.env.devoOperatorDvlsBaseuri- Votre URL Devolutions Server (par exemple,https://dvls.example.com).controllerManager.manager.env.devoOperatorDvlsAppid- ID d'application de votre Devolutions Server.instanceSecret.secret- Secret d'application de votre Devolutions Server .
instanceSecret.caCert- Certificat CA personnalisé pour Devolutions Server auto-signé (voir ci-dessous)controllerManager.manager.env.devoOperatorRequeueDuration- Fréquence de synchronisation des secrets (par défaut :60s)
Créer un fichier values.yaml avec votre configuration Devolutions Server :
controllerManager:
manager:
env:
devoOperatorDvlsAppid: "00000000-0000-0000-0000-000000000000"
devoOperatorDvlsBaseuri: "https://dvls.example.com"
devoOperatorRequeueDuration: "60s"
instanceSecret:
secret: "your-app-secret-here"
helm repo add devolutions-helm-charts https://devolutions.github.io/helm-charts
helm repo update
helm install dvls-kubernetes-operator devolutions-helm-charts/dvls-kubernetes-operator --values values.yaml
Si votre Devolutions Server utilise un certificat auto-signé (commun dans les environnements de test/développement), vous devez fournir le certificat CA pour que l'opérateur puisse établir une connexion TLS de confiance.
Quand l'utiliser :
Tester avec des certificats auto-signés.
Certificats CA internes non présents dans le magasin de confiance du système.
Environnements de développement/staging avec PKI personnalisé.
Configuration :
Ajouter le contenu du certificat CA à votre values.yaml:
controllerManager:
manager:
env:
devoOperatorDvlsAppid: "00000000-0000-0000-0000-000000000000"
devoOperatorDvlsBaseuri: "https://dvls.example.com"
devoOperatorRequeueDuration: "60s"
instanceSecret:
secret: "your-app-secret"
# Add your CA certificate here (PEM format)
caCert: |
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKZ...
(your CA certificate content)
...
-----END CERTIFICATE-----
Installer des instances de ressources personnalisées :
kubectl apply -f config/samples/
Construire et pousser votre image à l'emplacement spécifié par IMG :
make docker-build docker-push IMG=
Déployer le contrôleur dans le cluster avec l'image spécifiée par IMG :
make deploy IMG=
Pour supprimer les CRD du cluster :
make undeploy
Ce projet vise à suivre le modèle d'Opérateur Kubernetes.
Il utilise des contrôleurs qui fournissent une fonction de réconciliation responsable de la synchronisation des ressources jusqu'à ce que l'état souhaité soit atteint sur le cluster
Installer les CRD dans le cluster :
make install
Exécuter votre contrôleur (cela s'exécutera au premier plan, alors passer à un nouveau terminal si vous souhaitez le laisser s'exécuter) :
make run
REMARQUE : Vous pouvez également exécuter cela en une étape en exécutant : make install run
Si vous modifiez les définitions de l'API, générer les manifestes tels que CR ou CRD en utilisant :
make manifests
REMARQUE : Lancer make --help pour plus d'informations sur tous les cibles possibles de make
Plus d'informations peuvent être trouvées via la documentation Kubebuilder.