Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.5 CRDs are not compatible with Kubernetes v1.11 and earlier #2856

Closed
albertollamaso opened this issue Aug 22, 2020 · 4 comments · Fixed by #3787
Closed

v1.5 CRDs are not compatible with Kubernetes v1.11 and earlier #2856

albertollamaso opened this issue Aug 22, 2020 · 4 comments · Fixed by #3787
Labels
Breaking change Impacts backwards compatibility Bug Reviewed Q2 2021

Comments

@albertollamaso
Copy link

What steps did you take and what happened:
Installed velero version v1.5.0-beta.1

tried to install with:

velero install \
    --provider aws \
    --use-restic \
    --plugins velero/velero-plugin-for-aws:v1.1.0 \
    --bucket kubernetes.test.velero \
    --backup-location-config region=us-east-1 \
    --snapshot-location-config region=us-east-1 \
    --secret-file ./credentials-velero

it failed with:

`
CustomResourceDefinition/backups.velero.io: attempting to create resource
CustomResourceDefinition/backups.velero.io: already exists, proceeding
CustomResourceDefinition/backups.velero.io: created
CustomResourceDefinition/backupstoragelocations.velero.io: attempting to create resource
An error occurred:

Error installing Velero.Use kubectl logs deploy/velero -n velero
to check the deploy logs: Error creating resource CustomResourceDefinition / backupstoragelocations.velero.io: CustomResourceDefinition.apiextensions.k8s.io "backupstoragelocations.velero.io"
is invalid: spec.validation.openAPIV3Schema: Invalid value: apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "BackupStorageLocation is a location where Velero stores backup objects",
Type: "object",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps {
"status": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "BackupStorageLocationStatus defines the observed state of BackupStorageLocation",
Type: "object",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps {
"accessMode": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "AccessMode is an unused field. \n Deprecated: there is now an AccessMode field on the Spec and this field will be removed entirely as of v2.0.",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON {
"ReadOnly",
"ReadWrite"
},
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"lastSyncedRevision": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "LastSyncedRevision is the value of the metadata/revision file in the backup storage location the last time the BSL's contents were synced into the cluster. \n Deprecated: this field is no longer updated or used for detecting changes to the location's contents and will be removed entirely in v2.0.",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"lastSyncedTime": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "LastSyncedTime is the last time the contents of the location were synced into the cluster.",
Type: "string",
Format: "date-time",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"lastValidationTime": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "LastValidationTime is the last time the backup store location was validated the cluster.",
Type: "string",
Format: "date-time",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"phase": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "Phase is the current state of the BackupStorageLocation.",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON {
"Available",
"Unavailable"
},
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
}
},
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"apiVersion": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"kind": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"metadata": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "",
Type: "object",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"spec": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "BackupStorageLocationSpec defines the desired state of a Velero BackupStorageLocation",
Type: "object",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string {
"objectStorage",
"provider"
},
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps {
"provider": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "Provider is the provider of the backup storage.",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"validationFrequency": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "ValidationFrequency defines how frequently to validate the corresponding object storage. A value of 0 disables validation.",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"accessMode": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "AccessMode defines the permissions for the backup storage location.",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON {
"ReadOnly",
"ReadWrite"
},
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"backupSyncPeriod": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "BackupSyncPeriod defines how frequently to sync backup API objects from object storage. A value of 0 disables sync.",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"config": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "Config is for provider-specific configuration fields.",
Type: "object",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(0xc43ad89c00),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"objectStorage": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "ObjectStorageLocation specifies the settings necessary to connect to a provider's object storage.",
Type: "object",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string {
"bucket"
},
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps {
"bucket": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "Bucket is the bucket to use for object storage.",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"caCert": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "CACert defines a CA bundle to use when verifying TLS connections to the provider.",
Type: "string",
Format: "byte",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
},
"prefix": apiextensions.JSONSchemaProps {
ID: "",
Schema: "",
Ref: ( * string)(nil),
Description: "Prefix is the path inside a bucket to use for Velero storage. Optional.",
Type: "string",
Format: "",
Title: "",
Default: ( * apiextensions.JSON)(nil),
Maximum: ( * float64)(nil),
ExclusiveMaximum: false,
Minimum: ( * float64)(nil),
ExclusiveMinimum: false,
MaxLength: ( * int64)(nil),
MinLength: ( * int64)(nil),
Pattern: "",
MaxItems: ( * int64)(nil),
MinItems: ( * int64)(nil),
UniqueItems: false,
MultipleOf: ( * float64)(nil),
Enum: [] apiextensions.JSON(nil),
MaxProperties: ( * int64)(nil),
MinProperties: ( * int64)(nil),
Required: [] string(nil),
Items: ( * apiextensions.JSONSchemaPropsOrArray)(nil),
AllOf: [] apiextensions.JSONSchemaProps(nil),
OneOf: [] apiextensions.JSONSchemaProps(nil),
AnyOf: [] apiextensions.JSONSchemaProps(nil),
Not: ( * apiextensions.JSONSchemaProps)(nil),
Properties: map[string] apiextensions.JSONSchemaProps(nil),
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
}
},
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
}
},
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
}
},
AdditionalProperties: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
PatternProperties: map[string] apiextensions.JSONSchemaProps(nil),
Dependencies: apiextensions.JSONSchemaDependencies(nil),
AdditionalItems: ( * apiextensions.JSONSchemaPropsOrBool)(nil),
Definitions: apiextensions.JSONSchemaDefinitions(nil),
ExternalDocs: ( * apiextensions.ExternalDocumentation)(nil),
Example: ( * apiextensions.JSON)(nil)
}: must only have "properties", "required"
or "description"
at the root
if the status subresource is enabled`

