amazon-vpc-cni-k8s icon indicating copy to clipboard operation
amazon-vpc-cni-k8s copied to clipboard

imagePullPolicy management doesn't supported by cluster-addon json schema

Open zemliany opened this issue 1 year ago • 5 comments
trafficstars

What happened:

Hi team! With recent changes that started from release 1.18.4 https://github.com/aws/amazon-vpc-cni-k8s/releases/tag/v1.18.4 we're noticed that there was a change introduced to respect ImagePullPolicy for daemonset initContainer and NodeAgent that strictly pointed to Always https://github.com/aws/amazon-vpc-cni-k8s/pull/3010 and seems there is no possibility to overwrite/manage this value by any automation, because currently such settings is not supported by cluster-addon json schema

aws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.18.5-eksbuild.1 | jq -r '.configurationSchema' | python -m json.tool
{
    "$ref": "#/definitions/VpcCni",
    "$schema": "http://json-schema.org/draft-06/schema#",
    "definitions": {
        "Affinity": {
            "type": [
                "object",
                "null"
            ]
        },
        "EniConfig": {
            "additionalProperties": false,
            "properties": {
                "create": {
                    "type": "boolean"
                },
                "region": {
                    "type": "string"
                },
                "subnets": {
                    "additionalProperties": {
                        "additionalProperties": false,
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "securityGroups": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            }
                        },
                        "required": [
                            "id"
                        ],
                        "type": "object"
                    },
                    "minProperties": 1,
                    "type": "object"
                }
            },
            "required": [
                "create",
                "region",
                "subnets"
            ],
            "type": "object"
        },
        "Env": {
            "additionalProperties": false,
            "properties": {
                "ADDITIONAL_ENI_TAGS": {
                    "type": "string"
                },
                "ANNOTATE_POD_IP": {
                    "format": "boolean",
                    "type": "string"
                },
                "AWS_EC2_ENDPOINT": {
                    "type": "string"
                },
                "AWS_EXTERNAL_SERVICE_CIDRS": {
                    "type": "string"
                },
                "AWS_MANAGE_ENIS_NON_SCHEDULABLE": {
                    "format": "boolean",
                    "type": "string"
                },
                "AWS_VPC_CNI_NODE_PORT_SUPPORT": {
                    "format": "boolean",
                    "type": "string"
                },
                "AWS_VPC_ENI_MTU": {
                    "format": "integer",
                    "type": "string"
                },
                "AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG": {
                    "format": "boolean",
                    "type": "string"
                },
                "AWS_VPC_K8S_CNI_EXCLUDE_SNAT_CIDRS": {
                    "type": "string"
                },
                "AWS_VPC_K8S_CNI_EXTERNALSNAT": {
                    "format": "boolean",
                    "type": "string"
                },
                "AWS_VPC_K8S_CNI_LOGLEVEL": {
                    "type": "string"
                },
                "AWS_VPC_K8S_CNI_LOG_FILE": {
                    "type": "string"
                },
                "AWS_VPC_K8S_CNI_RANDOMIZESNAT": {
                    "type": "string"
                },
                "AWS_VPC_K8S_CNI_VETHPREFIX": {
                    "type": "string"
                },
                "AWS_VPC_K8S_PLUGIN_LOG_FILE": {
                    "type": "string"
                },
                "AWS_VPC_K8S_PLUGIN_LOG_LEVEL": {
                    "type": "string"
                },
                "CLUSTER_ENDPOINT": {
                    "type": "string"
                },
                "DISABLE_INTROSPECTION": {
                    "format": "boolean",
                    "type": "string"
                },
                "DISABLE_LEAKED_ENI_CLEANUP": {
                    "format": "boolean",
                    "type": "string"
                },
                "DISABLE_METRICS": {
                    "format": "boolean",
                    "type": "string"
                },
                "DISABLE_NETWORK_RESOURCE_PROVISIONING": {
                    "format": "boolean",
                    "type": "string"
                },
                "DISABLE_POD_V6": {
                    "format": "boolean",
                    "type": "string"
                },
                "ENABLE_BANDWIDTH_PLUGIN": {
                    "format": "boolean",
                    "type": "string"
                },
                "ENABLE_POD_ENI": {
                    "format": "boolean",
                    "type": "string"
                },
                "ENABLE_PREFIX_DELEGATION": {
                    "format": "boolean",
                    "type": "string"
                },
                "ENABLE_SUBNET_DISCOVERY": {
                    "format": "boolean",
                    "type": "string"
                },
                "ENABLE_V4_EGRESS": {
                    "format": "boolean",
                    "type": "string"
                },
                "ENABLE_V6_EGRESS": {
                    "format": "boolean",
                    "type": "string"
                },
                "ENI_CONFIG_ANNOTATION_DEF": {
                    "type": "string"
                },
                "ENI_CONFIG_LABEL_DEF": {
                    "type": "string"
                },
                "INTROSPECTION_BIND_ADDRESS": {
                    "type": "string"
                },
                "IP_COOLDOWN_PERIOD": {
                    "format": "integer",
                    "type": "string"
                },
                "MAX_ENI": {
                    "format": "integer",
                    "type": "string"
                },
                "MINIMUM_IP_TARGET": {
                    "format": "integer",
                    "type": "string"
                },
                "NETWORK_POLICY_ENFORCING_MODE": {
                    "enum": [
                        "standard",
                        "strict"
                    ],
                    "type": "string"
                },
                "POD_MTU": {
                    "format": "integer",
                    "type": "string"
                },
                "POD_SECURITY_GROUP_ENFORCING_MODE": {
                    "type": "string"
                },
                "WARM_ENI_TARGET": {
                    "format": "integer",
                    "type": "string"
                },
                "WARM_IP_TARGET": {
                    "format": "integer",
                    "type": "string"
                },
                "WARM_PREFIX_TARGET": {
                    "format": "integer",
                    "type": "string"
                }
            },
            "title": "Env",
            "type": "object"
        },
        "Init": {
            "additionalProperties": false,
            "properties": {
                "env": {
                    "$ref": "#/definitions/InitEnv"
                },
                "resources": {
                    "$ref": "#/definitions/Resources"
                }
            },
            "title": "Init",
            "type": "object"
        },
        "InitEnv": {
            "additionalProperties": false,
            "properties": {
                "DISABLE_TCP_EARLY_DEMUX": {
                    "format": "boolean",
                    "type": "string"
                },
                "ENABLE_V6_EGRESS": {
                    "format": "boolean",
                    "type": "string"
                }
            },
            "title": "InitEnv",
            "type": "object"
        },
        "Limits": {
            "additionalProperties": false,
            "properties": {
                "cpu": {
                    "type": "string"
                },
                "memory": {
                    "type": "string"
                }
            },
            "title": "Limits",
            "type": "object"
        },
        "NodeAgent": {
            "additionalProperties": false,
            "properties": {
                "conntrackCacheCleanupPeriod": {
                    "format": "integer",
                    "type": "integer"
                },
                "enableCloudWatchLogs": {
                    "format": "boolean",
                    "type": "string"
                },
                "enablePolicyEventLogs": {
                    "format": "boolean",
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "healthProbeBindAddr": {
                    "format": "integer",
                    "type": "string"
                },
                "metricsBindAddr": {
                    "format": "integer",
                    "type": "string"
                },
                "networkPolicyAgentLogFileLocation": {
                    "type": "string"
                },
                "resources": {
                    "$ref": "#/definitions/Resources"
                }
            },
            "title": "NodeAgent",
            "type": "object"
        },
        "Resources": {
            "additionalProperties": false,
            "properties": {
                "limits": {
                    "$ref": "#/definitions/Limits"
                },
                "requests": {
                    "$ref": "#/definitions/Limits"
                }
            },
            "title": "Resources",
            "type": "object"
        },
        "Tolerations": {
            "additionalProperties": false,
            "items": {
                "type": "object"
            },
            "type": "array"
        },
        "VpcCni": {
            "additionalProperties": false,
            "properties": {
                "affinity": {
                    "$ref": "#/definitions/Affinity"
                },
                "branchENICooldown": {
                    "type": "integer"
                },
                "enableNetworkPolicy": {
                    "format": "boolean",
                    "type": "string"
                },
                "enableWindowsIpam": {
                    "format": "boolean",
                    "type": "string"
                },
                "enableWindowsPrefixDelegation": {
                    "format": "boolean",
                    "type": "string"
                },
                "eniConfig": {
                    "$ref": "#/definitions/EniConfig"
                },
                "env": {
                    "$ref": "#/definitions/Env"
                },
                "extraEnv": {
                    "type": "array"
                },
                "init": {
                    "$ref": "#/definitions/Init"
                },
                "livenessProbeTimeoutSeconds": {
                    "type": "integer"
                },
                "minimumWindowsIPTarget": {
                    "type": "integer"
                },
                "nodeAgent": {
                    "$ref": "#/definitions/NodeAgent"
                },
                "podAnnotations": {
                    "additionalProperties": {
                        "not": {
                            "type": [
                                "object",
                                "array",
                                "null"
                            ]
                        }
                    },
                    "type": [
                        "object",
                        "null"
                    ]
                },
                "podLabels": {
                    "additionalProperties": {
                        "not": {
                            "type": [
                                "object",
                                "array",
                                "null"
                            ]
                        }
                    },
                    "type": [
                        "object",
                        "null"
                    ]
                },
                "readinessProbeTimeoutSeconds": {
                    "type": "integer"
                },
                "resources": {
                    "$ref": "#/definitions/Resources"
                },
                "tolerations": {
                    "$ref": "#/definitions/Tolerations"
                },
                "warmWindowsIPTarget": {
                    "type": "integer"
                },
                "warmWindowsPrefixTarget": {
                    "type": "integer"
                }
            },
            "title": "VpcCni",
            "type": "object"
        }
    },
    "description": "vpc-cni"
}

Attach logs

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

Environment:

  • Kubernetes version (use kubectl version): v1.30.3-eks-a18cd3a
  • CNI Version: v1.18.5-eksbuild.1
  • OS (e.g: cat /etc/os-release): N/A
  • Kernel (e.g. uname -a): N/A

zemliany avatar Oct 03 '24 11:10 zemliany