Contribuisci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina su che si trova nel riquadro destro di ogni pagina.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurare le impostazioni del CD Argo
Il CD EKS Capability for Argo offre un'esperienza Argo CD completamente gestita. Upstream Argo CD offre molte impostazioni e funzionalità opzionali e la funzionalità ne supporta un sottoinsieme. Per le impostazioni supportate, è possibile configurarle allo stesso modo del CD Argo upstream, tramite l'interfaccia del cluster. argocd-cm ConfigMap La funzionalità legge i campi supportati ConfigMap e li applica all'istanza Argo CD gestita.
Le sezioni seguenti descrivono come configurare argocd-cm ConfigMap le impostazioni supportate.
Prerequisiti
Prima di configurare le impostazioni del CD Argo, è necessario disporre di:
-
È stato creato un cluster EKS con la funzionalità Argo CD (vedi) Crea una funzionalità Argo CD
-
Lo spazio dei nomi configurato per Argo CD nella funzionalità (per impostazione predefinita, lo spazio dei nomi)
argocd -
La
kubectlCLI configurata per comunicare con il cluster
Configura argocd-cm ConfigMap
Per configurare le impostazioni del CD Argo supportate, create un ConfigMap nome argocd-cm nel cluster. La funzionalità gestita legge le impostazioni supportate da questo ConfigMap e le applica all'istanza Argo CD gestita. Per le impostazioni supportate dalla funzionalità e per come vengono applicate, vedereImpostazioni supportate.
Creane uno ConfigMap con i seguenti requisiti:
-
Assegna un nome al ConfigMap
argocd-cm. -
Createlo nello spazio dei nomi configurato per Argo CD nella funzionalità (lo spazio dei nomi impostato nella configurazione di Argo CD quando avete creato la funzionalità). Per impostazione predefinita, questo è il namespace.
argocd -
Applica l'etichetta.
app.kubernetes.io/part-of: argocdQuesta etichetta è obbligatoria e corrisponde al comportamento originario di Argo CD. -
Usa lo stesso formato di campo e le stesse chiavi del CD Argo originale.
L'esempio seguente mostra la ConfigMap struttura, con un'impostazione che mostra un banner nell'interfaccia utente di Argo CD. Aggiungi altre impostazioni supportate data in allo stesso modo.
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: ui.bannercontent: "Production cluster"
Importante
A non ConfigMap è un archivio sicuro. Non inserire segreti, credenziali o altre informazioni sensibili nel argocd-cm ConfigMap.
In che modo la funzionalità applica le tue impostazioni
È possibile configurare Argo CD creandone uno argocd-cm ConfigMap interno al proprio cluster. La funzionalità applica le impostazioni supportate dall'istanza Argo CD gestita dall'utente ConfigMap a quella gestita. Applica solo le impostazioni supportate e ignora qualsiasi altro campo o funzionalità impostato. Qualsiasi impostazione non elencata in non Impostazioni supportate è supportata e non ha alcun effetto.
La funzionalità convalida i valori impostati. Se un valore non è valido o non è valido, la funzionalità lo ignora e continua a funzionare con la configurazione predefinita per tale impostazione. Un errore nella tua istanza Argo CD gestita ConfigMap non interrompe.
Nota
La funzionalità applica la configurazione presente argocd-cm ConfigMap nel cluster. Qualsiasi principale con accesso in scrittura ConfigMap può modificare la configurazione dell'istanza Argo CD gestita. Il controllo degli accessi basato sui ruoli (RBAC) di Kubernetes del tuo cluster regola l'accesso alle autorizzazioni IAM che controllano la risorsa di capacità ConfigMap, e non le autorizzazioni IAM. Come best practice di sicurezza, concedi l'autorizzazione a modificare gli oggetti nel namespace Argo CD solo a utenti e account di servizio affidabili. Poiché Kubernetes RBAC classifica le autorizzazioni in base al tipo di risorsa, puoi comunque concedere l'accesso di cui hanno bisogno gli altri utenti. Ad esempio, puoi consentire agli sviluppatori di creare e gestire le applicazioni ma non di modificarle. ConfigMaps Ciò impedisce loro di modificare la argocd-cm configurazione.
Per ulteriori informazioni sul modello di responsabilità condivisa, sull'RBAC di Kubernetes e sull'isolamento dello spazio dei nomi per la funzionalità Argo CD, vedere. Considerazioni sulla sicurezza per EKS Capabilities Per controllare l'accesso all'interno di Argo CD, vedere. Configurare le autorizzazioni Argo CD
Impostazioni supportate
Le sezioni seguenti elencano le argocd-cm impostazioni supportate dalla funzionalità gestita, raggruppate per categoria. Ogni impostazione utilizza la stessa chiave e lo stesso formato del CD Argo originale. La colonna How your value is apply di ogni tabella mostra se il valore si aggiunge o sovrascrive la configurazione predefinita della funzionalità. Per la descrizione completa di ciascuna impostazione, consultate il ConfigMap riferimento argocd-cm
Interfaccia utente
Queste impostazioni personalizzano l'interfaccia utente di Argo CD.
| Impostazione | Description | Come viene applicato il tuo valore |
|---|---|---|
|
|
Testo per un banner visualizzato nell'interfaccia utente, ad esempio un identificatore di ambiente o un avviso di manutenzione. |
Sostituisce |
|
|
URL a cui si collega il banner, ad esempio un runbook o una pagina wiki. |
Sostituisce |
|
|
Impostato per impedire |
Sostituisce |
|
|
Dove appare il banner: |
Sostituisce |
|
|
URL di un file CSS personalizzato per il branding o lo stile. Il CSS viene eseguito nel tuo browser. |
Sostituisce |
Impostazioni delle risorse
Queste impostazioni controllano il modo in cui la funzionalità controlla, confronta e visualizza le risorse gestite da Argo CD.
| Impostazione | Description | Come viene applicato il tuo valore |
|---|---|---|
|
|
Campi da ignorare quando Argo CD confronta Git con il cluster per un tipo di risorsa, come il conteggio delle repliche gestito da un Horizontal Pod Autoscaler. |
Aggiunge |
|
|
Campi da ignorare quando si confronta Git con il cluster, applicati a tutti i tipi di risorse. |
Aggiunge |
|
|
Campi che Argo CD ignora quando decide se un evento di aggiornamento deve attivare la riconciliazione, con conseguente riduzione del carico. L'evento si verifica ancora e Argo CD ignora solo le modifiche a questi campi. |
Aggiunge |
|
|
Campi che Argo CD ignora durante l'elaborazione degli eventi di aggiornamento, applicati a tutti i tipi di risorse. |
Aggiunge |
|
|
Tipi di campo (elenco, mappa o primitiva) per una risorsa personalizzata, in modo che Argo CD calcoli le differenze accurate invece di mostrare la sostituzione dell'intero campo. |
Aggiunge |
|
|
Controllo dello stato personalizzato per un tipo di risorsa, definito come script Lua. La funzionalità include controlli di integrità integrati per le risorse ACK e kro. Consulta Controlli dell'integrità personalizzati. |
Sostituisce |
|
|
Tipi di risorse che Argo CD non controlla, il che migliora le prestazioni per i tipi ad alto tasso di abbandono. |
Aggiunge |
|
|
Tipi di risorse che Argo CD controlla. Una volta impostato, Argo CD guarda solo i tipi elencati. |
Aggiunge |
|
|
Opzioni che controllano il modo in cui Argo CD calcola le differenze, ad esempio. |
Sostituisce |
|
|
Se il controller controlla solo le risorse per le quali dispone dell'autorizzazione RBAC per leggere. Accetta |
Sostituisce |
|
|
Etichette di risorse aggiuntive da visualizzare nella vista delle risorse dell'interfaccia utente. |
Sostituisce |
|
|
Etichette da applicazioni e progetti da copiare negli eventi Kubernetes generati da Argo CD. |
Sostituisce |
|
|
Etichette da escludere dagli eventi Kubernetes generati da Argo CD. |
Sostituisce |
|
|
Annotazioni da mascherare quando l'interfaccia utente o la CLI visualizzano i segreti. |
Sostituisce |
Impostazioni del repository e degli strumenti
Queste impostazioni controllano gli strumenti dei manifest utilizzati da Argo CD per renderizzare i manifesti.
| Impostazione | Description | Come viene applicato il tuo valore |
|---|---|---|
|
|
Se Kustomize è abilitato come tipo di sorgente manifesto. |
Sostituisce |
|
|
Se Helm è abilitato come tipo di sorgente manifesto. |
Sostituisce |
|
|
Se Jsonnet è abilitato come tipo di origine manifesto. |
Sostituisce |
|
|
I flag globali della riga di comando sono passati a tutti. |
Sostituisce |
Flag Kustomize.buildOptions supportati
Perkustomize.buildOptions, la funzionalità filtra il tuo valore in una serie di flag sicuri e supportati. Non supporta i flag che consentono alla build di leggere file arbitrari o eseguire codice arbitrario. Elimina ogni flag non supportato o valore non valido singolarmente e applica i flag supportati rimanenti. È possibile scrivere i flag nel modulo or. --flag value --flag=value
| Flag | Valori supportati | Note |
|---|---|---|
|
|
|
Cambia l'ordine solo dello YAML renderizzato. |
|
|
Booleano |
Esegue il binario Helm gestito dal percorso. |
|
|
Booleano |
Aggiunge solo etichette. |
La funzionalità elimina qualsiasi altro contrassegno--load-restrictor, incluso--enable-exec, e--enable-alpha-plugins.
Controlli dell'integrità personalizzati
Argo CD valuta lo stato delle risorse che impiega. Per le risorse Kubernetes standard come Deployments and Services, Argo CD dispone di una logica di integrità integrata. Per le risorse personalizzate che Argo CD non riconosce, non ha una logica di integrità integrata e non riporta lo stato di integrità.
Quando una risorsa personalizzata non viene sottoposta a controlli sullo stato di salute, Argo CD non ne segnala lo stato e la esclude dallo stato generale dell'applicazione. Di conseguenza, un'applicazione può segnalare Healthy anche quando le sue risorse sono ancora in fase di provisioning o hanno fallito. Ciò significa anche che le ondate di sincronizzazione possono avanzare prima che tali risorse siano pronte, poiché l'ordine di sincronizzazione dipende dallo stato di salute segnalato.
Con i controlli di integrità personalizzati, puoi definire la logica di integrità per le tue risorse personalizzate, in modo che Argo CD registri lo stato di salute accurato e sequenzi correttamente le implementazioni. Definite i controlli di integrità personalizzati nello stesso modo in cui utilizzate il CD Argo originale, utilizzando le stesse chiavi di configurazione. Gli script upstream esistenti e gli esempi della community funzionano con il CD EKS Capability for Argo senza modifiche.
Built-in controlli sanitari per ACK e kro
Il CD EKS Capability for Argo include controlli di integrità integrati per le risorse AWS Controllers for Kubernetes (ACK) e kro (Kube Resource Orchestrator). Queste risorse riportano uno stato di salute accurato senza configurazioni aggiuntive.
Per modificare il modo in cui la funzionalità valuta lo stato di una risorsa ACK o kro, puoi definire un controllo di integrità personalizzato per quel tipo di risorsa. Un controllo di integrità personalizzato definito per un tipo di risorsa sostituisce il controllo di integrità integrato per quel tipo.
Scrivi un controllo sanitario personalizzato
Definisci un controllo di integrità personalizzato aggiungendo uno script Lua a argocd-cm ConfigMap, utilizzando una chiave nel seguente formato:
resource.customizations.health.<group>_<kind>
Sostituiscilo <group> con il gruppo API della Custom Resource e <kind> con il suo genere. Ad esempio, la chiave per una risorsa personalizzata con il gruppo API example.com e il tipo Database èresource.customizations.health.example.com_Database.
Lo script Lua ha accesso all'oggetto risorsa tramite la obj variabile globale. Lo script deve restituire una tabella con un status campo impostato su uno traHealthy, ProgressingDegraded, oSuspended. Lo script può anche impostare un message campo opzionale per fornire un messaggio di stato descrittivo.
L'esempio seguente ConfigMap definisce un controllo dello stato di salute per una risorsa Database personalizzata. Lo script riporta la risorsa nello stato in Healthy cui si trova Ready e come Progressing diversamente:
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: resource.customizations.health.example.com_Database: | hs = {} hs.status = "Progressing" hs.message = "Waiting for the resource to become ready" if obj.status ~= nil then if obj.status.phase == "Ready" then hs.status = "Healthy" hs.message = "Database is ready" end end return hs
Per ulteriori informazioni sul formato dello script di controllo dello stato, sull'elenco dei controlli di integrità integrati e sugli esempi della community che è possibile adattare, consultate Resource Health
Sicurezza e limitazioni
Grazie alla funzionalità gestita, gli script di controllo dello stato personalizzati vengono eseguiti in un sistema di calcolo isolato e completamente gestito. L'ambiente di esecuzione è isolato per funzionalità e non ha accesso ai dati del cluster o alle AWS API. Non esegui il provisioning, non applichi patch o gestisci alcuna parte dell'ambiente di esecuzione.
Tieni presente quanto segue quando scrivi controlli di integrità personalizzati da utilizzare con EKS Capability:
-
Le librerie Lua standard non sono disponibili. L'
useOpenLibsopzione è sempre disabilitata, che è l'impostazione predefinita nel CD Argo upstream. Gli script non possono accedere al sistema operativo o al file system. Se si esegue la migrazione di uno script da un CD Argo autogestito che si basa su librerie Lua standard, potrebbe non funzionare allo stesso modo nella funzionalità. Si consiglia di testare gli script di controllo dello stato di salute in un ambiente di sviluppo prima di utilizzarli in produzione.
Se la valutazione dello stato di integrità è temporaneamente non disponibile, i report di funzionalità hanno interessato le Risorse personalizzate Progressing anziché rimuoverne lo stato di integrità. Ciò mantiene le risorse interessate visibili nello stato dell'Applicazione fino al ripristino della valutazione.
Verifica un controllo sanitario personalizzato
Dopo aver applicato o aggiornato il argocd-cm ConfigMap, conferma che il controllo sanitario è attivo:
-
Nell'interfaccia utente di Argo CD, scegliete un'applicazione che includa una risorsa personalizzata del tipo per il quale avete definito un controllo di integrità. Conferma che la risorsa riporti lo stato di integrità restituito dallo script. In alternativa,
argocd app getesegui e rivedi lo stato di integrità della risorsa.<application-name> -
Se la risorsa non riporta lo stato di salute previsto, verifica quanto segue:
-
ConfigMap È denominato
argocd-cme si trova nello spazio dei nomi configurato per Argo CD nella funzionalità. -
ConfigMap Ha l'etichetta richiesta.
app.kubernetes.io/part-of: argocd -
La chiave di controllo dello stato utilizza la chiave corretta
<group>_<kind>per il tipo di risorsa.
-