INNER CODE UNIT · Go

removeUselessRequired

pingcap/tidb-operator · cmd/crd-modifier/main.go:198

func removeUselessRequired(crd *apiextensionsv1.CustomResourceDefinition, keys ...string) {
	for i := range crd.Spec.Versions {
		v := &crd.Spec.Versions[i]
		handleVersion(v, keys...)
	}
}

func handleVersion(version *apiextensionsv1.CustomResourceDefinitionVersion, keys ...string) {
	handleSelectedJSONSchemaProps(version.Schema.OpenAPIV3Schema, keys...)
}

func handleSelectedJSONSchemaProps(props *apiextensionsv1.JSONSchemaProps, keys ...string) {
	if len(keys) == 0 {
		// When the target path is reached, call handleJSONSchemaProps to remove the required fields.
		// `nil` is passed for retainKeys, which means no keys should be retained (i.e., all are removed).
		handleJSONSchemaProps(props, nil)
		return
	}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…