1.6. 配置 ImagePullPolicy
GitOps Operator 允许管理员在多个级别上配置 imagePullPolicy,以控制 Argo CD 组件如何拉取容器镜像。
imagePullPolicy 配置遵循分级优先级系统,其中最具体的配置具有优先权:
-
使用
spec.imagePullPolicy字段在 Argo CD CR 中定义实例级别策略。 -
通过 GitOps Operator
Subscription中的IMAGE_PULL_POLICY环境变量定义的全局级策略。 -
默认策略-IfNotPresent在没有指定以前的配置时使用。
| 值 | 描述 |
|---|---|
|
| 始终拉取(pull)镜像。 |
|
| 只有在本地没有镜像时拉取镜像。 |
|
| 永不拉取(pull)镜像。 |
您可以通过在 Operator 的 Subscription 中设置 IMAGE_PULL_POLICY 环境变量来为 Operator 管理的所有 Argo CD 实例定义全局镜像拉取策略。例如:
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: openshift-gitops-operator
spec:
config:
env:
- name: IMAGE_PULL_POLICY
value: "Always"
实例级配置覆盖 Operator 级别策略,并将配置仅应用到 CR 中定义的特定实例。
以下示例演示了如何为 Argo CD 实例中所有组件配置 imagePullPolicy。
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
name: argocd
namespace: argocd
spec:
imagePullPolicy: IfNotPresent
以下示例演示了如何为 GitOpsService 实例中所有组件定义 imagePullPolicy。
apiVersion: pipelines.openshift.io/v1alpha1
kind: GitOpsService
metadata:
name: gitops-service
namespace: openshift-gitops
spec:
imagePullPolicy: Always
以下示例演示了如何为 RolloutsManager 实例中所有组件设置 imagePullPolicy。
apiVersion: argoproj.io/v1alpha1
kind: RolloutManager
metadata:
name: argo-rollout
labels:
example: basic
spec:
imagePullPolicy: Always
通过在适当的级别上配置 imagePullPolicy,您可以控制为 GitOps 组件更新容器镜像的频率。