|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
|
これは未公開の文書です Admission Controller 1.34-dev. |
ArgoCDのインストール
Kubernetesリソースを管理するためにArgoCDを使用している場合、ArgoCDを使用してSUSE Security Admission Controllerをインストールしたいかもしれません。これは可能ですが、いくつかの考慮事項があります。Admission Controller v1.17.0以降、cert-managerの依存関係は削除されました。新しい証明書リコンシリエーターがあり、証明書を自動的に更新します。これは、Admission Controllerコントローラーが証明書の作成と更新を行うことを意味します。これには、ルートCAとすべてのWebhook証明書が含まれます。
初期のルートCAとWebhook証明書の作成は、利用可能なHelm関数を使用してHelmチャートのインストール中に行われます。したがって、Helmチャートのレンダリング中に、インストールは証明書がすでに作成されているかどうかを確認し、作成されていない場合はそれを作成します。
これは、ArgoCDがテンプレートをレンダリングするためにHelmのみを使用し、すべてのリソースライフサイクル管理をArgoCDが行うため、問題を引き起こします。ArgoCDがHelmチャートをレンダリングして、クラスターアプリケーションがチャート定義から逸脱していないことを確認するたびに、再度証明書の作成を試みます。その結果、証明書とWebhook設定を保存するシークレットが非同期としてマークされます。
この問題を解決するには、ArgoCDアプリケーションを次のように構成する必要があります:
-
シークレット内の`data`フィールド
-
`caBundle`内の`MutatingWebhookConfiguration`フィールド
-
`ValidatingWebhookConfiguration`リソース。
これを行うには、ArgoCDアプリケーションに`ignoreDifferences`フィールドを追加します:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kubewarden-crds
namespace: argocd
spec:
project: default
source:
repoURL: https://charts.kubewarden.io
chart: kubewarden-crds
targetRevision: 1.13.0
destination:
server: https://kubernetes.default.svc
namespace: kubewarden-system
syncPolicy:
automated:
prune: true
selfHeal: true
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kubewarden-controller
namespace: argocd
spec:
project: default
source:
repoURL: https://charts.kubewarden.io
chart: kubewarden-controller
targetRevision: 4.1.0
destination:
server: https://kubernetes.default.svc
namespace: kubewarden-system
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions: # Sync options which modifies sync behavior
# When syncing changes, respect fields ignored by the ignoreDifferences configuration
- RespectIgnoreDifferences=true
# ignoreDifferences is the important configuration to avoid ArgoCD marking
# the secrets and # webhook configurations as unsynchronized
ignoreDifferences:
- group: ""
kind: "Secret"
name: kubewarden-ca
namespace: kubewarden-system
jsonPointers:
- /data
- group: ""
kind: "Secret"
name: kubewarden-webhook-server-cert
namespace: kubewarden-system
jsonPointers:
- /data
- group: ""
kind: "Secret"
name: kubewarden-audit-scanner-client-cert
namespace: kubewarden-system
jsonPointers:
- /data
- group: "admissionregistration.k8s.io"
kind: "MutatingWebhookConfiguration"
jqPathExpressions:
- '.webhooks[]?.clientConfig.caBundle'
- group: "admissionregistration.k8s.io"
kind: "ValidatingWebhookConfiguration"
jqPathExpressions:
- '.webhooks[]?.clientConfig.caBundle'
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kubewarden-defaults
namespace: argocd
spec:
project: default
source:
repoURL: https://charts.kubewarden.io
chart: kubewarden-defaults
targetRevision: 2.8.0
destination:
server: https://kubernetes.default.svc
namespace: kubewarden-system
syncPolicy:
automated:
prune: true
selfHeal: true
|
この例では、重要な要素は`ignoreDifferences`設定であり、Admission Controllerコントローラーアプリケーションです。残りの内容は、ArgoCDアプリケーションの設定方法と完全な例を提供するための文脈を提供します。 |