Tutoriel : Exécuter la commande create sas-deployment-cr pour SAS Viya

Cet article en deux mots :

Maîtrisez la génération de la ressource SASDeployment, étape cruciale du déploiement de SAS Viya via l'Opérateur. De la configuration des permissions Docker au décryptage des paramètres de cadence et Git, découvrez comment automatiser votre infrastructure avec précision et expertise.

Dans ce nouvel article 100% orienté pratique, nous allons nous concentrer sur une étape fondamentale du déploiement de SAS Viya via l'Opérateur : la génération de la ressource personnalisée (Custom Resource) SASDeployment.

Si vos prérequis sont prêts, voyons en détail comment formuler et exécuter la commande create sas-deployment-cr pour générer votre fichier de configuration de manière optimale.

1. Avant de lancer la commande : Les points d'attention

Pour exécuter cette commande, vous devez être un administrateur disposant de permissionsRègles d'accès définissant les actions autorisées (Lire, Écrire, Supprimer, etc.) d'un utilisateur ou groupe sur un objet ou une donnée via le service d'autorisation de SAS Viya. locales sur le clusterEnsemble de nœuds (machines) interconnectés, gérés par Kubernetes, qui collaborent pour exécuter les microservices et le moteur CAS de SAS Viya, assurant haute disponibilité et passage à l'échelle..

⚠️ Attention aux permissionsRègles d'accès définissant les actions autorisées (Lire, Écrire, Supprimer, etc.) d'un utilisateur ou groupe sur un objet ou une donnée via le service d'autorisation de SAS Viya. : Le conteneur qui crée la ressource personnalisée s'exécute sous l'ID et le groupe sas. Assurez-vous impérativement que le répertoire courant $(pwd) depuis lequel vous lancez la commande possède des permissionsRègles d'accès définissant les actions autorisées (Lire, Écrire, Supprimer, etc.) d'un utilisateur ou groupe sur un objet ou une donnée via le service d'autorisation de SAS Viya. permettant à cet ID/groupe d'y accéder.

Bonne pratique : Lancez toujours cette commande depuis le répertoire parent qui contient vos dossiers de licence ($license) et de déploiement ($deploy).

2. Format de base de la commande

La création de la ressource s'effectue via une commande Docker qui fait appel à l'image sas-orchestration. Le résultat est redirigé (via >) pour créer un fichier YAML. Par convention, on préfixe ce fichier avec le nom du répertoire de déploiement (par exemple, si votre dossier est viya1, le fichier sera viya1-sasdeployment.yaml).

Voici le format de base :

1
2
3
4
5
6
7
8
9
10
11
12
13
docker run --rm \
-v $(pwd):chemin-de-montage-dans-le-conteneur \
sas-orchestration \
create sas-deployment-cr \
--deployment-data infos-certificats \
--license infos-licence \
--user-content chemin-fichiers-deploiement \
--cadence-name stable-ou-lts \
--cadence-version numero-version-cadence \
--cadence-release numero-release-cadence \
[--image-registry url-registre-miroir \]
[--repository-warehouse url-warehouse \]
> $deploy-sasdeployment.yaml

(Astuce : Vous pouvez utiliser la commande docker run --rm sas-orchestration create sas-deployment-cr --help pour lister tous les flags disponibles).

3. Décryptage des paramètres

Pour que votre fichier généré soit correct, voici comment renseigner chaque paramètre :

Cohérence des données : Vérifiez le fichier $deploy/sas-bases/.orchestration/cadence.yaml. Les valeurs entrées pour cadence-name, version et release doivent correspondre exactement aux champs name, version et release de ce fichier.

4. Exemples Pratiques

Cas n°1 : Déploiement classique avec fichiers locaux

Ici, nous montons notre répertoire courant dans /cwd/ et pointons vers des fichiers locaux pour une version LTS 2021.1, en forçant la dernière release avec "".

La commande :

1
2
3
4
5
6
7
8
9
10
11
docker run --rm \
-v $(pwd):/cwd/ \
sas-orchestration \
create sas-deployment-cr \
--deployment-data /cwd/license/SASViyaV4_69SWC4_certs.zip \
--license /cwd/license/SASViyaV4_69SWC4_lts_2021_license_2020-09-08T105930.jwt \
--user-content /cwd/viya1 \
--cadence-name lts \
--cadence-version 2021.1 \
--cadence-release "" \
> viya1-sasdeployment.yaml

Extrait du YAML généré : Notez que le contenu de votre fichier kustomization.yaml de base est directement retranscrit dans la ressource :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
apiVersion: orchestration.sas.com/v1alpha1
kind: SASDeployment
metadata:
name: sas-viya
spec:
cadenceName: lts
cadenceVersion: "2021.1"
cadenceRelease: "20200415.1748670418526"
license:
secretKeyRef:
name: sas-viya
key: license
# [...] Certificats omis
userContent:
files:
kustomization.yaml: |
resources:
- sas-bases/base
- sas-bases/overlays/cert-manager-issuer

Cas n°2 : Utilisation d'URL HTTPS et d'un dépôt Git

Dans cet exemple, la licence et les certificats sont hébergés sur un serveur, et le contenu utilisateur est sur un Git privé.

Annotation Git Requise : Lors d'un "fetch" depuis Git, le contenu doit être cloné localement par l'opérateur. La ressource générée doit donc inclure l'annotation environment.orchestration.sas.com/readOnlyRootFilesystem: "false" (généralement gérée automatiquement).

La commande :

1
2
3
4
5
6
7
8
9
10
11
docker run --rm \
-v $(pwd):/cwd/deploy \
sas-orchestration \
create sas-deployment-cr \
--deployment-data https://example.com/SASViyaV4_69SWC4_certs.zip \
--license https://example.com/SASViyaV4_69SWC4_lts_2021_license_2020-09-08T105930.jwt \
--user-content git::https://user:token@git.example.com/repository.git//viya1 \
--cadence-name lts \
--cadence-version 2020.1 \
--cadence-release "" \
> viya1-sasdeployment.yaml

Extrait du YAML généré : Cette fois, la ressource utilise la syntaxe url plutôt que secretKeyRef ou files :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
apiVersion: orchestration.sas.com/v1alpha1
kind: SASDeployment
metadata:
annotations:
environment.orchestration.sas.com/readOnlyRootFilesystem: "false"
creationTimestamp: null
name: sas-viya
spec:
caCertificate:
url: https://example.com/SAS_CA_Certificate.pem
cadenceName: lts
cadenceVersion: "2020.1"
cadenceRelease: "20200415.1748670418526"
clientCertificate:
url: https://example.com/entitlement_certificate.pem
license:
url: https://example.com/SASViyaV4_69SWC4_lts_2021_license_2020-09-08T105930.jwt
repositoryWarehouse: {}
userContent:
url: git::https://user:token@git.example.com/repository.git//viya1

Il ne vous reste plus qu'à appliquer (kubectl apply -f) cette ressource fraîchement créée dans votre clusterEnsemble de nœuds (machines) interconnectés, gérés par Kubernetes, qui collaborent pour exécuter les microservices et le moteur CAS de SAS Viya, assurant haute disponibilité et passage à l'échelle. pour que l'Opérateur SAS Viya prenne le relais !

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.