Environment:

  • Velero version (use velero version): v1.5.0-beta.1
  • Kubernetes version (use kubectl version): v1.11.10
  • Kubernetes installer & version: v1.11.10
  • OS (e.g. from /etc/os-release):

Distributor ID: Linuxmint
Description: Linux Mint 20
Release: 20
Codename: ulyana

Vote on this issue!

This is an invitation to the Velero community to vote on issues, you can see the project's top voted issues listed here.
Use the "reaction smiley face" up to the right of this comment to vote.

  • 👍 for "I would like to see this bug fixed as soon as possible"
  • 👎 for "There are more important bugs to focus on right now"
@albertollamaso
Copy link
Author

I was able to install just downgrading to velero version: v1.4.2 thought it is a bug on v1.5.0-beta.1

@carlisia
Copy link
Contributor

CustomResourceDefinition/backups.velero.io: attempting to create resource
CustomResourceDefinition/backups.velero.io: already exists, proceeding

This makes me think this is not a fresh install, you already had some version there before? If so, please run:

velero install --crds-only --dry-run -o yaml | kubectl apply -f -

Let me know if it works or not and we'll go from there, and thank you for testing the beta!

@carlisia carlisia added the Needs info Waiting for information label Aug 24, 2020
@dsu-igeek
Copy link
Contributor

Closing this, please re-open if the issue continues.

@zubron
Copy link
Contributor

zubron commented Jan 29, 2021

Following up from a discussion, our CRDs are no longer compatible with Kubernetes v1.11 and earlier. We state that we support v1.10 and later, so we should revisit our list of supported Kubernetes versions.

To summarise the issue, support for the field "type" when using the status subresource in the CRD validation schema was only introduced in Kubernetes v1.12. This means that velero 1.5 and later cannot be installed on Kubernetes 1.11 or earlier.

@zubron zubron reopened this Jan 29, 2021
@zubron zubron added Breaking change Impacts backwards compatibility Bug and removed Needs info Waiting for information labels Jan 29, 2021
@zubron zubron changed the title failing to install velero on k8s [AWS] v1.5 CRDs are not compatible with Kubernetes v1.11 and earlier Jan 29, 2021
nrb added a commit to nrb/velero that referenced this issue May 11, 2021
nrb added a commit to nrb/velero that referenced this issue May 11, 2021
nrb added a commit to nrb/velero that referenced this issue May 11, 2021
nrb added a commit to nrb/velero that referenced this issue May 12, 2021
dsu-igeek pushed a commit that referenced this issue May 15, 2021
* Update docs to state Kubernetes v1.12 is needed

Closes: #2856

Signed-off-by: Nolan Brubaker <[email protected]>

* Fix spacing on basic-install.md

Signed-off-by: Nolan Brubaker <[email protected]>
ywk253100 pushed a commit to ywk253100/velero that referenced this issue Jun 29, 2021
* Update docs to state Kubernetes v1.12 is needed

Closes: vmware-tanzu#2856

Signed-off-by: Nolan Brubaker <[email protected]>

* Fix spacing on basic-install.md

Signed-off-by: Nolan Brubaker <[email protected]>
gyaozhou pushed a commit to gyaozhou/velero-read that referenced this issue May 14, 2022
* Update docs to state Kubernetes v1.12 is needed

Closes: vmware-tanzu#2856

Signed-off-by: Nolan Brubaker <[email protected]>

* Fix spacing on basic-install.md

Signed-off-by: Nolan Brubaker <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Breaking change Impacts backwards compatibility Bug Reviewed Q2 2021
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants