Que fait cel-rule-skill ?
Compétence Claude + CLI celctl autonome pour rédiger, valider, tester unitairement et exécuter des règles de conformité Kubernetes CEL (y compris ComplianceAsCode/content cel/shared.yml) — sans serveur MCP nécessaire.
Fonctionnalités
- Création de règles : Générer des règles de conformité CEL à partir d'exigences ou de spécifications.
- Validation : Valider la syntaxe et la sémantique des règles CEL.
- Tests unitaires : Exécuter des cas de test pour vérifier le comportement attendu des règles.
- Exécution : Appliquer les règles sur des ressources Kubernetes réelles ou simulées.
- Prise en charge des règles partagées : Utiliser des règles définies dans
ComplianceAsCode/content cel/shared.ymlou d'autres dépôts.
Prérequis
- celctl installé localement (
brew install celctlou via les versions binaires). - Claude Desktop ou un client compatible.
Utilisation
1. Créer une règle
celctl new rule --name "exemple-regle" --output ./repertoire-regles
2. Valider une règle
celctl validate --rule ./repertoire-regles/exemple-regle.yaml
3. Exécuter des tests unitaires
celctl test --rule ./repertoire-regles/exemple-regle.yaml --cases ./cas-test/*.yaml
4. Exécuter une règle sur un cluster
celctl run --rule ./repertoire-regles/exemple-regle.yaml --namespace mon-espace-noms
5. Utiliser des règles partagées
Pour inclure ComplianceAsCode/content cel/shared.yml :
celctl run --rule ./ma-regle.yaml --shared ./path/to/cel/shared.yml
Exemples
Exemple de règle (fichier YAML)
titre: Exiger que les conteneurs aient une politique de sécurité
id: DEX-SEC-001
cel-rule: |
resource.spec.containers.all(c, has(c.securityContext) && c.securityContext.runAsNonRoot == true)
Cas de test
- nom: Conteneur non root
input:
apiVersion: v1
kind: Pod
spec:
containers:
- name: app
image: nginx
securityContext:
runAsNonRoot: true
expected: true
- nom: Conteneur root (doit échouer)
input:
apiVersion: v1
kind: Pod
spec:
containers:
- name: app
image: nginx
expected: false
Installation
- Téléchargez le binaire
celctldepuis GitHub Releases. - Rendez-le exécutable :
chmod +x celctlet placez-le dans votre$PATH. - Ajoutez cette compétence à votre configuration Claude (instructions ci-dessous).
Configuration de Claude
Ajoutez à votre claude.json ou fichier de configuration équivalent :
{
"skills": [
{
"name": "cel-rule-skill",
"description": "Compétence pour les règles de conformité Kubernetes CEL",
"commands": [
{
"name": "celctl",
"path": "/chemin/vers/celctl"
}
]
}
]
}
Contribution
Les contributions sont les bienvenues ! Consultez CONTRIBUTING.md pour plus de détails.
Licence
Ce projet est sous licence Apache 2.0 – voir le fichier LICENSE pour plus d'informations.
Support
Pour des problèmes ou des demandes de fonctionnalités, ouvrez un ticket sur GitHub Issues.