mirror of https://github.com/crossplane/docs.git
Merge pull request #930 from jbw976/1.20-feat-sync
Update feature flags, helm chart values, and APIs for v1.20
This commit is contained in:
commit
38b311182c
|
@ -213,3 +213,200 @@ spec:
|
||||||
storage: true
|
storage: true
|
||||||
subresources:
|
subresources:
|
||||||
status: {}
|
status: {}
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .metadata.annotations.crossplane\.io/usage-details
|
||||||
|
name: DETAILS
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.conditions[?(@.type=='Ready')].status
|
||||||
|
name: READY
|
||||||
|
type: string
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: AGE
|
||||||
|
type: date
|
||||||
|
name: v1beta1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: |-
|
||||||
|
A Usage defines a deletion blocking relationship between two resources.
|
||||||
|
|
||||||
|
Usages prevent accidental deletion of a single resource or deletion of
|
||||||
|
resources with dependent resources.
|
||||||
|
|
||||||
|
Read the Crossplane documentation for
|
||||||
|
[more information about Compositions](https://docs.crossplane.io/latest/concepts/usages).
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
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
|
||||||
|
kind:
|
||||||
|
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
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
description: UsageSpec defines the desired state of Usage.
|
||||||
|
properties:
|
||||||
|
by:
|
||||||
|
description: By is the resource that is "using the other resource".
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: API version of the referent.
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: |-
|
||||||
|
Kind of the referent.
|
||||||
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||||
|
type: string
|
||||||
|
resourceRef:
|
||||||
|
description: Reference to the resource.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name of the referent.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
resourceSelector:
|
||||||
|
description: |-
|
||||||
|
Selector to the resource.
|
||||||
|
This field will be ignored if ResourceRef is set.
|
||||||
|
properties:
|
||||||
|
matchControllerRef:
|
||||||
|
description: |-
|
||||||
|
MatchControllerRef ensures an object with the same controller reference
|
||||||
|
as the selecting object is selected.
|
||||||
|
type: boolean
|
||||||
|
matchLabels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: MatchLabels ensures an object with matching labels
|
||||||
|
is selected.
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
x-kubernetes-validations:
|
||||||
|
- message: either a resource reference or a resource selector should
|
||||||
|
be set.
|
||||||
|
rule: has(self.resourceRef) || has(self.resourceSelector)
|
||||||
|
of:
|
||||||
|
description: Of is the resource that is "being used".
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: API version of the referent.
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: |-
|
||||||
|
Kind of the referent.
|
||||||
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||||
|
type: string
|
||||||
|
resourceRef:
|
||||||
|
description: Reference to the resource.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name of the referent.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
resourceSelector:
|
||||||
|
description: |-
|
||||||
|
Selector to the resource.
|
||||||
|
This field will be ignored if ResourceRef is set.
|
||||||
|
properties:
|
||||||
|
matchControllerRef:
|
||||||
|
description: |-
|
||||||
|
MatchControllerRef ensures an object with the same controller reference
|
||||||
|
as the selecting object is selected.
|
||||||
|
type: boolean
|
||||||
|
matchLabels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: MatchLabels ensures an object with matching labels
|
||||||
|
is selected.
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
x-kubernetes-validations:
|
||||||
|
- message: either a resource reference or a resource selector should
|
||||||
|
be set.
|
||||||
|
rule: has(self.resourceRef) || has(self.resourceSelector)
|
||||||
|
reason:
|
||||||
|
description: Reason is the reason for blocking deletion of the resource.
|
||||||
|
type: string
|
||||||
|
replayDeletion:
|
||||||
|
description: ReplayDeletion will trigger a deletion on the used resource
|
||||||
|
during the deletion of the usage itself, if it was attempted to
|
||||||
|
be deleted at least once.
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- of
|
||||||
|
type: object
|
||||||
|
x-kubernetes-validations:
|
||||||
|
- message: either "spec.by" or "spec.reason" must be specified.
|
||||||
|
rule: has(self.by) || has(self.reason)
|
||||||
|
status:
|
||||||
|
description: UsageStatus defines the observed state of Usage.
|
||||||
|
properties:
|
||||||
|
conditions:
|
||||||
|
description: Conditions of the resource.
|
||||||
|
items:
|
||||||
|
description: A Condition that may apply to a resource.
|
||||||
|
properties:
|
||||||
|
lastTransitionTime:
|
||||||
|
description: |-
|
||||||
|
LastTransitionTime is the last time this condition transitioned from one
|
||||||
|
status to another.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: |-
|
||||||
|
A Message containing details about this condition's last transition from
|
||||||
|
one status to another, if any.
|
||||||
|
type: string
|
||||||
|
observedGeneration:
|
||||||
|
description: |-
|
||||||
|
ObservedGeneration represents the .metadata.generation that the condition was set based upon.
|
||||||
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
||||||
|
with respect to the current state of the instance.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
reason:
|
||||||
|
description: A Reason for this condition's last transition from
|
||||||
|
one status to another.
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
description: Status of this condition; is it currently True,
|
||||||
|
False, or Unknown?
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
description: |-
|
||||||
|
Type of this condition. At most one of each condition type may apply to
|
||||||
|
a resource at any point in time.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- lastTransitionTime
|
||||||
|
- reason
|
||||||
|
- status
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
x-kubernetes-list-map-keys:
|
||||||
|
- type
|
||||||
|
x-kubernetes-list-type: map
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: false
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
|
|
@ -146,6 +146,27 @@ spec:
|
||||||
description: PackageRevisionStatus represents the observed state of a
|
description: PackageRevisionStatus represents the observed state of a
|
||||||
PackageRevision.
|
PackageRevision.
|
||||||
properties:
|
properties:
|
||||||
|
appliedImageConfigRefs:
|
||||||
|
description: |-
|
||||||
|
AppliedImageConfigRefs records any image configs that were applied in
|
||||||
|
reconciling this revision, and what they were used for.
|
||||||
|
items:
|
||||||
|
description: |-
|
||||||
|
ImageConfigRef is a reference to an image config that indicates how the
|
||||||
|
referenced image config was used by the package manager.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name is the name of the image config.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: Reason indicates what the image config was used
|
||||||
|
for.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- reason
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
conditions:
|
conditions:
|
||||||
description: Conditions of the resource.
|
description: Conditions of the resource.
|
||||||
items:
|
items:
|
||||||
|
@ -281,6 +302,12 @@ spec:
|
||||||
- verbs
|
- verbs
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
resolvedImage:
|
||||||
|
description: |-
|
||||||
|
ResolvedPackage is the name of the package that was installed. It may be
|
||||||
|
different from spec.image if the package path was rewritten using an
|
||||||
|
image config.
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
|
|
@ -138,6 +138,27 @@ spec:
|
||||||
status:
|
status:
|
||||||
description: ConfigurationStatus represents the observed state of a Configuration.
|
description: ConfigurationStatus represents the observed state of a Configuration.
|
||||||
properties:
|
properties:
|
||||||
|
appliedImageConfigRefs:
|
||||||
|
description: |-
|
||||||
|
AppliedImageConfigRefs records any image configs that were applied in
|
||||||
|
reconciling this package, and what they were used for.
|
||||||
|
items:
|
||||||
|
description: |-
|
||||||
|
ImageConfigRef is a reference to an image config that indicates how the
|
||||||
|
referenced image config was used by the package manager.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name is the name of the image config.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: Reason indicates what the image config was used
|
||||||
|
for.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- reason
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
conditions:
|
conditions:
|
||||||
description: Conditions of the resource.
|
description: Conditions of the resource.
|
||||||
items:
|
items:
|
||||||
|
@ -199,6 +220,12 @@ spec:
|
||||||
reflect the most up to date revision, whether it has been activated or
|
reflect the most up to date revision, whether it has been activated or
|
||||||
not.
|
not.
|
||||||
type: string
|
type: string
|
||||||
|
resolvedPackage:
|
||||||
|
description: |-
|
||||||
|
ResolvedPackage is the name of the package that was used for version
|
||||||
|
resolution. It may be different from spec.package if the package path was
|
||||||
|
rewritten using an image config.
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
|
|
@ -189,6 +189,27 @@ spec:
|
||||||
description: FunctionRevisionStatus represents the observed state of a
|
description: FunctionRevisionStatus represents the observed state of a
|
||||||
FunctionRevision.
|
FunctionRevision.
|
||||||
properties:
|
properties:
|
||||||
|
appliedImageConfigRefs:
|
||||||
|
description: |-
|
||||||
|
AppliedImageConfigRefs records any image configs that were applied in
|
||||||
|
reconciling this revision, and what they were used for.
|
||||||
|
items:
|
||||||
|
description: |-
|
||||||
|
ImageConfigRef is a reference to an image config that indicates how the
|
||||||
|
referenced image config was used by the package manager.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name is the name of the image config.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: Reason indicates what the image config was used
|
||||||
|
for.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- reason
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
conditions:
|
conditions:
|
||||||
description: Conditions of the resource.
|
description: Conditions of the resource.
|
||||||
items:
|
items:
|
||||||
|
@ -329,6 +350,12 @@ spec:
|
||||||
- verbs
|
- verbs
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
resolvedImage:
|
||||||
|
description: |-
|
||||||
|
ResolvedPackage is the name of the package that was installed. It may be
|
||||||
|
different from spec.image if the package path was rewritten using an
|
||||||
|
image config.
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
@ -507,6 +534,27 @@ spec:
|
||||||
description: FunctionRevisionStatus represents the observed state of a
|
description: FunctionRevisionStatus represents the observed state of a
|
||||||
FunctionRevision.
|
FunctionRevision.
|
||||||
properties:
|
properties:
|
||||||
|
appliedImageConfigRefs:
|
||||||
|
description: |-
|
||||||
|
AppliedImageConfigRefs records any image configs that were applied in
|
||||||
|
reconciling this revision, and what they were used for.
|
||||||
|
items:
|
||||||
|
description: |-
|
||||||
|
ImageConfigRef is a reference to an image config that indicates how the
|
||||||
|
referenced image config was used by the package manager.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name is the name of the image config.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: Reason indicates what the image config was used
|
||||||
|
for.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- reason
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
conditions:
|
conditions:
|
||||||
description: Conditions of the resource.
|
description: Conditions of the resource.
|
||||||
items:
|
items:
|
||||||
|
@ -647,6 +695,12 @@ spec:
|
||||||
- verbs
|
- verbs
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
resolvedImage:
|
||||||
|
description: |-
|
||||||
|
ResolvedPackage is the name of the package that was installed. It may be
|
||||||
|
different from spec.image if the package path was rewritten using an
|
||||||
|
image config.
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
|
|
@ -168,6 +168,27 @@ spec:
|
||||||
status:
|
status:
|
||||||
description: FunctionStatus represents the observed state of a Function.
|
description: FunctionStatus represents the observed state of a Function.
|
||||||
properties:
|
properties:
|
||||||
|
appliedImageConfigRefs:
|
||||||
|
description: |-
|
||||||
|
AppliedImageConfigRefs records any image configs that were applied in
|
||||||
|
reconciling this package, and what they were used for.
|
||||||
|
items:
|
||||||
|
description: |-
|
||||||
|
ImageConfigRef is a reference to an image config that indicates how the
|
||||||
|
referenced image config was used by the package manager.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name is the name of the image config.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: Reason indicates what the image config was used
|
||||||
|
for.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- reason
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
conditions:
|
conditions:
|
||||||
description: Conditions of the resource.
|
description: Conditions of the resource.
|
||||||
items:
|
items:
|
||||||
|
@ -229,6 +250,12 @@ spec:
|
||||||
reflect the most up to date revision, whether it has been activated or
|
reflect the most up to date revision, whether it has been activated or
|
||||||
not.
|
not.
|
||||||
type: string
|
type: string
|
||||||
|
resolvedPackage:
|
||||||
|
description: |-
|
||||||
|
ResolvedPackage is the name of the package that was used for version
|
||||||
|
resolution. It may be different from spec.package if the package path was
|
||||||
|
rewritten using an image config.
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
@ -386,6 +413,27 @@ spec:
|
||||||
status:
|
status:
|
||||||
description: FunctionStatus represents the observed state of a Function.
|
description: FunctionStatus represents the observed state of a Function.
|
||||||
properties:
|
properties:
|
||||||
|
appliedImageConfigRefs:
|
||||||
|
description: |-
|
||||||
|
AppliedImageConfigRefs records any image configs that were applied in
|
||||||
|
reconciling this package, and what they were used for.
|
||||||
|
items:
|
||||||
|
description: |-
|
||||||
|
ImageConfigRef is a reference to an image config that indicates how the
|
||||||
|
referenced image config was used by the package manager.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name is the name of the image config.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: Reason indicates what the image config was used
|
||||||
|
for.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- reason
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
conditions:
|
conditions:
|
||||||
description: Conditions of the resource.
|
description: Conditions of the resource.
|
||||||
items:
|
items:
|
||||||
|
@ -447,6 +495,12 @@ spec:
|
||||||
reflect the most up to date revision, whether it has been activated or
|
reflect the most up to date revision, whether it has been activated or
|
||||||
not.
|
not.
|
||||||
type: string
|
type: string
|
||||||
|
resolvedPackage:
|
||||||
|
description: |-
|
||||||
|
ResolvedPackage is the name of the package that was used for version
|
||||||
|
resolution. It may be different from spec.package if the package path was
|
||||||
|
rewritten using an image config.
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
|
|
@ -47,13 +47,19 @@ spec:
|
||||||
description: ImageConfigSpec contains the configuration for matching images.
|
description: ImageConfigSpec contains the configuration for matching images.
|
||||||
properties:
|
properties:
|
||||||
matchImages:
|
matchImages:
|
||||||
description: MatchImages is a list of image matching rules that should
|
description: |-
|
||||||
be satisfied.
|
MatchImages is a list of image matching rules. This ImageConfig will
|
||||||
|
match an image if any one of these rules is satisfied. In the case where
|
||||||
|
multiple ImageConfigs match an image for a given purpose the one with the
|
||||||
|
most specific match will be used. If multiple rules of equal specificity
|
||||||
|
match an arbitrary one will be selected.
|
||||||
items:
|
items:
|
||||||
description: ImageMatch defines a rule for matching image.
|
description: ImageMatch defines a rule for matching image.
|
||||||
properties:
|
properties:
|
||||||
prefix:
|
prefix:
|
||||||
description: Prefix is the prefix that should be matched.
|
description: |-
|
||||||
|
Prefix is the prefix that should be matched. When multiple prefix rules
|
||||||
|
match an image path, the longest one takes precedence.
|
||||||
type: string
|
type: string
|
||||||
type:
|
type:
|
||||||
default: Prefix
|
default: Prefix
|
||||||
|
@ -95,6 +101,19 @@ spec:
|
||||||
- pullSecretRef
|
- pullSecretRef
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
|
rewriteImage:
|
||||||
|
description: RewriteImage defines how a matched image's path should
|
||||||
|
be rewritten.
|
||||||
|
properties:
|
||||||
|
prefix:
|
||||||
|
description: |-
|
||||||
|
Prefix is the prefix that will replace the portion of the image's path
|
||||||
|
matched by the prefix in the ImageMatch. If multiple prefixes matched,
|
||||||
|
the longest one will be replaced.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- prefix
|
||||||
|
type: object
|
||||||
verification:
|
verification:
|
||||||
description: Verification contains the configuration for verifying
|
description: Verification contains the configuration for verifying
|
||||||
the image.
|
the image.
|
||||||
|
|
|
@ -44,6 +44,9 @@ spec:
|
||||||
items:
|
items:
|
||||||
description: LockPackage is a package that is in the lock.
|
description: LockPackage is a package that is in the lock.
|
||||||
properties:
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: APIVersion of the package.
|
||||||
|
type: string
|
||||||
dependencies:
|
dependencies:
|
||||||
description: |-
|
description: |-
|
||||||
Dependencies are the list of dependencies of this package. The order of
|
Dependencies are the list of dependencies of this package. The order of
|
||||||
|
@ -52,25 +55,39 @@ spec:
|
||||||
description: A Dependency is a dependency of a package in the
|
description: A Dependency is a dependency of a package in the
|
||||||
lock.
|
lock.
|
||||||
properties:
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: APIVersion of the package.
|
||||||
|
type: string
|
||||||
constraints:
|
constraints:
|
||||||
description: |-
|
description: |-
|
||||||
Constraints is a valid semver range or a digest, which will be used to select a valid
|
Constraints is a valid semver range or a digest, which will be used to select a valid
|
||||||
dependency version.
|
dependency version.
|
||||||
type: string
|
type: string
|
||||||
|
kind:
|
||||||
|
description: Kind of the package (not the kind of the package
|
||||||
|
revision).
|
||||||
|
type: string
|
||||||
package:
|
package:
|
||||||
description: Package is the OCI image name without a tag or
|
description: Package is the OCI image name without a tag or
|
||||||
digest.
|
digest.
|
||||||
type: string
|
type: string
|
||||||
type:
|
type:
|
||||||
description: Type is the type of package. Can be either Configuration
|
description: |-
|
||||||
or Provider.
|
Type is the type of package. Can be either Configuration or Provider.
|
||||||
|
Deprecated: Specify an apiVersion and kind instead.
|
||||||
|
enum:
|
||||||
|
- Configuration
|
||||||
|
- Provider
|
||||||
|
- Function
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- constraints
|
- constraints
|
||||||
- package
|
- package
|
||||||
- type
|
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
kind:
|
||||||
|
description: Kind of the package (not the kind of the package revision).
|
||||||
|
type: string
|
||||||
name:
|
name:
|
||||||
description: Name corresponds to the name of the package revision
|
description: Name corresponds to the name of the package revision
|
||||||
for this package.
|
for this package.
|
||||||
|
@ -79,8 +96,13 @@ spec:
|
||||||
description: Source is the OCI image name without a tag or digest.
|
description: Source is the OCI image name without a tag or digest.
|
||||||
type: string
|
type: string
|
||||||
type:
|
type:
|
||||||
description: Type is the type of package. Can be either Configuration
|
description: |-
|
||||||
or Provider.
|
Type is the type of package.
|
||||||
|
Deprecated: Specify an apiVersion and kind instead.
|
||||||
|
enum:
|
||||||
|
- Configuration
|
||||||
|
- Provider
|
||||||
|
- Function
|
||||||
type: string
|
type: string
|
||||||
version:
|
version:
|
||||||
description: Version is the tag or digest of the OCI image.
|
description: Version is the tag or digest of the OCI image.
|
||||||
|
@ -89,7 +111,6 @@ spec:
|
||||||
- dependencies
|
- dependencies
|
||||||
- name
|
- name
|
||||||
- source
|
- source
|
||||||
- type
|
|
||||||
- version
|
- version
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
|
|
@ -189,6 +189,27 @@ spec:
|
||||||
description: PackageRevisionStatus represents the observed state of a
|
description: PackageRevisionStatus represents the observed state of a
|
||||||
PackageRevision.
|
PackageRevision.
|
||||||
properties:
|
properties:
|
||||||
|
appliedImageConfigRefs:
|
||||||
|
description: |-
|
||||||
|
AppliedImageConfigRefs records any image configs that were applied in
|
||||||
|
reconciling this revision, and what they were used for.
|
||||||
|
items:
|
||||||
|
description: |-
|
||||||
|
ImageConfigRef is a reference to an image config that indicates how the
|
||||||
|
referenced image config was used by the package manager.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name is the name of the image config.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: Reason indicates what the image config was used
|
||||||
|
for.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- reason
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
conditions:
|
conditions:
|
||||||
description: Conditions of the resource.
|
description: Conditions of the resource.
|
||||||
items:
|
items:
|
||||||
|
@ -324,6 +345,12 @@ spec:
|
||||||
- verbs
|
- verbs
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
resolvedImage:
|
||||||
|
description: |-
|
||||||
|
ResolvedPackage is the name of the package that was installed. It may be
|
||||||
|
different from spec.image if the package path was rewritten using an
|
||||||
|
image config.
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
|
|
@ -170,6 +170,27 @@ spec:
|
||||||
status:
|
status:
|
||||||
description: ProviderStatus represents the observed state of a Provider.
|
description: ProviderStatus represents the observed state of a Provider.
|
||||||
properties:
|
properties:
|
||||||
|
appliedImageConfigRefs:
|
||||||
|
description: |-
|
||||||
|
AppliedImageConfigRefs records any image configs that were applied in
|
||||||
|
reconciling this package, and what they were used for.
|
||||||
|
items:
|
||||||
|
description: |-
|
||||||
|
ImageConfigRef is a reference to an image config that indicates how the
|
||||||
|
referenced image config was used by the package manager.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name is the name of the image config.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: Reason indicates what the image config was used
|
||||||
|
for.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- reason
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
conditions:
|
conditions:
|
||||||
description: Conditions of the resource.
|
description: Conditions of the resource.
|
||||||
items:
|
items:
|
||||||
|
@ -231,6 +252,12 @@ spec:
|
||||||
reflect the most up to date revision, whether it has been activated or
|
reflect the most up to date revision, whether it has been activated or
|
||||||
not.
|
not.
|
||||||
type: string
|
type: string
|
||||||
|
resolvedPackage:
|
||||||
|
description: |-
|
||||||
|
ResolvedPackage is the name of the package that was used for version
|
||||||
|
resolution. It may be different from spec.package if the package path was
|
||||||
|
rewritten using an image config.
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
|
|
@ -5,44 +5,44 @@ altTitle: "Crossplane Packages"
|
||||||
weight: 200
|
weight: 200
|
||||||
---
|
---
|
||||||
|
|
||||||
A _Configuration_ package is an
|
A _Configuration_ package is an
|
||||||
[OCI container image](https://opencontainers.org/) containing a collection of
|
[OCI container image](https://opencontainers.org/) containing a collection of
|
||||||
[Compositions]({{<ref "./compositions" >}}),
|
[Compositions]({{<ref "./compositions" >}}),
|
||||||
[Composite Resource Definitions]({{<ref "./composite-resource-definitions" >}})
|
[Composite Resource Definitions]({{<ref "./composite-resource-definitions" >}})
|
||||||
and any required [Providers]({{<ref "./providers">}}) or
|
and any required [Providers]({{<ref "./providers">}}) or
|
||||||
[Functions]({{<ref "./compositions" >}}).
|
[Functions]({{<ref "./compositions" >}}).
|
||||||
|
|
||||||
Configuration packages make your Crossplane configuration fully portable.
|
Configuration packages make your Crossplane configuration fully portable.
|
||||||
|
|
||||||
{{<hint "important" >}}
|
{{<hint "important" >}}
|
||||||
Crossplane [Providers]({{<ref "./providers">}}) and
|
Crossplane [Providers]({{<ref "./providers">}}) and
|
||||||
[Functions]({{<ref "./compositions">}}) are also Crossplane packages.
|
[Functions]({{<ref "./compositions">}}) are also Crossplane packages.
|
||||||
|
|
||||||
This document describes how to install and manage configuration packages.
|
This document describes how to install and manage configuration packages.
|
||||||
|
|
||||||
Refer to the
|
Refer to the
|
||||||
[Provider]({{<ref "./providers">}}) and
|
[Provider]({{<ref "./providers">}}) and
|
||||||
[Composition Functions]({{<ref "./compositions">}}) chapters for
|
[Composition Functions]({{<ref "./compositions">}}) chapters for
|
||||||
details on their usage of packages.
|
details on their usage of packages.
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
## Install a Configuration
|
## Install a Configuration
|
||||||
|
|
||||||
Install a Configuration with a Crossplane
|
Install a Configuration with a Crossplane
|
||||||
{{<hover line="2" label="install">}}Configuration{{</hover>}} object by setting
|
{{<hover line="2" label="install">}}Configuration{{</hover>}} object by setting
|
||||||
the {{<hover line="6" label="install">}}spec.package{{</hover>}} value to the
|
the {{<hover line="6" label="install">}}spec.package{{</hover>}} value to the
|
||||||
location of the configuration package.
|
location of the configuration package.
|
||||||
|
|
||||||
{{< hint "important" >}}
|
{{< hint "important" >}}
|
||||||
Beginning with Crossplane version 1.20.0 Crossplane uses the [crossplane-contrib](https://github.com/orgs/crossplane-contrib/packages) GitHub Container Registry at `xpkg.crossplane.io` by default for downloading and
|
Beginning with Crossplane version 1.20.0 Crossplane uses the [crossplane-contrib](https://github.com/orgs/crossplane-contrib/packages) GitHub Container Registry at `xpkg.crossplane.io` by default for downloading and
|
||||||
installing packages.
|
installing packages.
|
||||||
|
|
||||||
Specify the full domain name with the `package` or change the default Crossplane
|
Specify the full domain name with the `package` or change the default Crossplane
|
||||||
registry with the `--registry` flag on the [Crossplane pod]({{<ref "./pods">}})
|
registry with the `--registry` flag on the [Crossplane pod]({{<ref "./pods">}})
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
For example to install the
|
For example to install the
|
||||||
[Getting Started Configuration](https://github.com/crossplane-contrib/configuration-quickstart),
|
[Getting Started Configuration](https://github.com/crossplane-contrib/configuration-quickstart),
|
||||||
|
|
||||||
```yaml {label="install"}
|
```yaml {label="install"}
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
|
@ -68,7 +68,7 @@ spec:
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
Crossplane installs the Compositions, Composite Resource Definitions and
|
Crossplane installs the Compositions, Composite Resource Definitions and
|
||||||
Providers listed in the Configuration.
|
Providers listed in the Configuration.
|
||||||
|
|
||||||
### Install with Helm
|
### Install with Helm
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ crossplane-stable/crossplane \
|
||||||
|
|
||||||
Installing Crossplane packages offline requires a local container registry, such as
|
Installing Crossplane packages offline requires a local container registry, such as
|
||||||
[Harbor](https://goharbor.io/) to host the packages. Crossplane only
|
[Harbor](https://goharbor.io/) to host the packages. Crossplane only
|
||||||
supports installing packages from a container registry.
|
supports installing packages from a container registry.
|
||||||
|
|
||||||
Crossplane doesn't support installing packages directly from Kubernetes
|
Crossplane doesn't support installing packages directly from Kubernetes
|
||||||
volumes.
|
volumes.
|
||||||
|
@ -101,15 +101,15 @@ volumes.
|
||||||
### Installation options
|
### Installation options
|
||||||
|
|
||||||
Configurations support multiple options to change configuration package related
|
Configurations support multiple options to change configuration package related
|
||||||
settings.
|
settings.
|
||||||
|
|
||||||
|
|
||||||
#### Configuration revisions
|
#### Configuration revisions
|
||||||
|
|
||||||
When installing a newer version of an existing Configuration Crossplane creates
|
When installing a newer version of an existing Configuration Crossplane creates
|
||||||
a new configuration revision.
|
a new configuration revision.
|
||||||
|
|
||||||
View the configuration revisions with
|
View the configuration revisions with
|
||||||
{{<hover label="rev" line="1">}}kubectl get configurationrevisions{{</hover>}}.
|
{{<hover label="rev" line="1">}}kubectl get configurationrevisions{{</hover>}}.
|
||||||
|
|
||||||
```shell {label="rev",copy-lines="1"}
|
```shell {label="rev",copy-lines="1"}
|
||||||
|
@ -120,20 +120,20 @@ platform-ref-aws-3ac761211893 True 1 xpkg.crossplane.io/crosspla
|
||||||
```
|
```
|
||||||
|
|
||||||
Only a single revision is active at a time. The active revision determines the
|
Only a single revision is active at a time. The active revision determines the
|
||||||
available resources, including Compositions and Composite Resource Definitions.
|
available resources, including Compositions and Composite Resource Definitions.
|
||||||
|
|
||||||
By default Crossplane keeps only a single _Inactive_ revision.
|
By default Crossplane keeps only a single _Inactive_ revision.
|
||||||
|
|
||||||
Change the number of revisions Crossplane maintains with a Configuration package
|
Change the number of revisions Crossplane maintains with a Configuration package
|
||||||
{{<hover label="revHistory" line="6">}}revisionHistoryLimit{{</hover>}}.
|
{{<hover label="revHistory" line="6">}}revisionHistoryLimit{{</hover>}}.
|
||||||
|
|
||||||
The {{<hover label="revHistory" line="6">}}revisionHistoryLimit{{</hover>}}
|
The {{<hover label="revHistory" line="6">}}revisionHistoryLimit{{</hover>}}
|
||||||
field is an integer.
|
field is an integer.
|
||||||
The default value is `1`.
|
The default value is `1`.
|
||||||
Disable storing revisions by setting
|
Disable storing revisions by setting
|
||||||
{{<hover label="revHistory" line="6">}}revisionHistoryLimit{{</hover>}} to `0`.
|
{{<hover label="revHistory" line="6">}}revisionHistoryLimit{{</hover>}} to `0`.
|
||||||
|
|
||||||
For example, to change the default setting and store 10 revisions use
|
For example, to change the default setting and store 10 revisions use
|
||||||
{{<hover label="revHistory" line="6">}}revisionHistoryLimit: 10{{</hover>}}.
|
{{<hover label="revHistory" line="6">}}revisionHistoryLimit: 10{{</hover>}}.
|
||||||
|
|
||||||
```yaml {label="revHistory"}
|
```yaml {label="revHistory"}
|
||||||
|
@ -152,26 +152,26 @@ Use a {{<hover label="pullpolicy" line="6">}}packagePullPolicy{{</hover>}} to
|
||||||
define when Crossplane should download the Configuration package to the local
|
define when Crossplane should download the Configuration package to the local
|
||||||
Crossplane package cache.
|
Crossplane package cache.
|
||||||
|
|
||||||
The `packagePullPolicy` options are:
|
The `packagePullPolicy` options are:
|
||||||
* `IfNotPresent` - (**default**) Only download the package if it isn't in the cache.
|
* `IfNotPresent` - (**default**) Only download the package if it isn't in the cache.
|
||||||
* `Always` - Check for new packages every minute and download any matching
|
* `Always` - Check for new packages every minute and download any matching
|
||||||
package that isn't in the cache.
|
package that isn't in the cache.
|
||||||
* `Never` - Never download the package. Packages are only installed from the
|
* `Never` - Never download the package. Packages are only installed from the
|
||||||
local package cache.
|
local package cache.
|
||||||
|
|
||||||
{{<hint "tip" >}}
|
{{<hint "tip" >}}
|
||||||
The Crossplane
|
The Crossplane
|
||||||
{{<hover label="pullpolicy" line="6">}}packagePullPolicy{{</hover>}} works
|
{{<hover label="pullpolicy" line="6">}}packagePullPolicy{{</hover>}} works
|
||||||
like the Kubernetes container image
|
like the Kubernetes container image
|
||||||
[image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy).
|
[image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy).
|
||||||
|
|
||||||
Crossplane supports the use of tags and package digest hashes like
|
Crossplane supports the use of tags and package digest hashes like
|
||||||
Kubernetes images.
|
Kubernetes images.
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
For example, to `Always` download a given Configuration package use the
|
For example, to `Always` download a given Configuration package use the
|
||||||
{{<hover label="pullpolicy" line="6">}}packagePullPolicy: Always{{</hover>}}
|
{{<hover label="pullpolicy" line="6">}}packagePullPolicy: Always{{</hover>}}
|
||||||
configuration.
|
configuration.
|
||||||
|
|
||||||
```yaml {label="pullpolicy",copy-lines="6"}
|
```yaml {label="pullpolicy",copy-lines="6"}
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
|
@ -186,20 +186,20 @@ spec:
|
||||||
#### Revision activation policy
|
#### Revision activation policy
|
||||||
|
|
||||||
The `Active` package revision
|
The `Active` package revision
|
||||||
is the package controller actively reconciling resources.
|
is the package controller actively reconciling resources.
|
||||||
|
|
||||||
By default Crossplane sets the most recently installed package revision as
|
By default Crossplane sets the most recently installed package revision as
|
||||||
`Active`.
|
`Active`.
|
||||||
|
|
||||||
Control the Configuration upgrade behavior with a
|
Control the Configuration upgrade behavior with a
|
||||||
{{<hover label="revision" line="6">}}revisionActivationPolicy{{</hover>}}.
|
{{<hover label="revision" line="6">}}revisionActivationPolicy{{</hover>}}.
|
||||||
|
|
||||||
The {{<hover label="revision" line="6">}}revisionActivationPolicy{{</hover>}}
|
The {{<hover label="revision" line="6">}}revisionActivationPolicy{{</hover>}}
|
||||||
options are:
|
options are:
|
||||||
* `Automatic` - (**default**) Automatically activate the last installed configuration.
|
* `Automatic` - (**default**) Automatically activate the last installed configuration.
|
||||||
* `Manual` - Don't automatically activate a configuration.
|
* `Manual` - Don't automatically activate a configuration.
|
||||||
|
|
||||||
For example, to change the upgrade behavior to require manual upgrades, set
|
For example, to change the upgrade behavior to require manual upgrades, set
|
||||||
{{<hover label="revision" line="6">}}revisionActivationPolicy: Manual{{</hover>}}.
|
{{<hover label="revision" line="6">}}revisionActivationPolicy: Manual{{</hover>}}.
|
||||||
|
|
||||||
```yaml {label="revision"}
|
```yaml {label="revision"}
|
||||||
|
@ -215,14 +215,14 @@ spec:
|
||||||
|
|
||||||
#### Install a Configuration from a private registry
|
#### Install a Configuration from a private registry
|
||||||
|
|
||||||
Like Kubernetes uses `imagePullSecrets` to
|
Like Kubernetes uses `imagePullSecrets` to
|
||||||
[install images from private registries](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/),
|
[install images from private registries](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/),
|
||||||
Crossplane uses `packagePullSecrets` to install Configuration packages from a
|
Crossplane uses `packagePullSecrets` to install Configuration packages from a
|
||||||
private registry.
|
private registry.
|
||||||
|
|
||||||
Use {{<hover label="pps" line="6">}}packagePullSecrets{{</hover>}} to provide a
|
Use {{<hover label="pps" line="6">}}packagePullSecrets{{</hover>}} to provide a
|
||||||
Kubernetes secret to use for authentication when downloading a Configuration
|
Kubernetes secret to use for authentication when downloading a Configuration
|
||||||
package.
|
package.
|
||||||
|
|
||||||
{{<hint "important" >}}
|
{{<hint "important" >}}
|
||||||
The Kubernetes secret must be in the same namespace as Crossplane.
|
The Kubernetes secret must be in the same namespace as Crossplane.
|
||||||
|
@ -232,7 +232,7 @@ The {{<hover label="pps" line="6">}}packagePullSecrets{{</hover>}} is a list of
|
||||||
secrets.
|
secrets.
|
||||||
|
|
||||||
For example, to use the secret named
|
For example, to use the secret named
|
||||||
{{<hover label="pps" line="6">}}example-secret{{</hover>}} configure a
|
{{<hover label="pps" line="6">}}example-secret{{</hover>}} configure a
|
||||||
{{<hover label="pps" line="6">}}packagePullSecrets{{</hover>}}.
|
{{<hover label="pps" line="6">}}packagePullSecrets{{</hover>}}.
|
||||||
|
|
||||||
```yaml {label="pps"}
|
```yaml {label="pps"}
|
||||||
|
@ -241,7 +241,7 @@ kind: Configuration
|
||||||
metadata:
|
metadata:
|
||||||
name: platform-ref-aws
|
name: platform-ref-aws
|
||||||
spec:
|
spec:
|
||||||
packagePullSecrets:
|
packagePullSecrets:
|
||||||
- name: example-secret
|
- name: example-secret
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
```
|
```
|
||||||
|
@ -249,19 +249,19 @@ spec:
|
||||||
#### Ignore dependencies
|
#### Ignore dependencies
|
||||||
|
|
||||||
By default Crossplane installs any [dependencies](#manage-dependencies) listed
|
By default Crossplane installs any [dependencies](#manage-dependencies) listed
|
||||||
in a Configuration package.
|
in a Configuration package.
|
||||||
|
|
||||||
Crossplane can ignore a Configuration package's dependencies with
|
Crossplane can ignore a Configuration package's dependencies with
|
||||||
{{<hover label="pkgDep" line="6" >}}skipDependencyResolution{{</hover>}}.
|
{{<hover label="pkgDep" line="6" >}}skipDependencyResolution{{</hover>}}.
|
||||||
|
|
||||||
{{< hint "warning" >}}
|
{{< hint "warning" >}}
|
||||||
Most Configurations include dependencies for the required Providers.
|
Most Configurations include dependencies for the required Providers.
|
||||||
|
|
||||||
If a Configuration ignores dependencies, the required Providers must be
|
If a Configuration ignores dependencies, the required Providers must be
|
||||||
manually installed.
|
manually installed.
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
For example, to disable dependency resolution configure
|
For example, to disable dependency resolution configure
|
||||||
{{<hover label="pkgDep" line="6" >}}skipDependencyResolution: true{{</hover>}}.
|
{{<hover label="pkgDep" line="6" >}}skipDependencyResolution: true{{</hover>}}.
|
||||||
|
|
||||||
```yaml {label="pkgDep"}
|
```yaml {label="pkgDep"}
|
||||||
|
@ -285,15 +285,15 @@ installations. Suppose configuration A, which depends on package X with the
|
||||||
constraint`>=v0.0.0`, is installed on the control plane. In this case, the package
|
constraint`>=v0.0.0`, is installed on the control plane. In this case, the package
|
||||||
manager installs the latest version of package X, such as `v3.0.0`. Later, you decide
|
manager installs the latest version of package X, such as `v3.0.0`. Later, you decide
|
||||||
to install configuration B, which depends on package X with the constraint `<=v2.0.0`.
|
to install configuration B, which depends on package X with the constraint `<=v2.0.0`.
|
||||||
Since version `v2.0.0`satisfies both conditions, package X must be downgraded to
|
Since version `v2.0.0` satisfies both conditions, package X must be downgraded to
|
||||||
allow the installation of configuration B which is disabled by default.
|
allow the installation of configuration B which is disabled by default.
|
||||||
|
|
||||||
For enabling automatic dependency version downgrades, there is a configuration
|
Automatic dependency version downgrades is also an alpha feature that can be
|
||||||
option as a helm value `packageManager.enableAutomaticDependencyDowngrade=true`.
|
enabled with the `--enable-dependency-version-downgrades` flag. Downgrading a
|
||||||
Downgrading a package can cause unexpected behavior, therefore, this
|
package can cause unexpected behavior, therefore, this option is disabled by
|
||||||
option is disabled by default. After enabling this option, the package manager will
|
default. After enabling this option, the package manager will automatically
|
||||||
automatically downgrade a package's dependency version to the maximum valid version
|
downgrade a package's dependency version to the maximum valid version that
|
||||||
that satisfies the constraints.
|
satisfies the constraints.
|
||||||
|
|
||||||
{{<hint "note" >}}
|
{{<hint "note" >}}
|
||||||
This configuration requires the `--enable-dependency-version-upgrades` flag.
|
This configuration requires the `--enable-dependency-version-upgrades` flag.
|
||||||
|
@ -309,7 +309,7 @@ section for more details.
|
||||||
{{<hint "important" >}}
|
{{<hint "important" >}}
|
||||||
Enabling automatic dependency downgrades may have unintended consequences, such as:
|
Enabling automatic dependency downgrades may have unintended consequences, such as:
|
||||||
|
|
||||||
1) CRDs missing in the downgraded version, possibly leaving orphaned MRs without
|
1) CRDs missing in the downgraded version, possibly leaving orphaned MRs without
|
||||||
controllers to reconcile them.
|
controllers to reconcile them.
|
||||||
2) Loss of data if downgraded CRD versions omit fields that were set before.
|
2) Loss of data if downgraded CRD versions omit fields that were set before.
|
||||||
3) Changes in the CRD storage version, which may prevent package version update.
|
3) Changes in the CRD storage version, which may prevent package version update.
|
||||||
|
@ -317,15 +317,15 @@ controllers to reconcile them.
|
||||||
|
|
||||||
#### Ignore Crossplane version requirements
|
#### Ignore Crossplane version requirements
|
||||||
|
|
||||||
A Configuration package may require a specific or minimum Crossplane version
|
A Configuration package may require a specific or minimum Crossplane version
|
||||||
before installing. By default, Crossplane doesn't install a Configuration if
|
before installing. By default, Crossplane doesn't install a Configuration if
|
||||||
the Crossplane version doesn't meet the required version.
|
the Crossplane version doesn't meet the required version.
|
||||||
|
|
||||||
Crossplane can ignore the required version with
|
Crossplane can ignore the required version with
|
||||||
{{<hover label="xpVer" line="6">}}ignoreCrossplaneConstraints{{</hover>}}.
|
{{<hover label="xpVer" line="6">}}ignoreCrossplaneConstraints{{</hover>}}.
|
||||||
|
|
||||||
For example, to install a Configuration package into an unsupported Crossplane
|
For example, to install a Configuration package into an unsupported Crossplane
|
||||||
version, configure
|
version, configure
|
||||||
{{<hover label="xpVer" line="6">}}ignoreCrossplaneConstraints: true{{</hover>}}.
|
{{<hover label="xpVer" line="6">}}ignoreCrossplaneConstraints: true{{</hover>}}.
|
||||||
|
|
||||||
```yaml {label="xpVer"}
|
```yaml {label="xpVer"}
|
||||||
|
@ -341,7 +341,7 @@ spec:
|
||||||
|
|
||||||
### Verify a Configuration
|
### Verify a Configuration
|
||||||
|
|
||||||
Verify a Configuration with
|
Verify a Configuration with
|
||||||
{{<hover label="verify" line="1">}}kubectl get configuration{{</hover >}}.
|
{{<hover label="verify" line="1">}}kubectl get configuration{{</hover >}}.
|
||||||
|
|
||||||
A working configuration reports `Installed` and `Healthy` as `True`.
|
A working configuration reports `Installed` and `Healthy` as `True`.
|
||||||
|
@ -355,10 +355,10 @@ platform-ref-aws True True xpkg.crossplane.io/crossplane-contrib/c
|
||||||
### Manage dependencies
|
### Manage dependencies
|
||||||
|
|
||||||
Configuration packages may include dependencies on other packages including
|
Configuration packages may include dependencies on other packages including
|
||||||
Functions, Providers or other Configurations.
|
Functions, Providers or other Configurations.
|
||||||
|
|
||||||
If Crossplane can't meet the dependencies of a Configuration the Configuration
|
If Crossplane can't meet the dependencies of a Configuration the Configuration
|
||||||
reports `HEALTHY` as `False`.
|
reports `HEALTHY` as `False`.
|
||||||
|
|
||||||
For example, this installation of the Getting Started Configuration is
|
For example, this installation of the Getting Started Configuration is
|
||||||
`HEALTHY: False`.
|
`HEALTHY: False`.
|
||||||
|
@ -369,7 +369,7 @@ NAME INSTALLED HEALTHY PACKAGE
|
||||||
platform-ref-aws True False xpkg.crossplane.io/crossplane-contrib/configuration-quickstart:v0.1.0 71s
|
platform-ref-aws True False xpkg.crossplane.io/crossplane-contrib/configuration-quickstart:v0.1.0 71s
|
||||||
```
|
```
|
||||||
|
|
||||||
To see more information on why the Configuration isn't `HEALTHY` use
|
To see more information on why the Configuration isn't `HEALTHY` use
|
||||||
{{<hover label="depend" line="1">}}kubectl describe configurationrevisions{{</hover>}}.
|
{{<hover label="depend" line="1">}}kubectl describe configurationrevisions{{</hover>}}.
|
||||||
|
|
||||||
```yaml {copy-lines="1",label="depend"}
|
```yaml {copy-lines="1",label="depend"}
|
||||||
|
@ -396,64 +396,64 @@ Events:
|
||||||
Warning LintPackage 29s (x2 over 29s) packages/configurationrevision.pkg.crossplane.io incompatible Crossplane version: package isn't compatible with Crossplane version (v1.12.0)
|
Warning LintPackage 29s (x2 over 29s) packages/configurationrevision.pkg.crossplane.io incompatible Crossplane version: package isn't compatible with Crossplane version (v1.12.0)
|
||||||
```
|
```
|
||||||
|
|
||||||
The {{<hover label="depend" line="18">}}Events{{</hover>}} show a
|
The {{<hover label="depend" line="18">}}Events{{</hover>}} show a
|
||||||
{{<hover label="depend" line="21">}}Warning{{</hover>}} with a message that the
|
{{<hover label="depend" line="21">}}Warning{{</hover>}} with a message that the
|
||||||
current version of Crossplane doesn't meet the Configuration package
|
current version of Crossplane doesn't meet the Configuration package
|
||||||
requirements.
|
requirements.
|
||||||
|
|
||||||
## Create a Configuration
|
## Create a Configuration
|
||||||
|
|
||||||
Crossplane Configuration packages are
|
Crossplane Configuration packages are
|
||||||
[OCI container images](https://opencontainers.org/) containing one or more YAML
|
[OCI container images](https://opencontainers.org/) containing one or more YAML
|
||||||
files.
|
files.
|
||||||
|
|
||||||
{{<hint "important" >}}
|
{{<hint "important" >}}
|
||||||
Configuration packages are fully OCI compliant. Any tool that builds OCI images
|
Configuration packages are fully OCI compliant. Any tool that builds OCI images
|
||||||
can build Configuration packages.
|
can build Configuration packages.
|
||||||
|
|
||||||
It's strongly recommended to use the Crossplane command-line tool to
|
It's strongly recommended to use the Crossplane command-line tool to
|
||||||
provide error checking and formatting to Crossplane package builds.
|
provide error checking and formatting to Crossplane package builds.
|
||||||
|
|
||||||
Read the
|
Read the
|
||||||
[Crossplane package specification](https://github.com/crossplane/crossplane/blob/main/contributing/specifications/xpkg.md)
|
[Crossplane package specification](https://github.com/crossplane/crossplane/blob/main/contributing/specifications/xpkg.md)
|
||||||
for package requirements when building packages with third-party tools.
|
for package requirements when building packages with third-party tools.
|
||||||
{{</hint >}}
|
{{</hint >}}
|
||||||
|
|
||||||
A Configuration package requires a `crossplane.yaml` file and may include
|
A Configuration package requires a `crossplane.yaml` file and may include
|
||||||
Composition and CompositeResourceDefinition files.
|
Composition and CompositeResourceDefinition files.
|
||||||
|
|
||||||
<!-- vale Google.Headings = NO -->
|
<!-- vale Google.Headings = NO -->
|
||||||
### The crossplane.yaml file
|
### The crossplane.yaml file
|
||||||
<!-- vale Google.Headings = YES -->
|
<!-- vale Google.Headings = YES -->
|
||||||
|
|
||||||
To build a Configuration package using the Crossplane CLI, create a file
|
To build a Configuration package using the Crossplane CLI, create a file
|
||||||
named
|
named
|
||||||
{{<hover label="cfgMeta" line="1">}}crossplane.yaml{{</hover>}}.
|
{{<hover label="cfgMeta" line="1">}}crossplane.yaml{{</hover>}}.
|
||||||
The
|
The
|
||||||
{{<hover label="cfgMeta" line="1">}}crossplane.yaml{{</hover>}}
|
{{<hover label="cfgMeta" line="1">}}crossplane.yaml{{</hover>}}
|
||||||
file defines the requirements and name of the
|
file defines the requirements and name of the
|
||||||
Configuration.
|
Configuration.
|
||||||
|
|
||||||
{{<hint "important" >}}
|
{{<hint "important" >}}
|
||||||
The Crossplane CLI only supports a file named `crossplane.yaml`.
|
The Crossplane CLI only supports a file named `crossplane.yaml`.
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
Configuration package uses the
|
Configuration package uses the
|
||||||
{{<hover label="cfgMeta" line="2">}}meta.pkg.crossplane.io{{</hover>}}
|
{{<hover label="cfgMeta" line="2">}}meta.pkg.crossplane.io{{</hover>}}
|
||||||
Crossplane API group.
|
Crossplane API group.
|
||||||
|
|
||||||
Specify any other Configurations, Functions or Providers in the
|
Specify any other Configurations, Functions or Providers in the
|
||||||
{{<hover label="cfgMeta" line="7">}}dependsOn{{</hover>}} list.
|
{{<hover label="cfgMeta" line="7">}}dependsOn{{</hover>}} list.
|
||||||
Optionally, you can require a specific or minimum package version with the
|
Optionally, you can require a specific or minimum package version with the
|
||||||
{{<hover label="cfgMeta" line="9">}}version{{</hover>}} option.
|
{{<hover label="cfgMeta" line="9">}}version{{</hover>}} option.
|
||||||
|
|
||||||
You can also define a specific or minimum version of Crossplane for this
|
You can also define a specific or minimum version of Crossplane for this
|
||||||
Configuration with the
|
Configuration with the
|
||||||
{{<hover label="cfgMeta" line="11">}}crossplane.version{{</hover>}} option.
|
{{<hover label="cfgMeta" line="11">}}crossplane.version{{</hover>}} option.
|
||||||
|
|
||||||
{{<hint "note" >}}
|
{{<hint "note" >}}
|
||||||
Defining the {{<hover label="cfgMeta" line="10">}}crossplane{{</hover>}} object
|
Defining the {{<hover label="cfgMeta" line="10">}}crossplane{{</hover>}} object
|
||||||
or required versions is optional.
|
or required versions is optional.
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
```yaml {label="cfgMeta",copy-lines="all"}
|
```yaml {label="cfgMeta",copy-lines="all"}
|
||||||
|
@ -474,8 +474,8 @@ spec:
|
||||||
|
|
||||||
### Build the package
|
### Build the package
|
||||||
|
|
||||||
Create the package using the
|
Create the package using the
|
||||||
[Crossplane CLI]({{<ref "../cli">}}) command
|
[Crossplane CLI]({{<ref "../cli">}}) command
|
||||||
`crossplane xpkg build --package-root=<directory>`.
|
`crossplane xpkg build --package-root=<directory>`.
|
||||||
|
|
||||||
Where the `<directory>` is the directory containing the `crossplane.yaml` file
|
Where the `<directory>` is the directory containing the `crossplane.yaml` file
|
||||||
|
@ -485,19 +485,19 @@ The CLI recursively searches for `.yml` or `.yaml` files in the directory to
|
||||||
include in the package.
|
include in the package.
|
||||||
|
|
||||||
{{<hint "important" >}}
|
{{<hint "important" >}}
|
||||||
You must ignore any other YAML files with `--ignore=<file_list>`.
|
You must ignore any other YAML files with `--ignore=<file_list>`.
|
||||||
For
|
For
|
||||||
example, `crossplane xpkg build --package-root=test-directory --ignore=".tmp/*"`.
|
example, `crossplane xpkg build --package-root=test-directory --ignore=".tmp/*"`.
|
||||||
|
|
||||||
Including YAML files that aren't Compositions or CompositeResourceDefinitions,
|
Including YAML files that aren't Compositions or CompositeResourceDefinitions,
|
||||||
including Claims isn't supported.
|
including Claims isn't supported.
|
||||||
{{</hint >}}
|
{{</hint >}}
|
||||||
|
|
||||||
By default, Crossplane creates a `.xpkg` file of the Configuration name and
|
By default, Crossplane creates a `.xpkg` file of the Configuration name and
|
||||||
a SHA-256 hash of the package contents.
|
a SHA-256 hash of the package contents.
|
||||||
|
|
||||||
For example, a {{<hover label="xpkgName" line="2">}}Configuration{{</hover>}}
|
For example, a {{<hover label="xpkgName" line="2">}}Configuration{{</hover>}}
|
||||||
named {{<hover label="xpkgName" line="4">}}test-configuration{{</hover>}}.
|
named {{<hover label="xpkgName" line="4">}}test-configuration{{</hover>}}.
|
||||||
The
|
The
|
||||||
Crossplane CLI builds a package named `test-configuration-e8c244f6bf21.xpkg`.
|
Crossplane CLI builds a package named `test-configuration-e8c244f6bf21.xpkg`.
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ Examples of providers include:
|
||||||
<!-- vale write-good.Passive = NO -->
|
<!-- vale write-good.Passive = NO -->
|
||||||
<!-- "are Managed" isn't passive in this context -->
|
<!-- "are Managed" isn't passive in this context -->
|
||||||
Providers define every external resource they can create in Kubernetes as a
|
Providers define every external resource they can create in Kubernetes as a
|
||||||
Kubernetes API endpoint.
|
Kubernetes API endpoint.
|
||||||
These endpoints are
|
These endpoints are
|
||||||
[_Managed Resources_]({{<ref "managed-resources" >}}).
|
[_Managed Resources_]({{<ref "managed-resources" >}}).
|
||||||
<!-- vale write-good.Passive = YES -->
|
<!-- vale write-good.Passive = YES -->
|
||||||
|
@ -32,10 +32,10 @@ These endpoints are
|
||||||
|
|
||||||
## Install a Provider
|
## Install a Provider
|
||||||
|
|
||||||
Installing a provider creates new Kubernetes resources representing the
|
Installing a provider creates new Kubernetes resources representing the
|
||||||
Provider's APIs. Installing a provider also creates a Provider pod that's
|
Provider's APIs. Installing a provider also creates a Provider pod that's
|
||||||
responsible for reconciling the Provider's APIs into the Kubernetes cluster.
|
responsible for reconciling the Provider's APIs into the Kubernetes cluster.
|
||||||
Providers constantly watch the state of the desired managed resources and create
|
Providers constantly watch the state of the desired managed resources and create
|
||||||
any external resources that are missing.
|
any external resources that are missing.
|
||||||
|
|
||||||
Install a Provider with a Crossplane
|
Install a Provider with a Crossplane
|
||||||
|
@ -45,7 +45,7 @@ location of the provider package.
|
||||||
|
|
||||||
{{< hint "important" >}}
|
{{< hint "important" >}}
|
||||||
Beginning with Crossplane version 1.20.0 Crossplane uses the [crossplane-contrib](https://github.com/orgs/crossplane-contrib/packages) GitHub Container Registry at `xpkg.crossplane.io` by default for downloading and
|
Beginning with Crossplane version 1.20.0 Crossplane uses the [crossplane-contrib](https://github.com/orgs/crossplane-contrib/packages) GitHub Container Registry at `xpkg.crossplane.io` by default for downloading and
|
||||||
installing packages.
|
installing packages.
|
||||||
|
|
||||||
Specify the full domain name with the `package` or change the default Crossplane
|
Specify the full domain name with the `package` or change the default Crossplane
|
||||||
registry with the `--registry` flag on the [Crossplane pod]({{<ref "./pods">}})
|
registry with the `--registry` flag on the [Crossplane pod]({{<ref "./pods">}})
|
||||||
|
@ -67,19 +67,19 @@ By default, the Provider pod installs in the same namespace as Crossplane
|
||||||
(`crossplane-system`).
|
(`crossplane-system`).
|
||||||
|
|
||||||
{{<hint "note" >}}
|
{{<hint "note" >}}
|
||||||
Providers are part of the
|
Providers are part of the
|
||||||
{{<hover label="install" line="1">}}pkg.crossplane.io{{</hover>}} group.
|
{{<hover label="install" line="1">}}pkg.crossplane.io{{</hover>}} group.
|
||||||
|
|
||||||
The {{<hover label="meta-pkg" line="1">}}meta.pkg.crossplane.io{{</hover>}}
|
The {{<hover label="meta-pkg" line="1">}}meta.pkg.crossplane.io{{</hover>}}
|
||||||
group is for creating Provider packages.
|
group is for creating Provider packages.
|
||||||
|
|
||||||
Instructions on building Providers are outside of the scope of this
|
Instructions on building Providers are outside of the scope of this
|
||||||
document.
|
document.
|
||||||
Read the Crossplane contributing
|
Read the Crossplane contributing
|
||||||
[Provider Development Guide](https://github.com/crossplane/crossplane/blob/main/contributing/guide-provider-development.md)
|
[Provider Development Guide](https://github.com/crossplane/crossplane/blob/main/contributing/guide-provider-development.md)
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
For information on the specification of Provider packages read the
|
For information on the specification of Provider packages read the
|
||||||
[Crossplane Provider Package specification](https://github.com/crossplane/crossplane/blob/main/contributing/specifications/xpkg.md#provider-package-requirements).
|
[Crossplane Provider Package specification](https://github.com/crossplane/crossplane/blob/main/contributing/specifications/xpkg.md#provider-package-requirements).
|
||||||
|
|
||||||
```yaml {label="meta-pkg"}
|
```yaml {label="meta-pkg"}
|
||||||
|
@ -113,9 +113,9 @@ crossplane-stable/crossplane \
|
||||||
|
|
||||||
### Install offline
|
### Install offline
|
||||||
|
|
||||||
Installing Crossplane Providers offline requires a local container registry like
|
Installing Crossplane Providers offline requires a local container registry like
|
||||||
[Harbor](https://goharbor.io/) to host Provider packages. Crossplane only
|
[Harbor](https://goharbor.io/) to host Provider packages. Crossplane only
|
||||||
supports installing Provider packages from a container registry.
|
supports installing Provider packages from a container registry.
|
||||||
|
|
||||||
Crossplane doesn't support installing Provider packages directly from Kubernetes
|
Crossplane doesn't support installing Provider packages directly from Kubernetes
|
||||||
volumes.
|
volumes.
|
||||||
|
@ -123,11 +123,11 @@ volumes.
|
||||||
### Installation options
|
### Installation options
|
||||||
|
|
||||||
Providers support multiple configuration options to change installation related
|
Providers support multiple configuration options to change installation related
|
||||||
settings.
|
settings.
|
||||||
|
|
||||||
{{<hint "tip" >}}
|
{{<hint "tip" >}}
|
||||||
Crossplane supports installations with image digests instead of tags to get deterministic
|
Crossplane supports installations with image digests instead of tags to get deterministic
|
||||||
and repeatable installations.
|
and repeatable installations.
|
||||||
|
|
||||||
```yaml {label="digest"}
|
```yaml {label="digest"}
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
|
@ -145,26 +145,26 @@ Use a {{<hover label="pullpolicy" line="6">}}packagePullPolicy{{</hover>}} to
|
||||||
define when Crossplane should download the Provider package to the local
|
define when Crossplane should download the Provider package to the local
|
||||||
Crossplane package cache.
|
Crossplane package cache.
|
||||||
|
|
||||||
The `packagePullPolicy` options are:
|
The `packagePullPolicy` options are:
|
||||||
* `IfNotPresent` - (**default**) Only download the package if it isn't in the cache.
|
* `IfNotPresent` - (**default**) Only download the package if it isn't in the cache.
|
||||||
* `Always` - Check for new packages every minute and download any matching
|
* `Always` - Check for new packages every minute and download any matching
|
||||||
package that isn't in the cache.
|
package that isn't in the cache.
|
||||||
* `Never` - Never download the package. Packages are only installed from the
|
* `Never` - Never download the package. Packages are only installed from the
|
||||||
local package cache.
|
local package cache.
|
||||||
|
|
||||||
{{<hint "tip" >}}
|
{{<hint "tip" >}}
|
||||||
The Crossplane
|
The Crossplane
|
||||||
{{<hover label="pullpolicy" line="6">}}packagePullPolicy{{</hover>}} works
|
{{<hover label="pullpolicy" line="6">}}packagePullPolicy{{</hover>}} works
|
||||||
like the Kubernetes container image
|
like the Kubernetes container image
|
||||||
[image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy).
|
[image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy).
|
||||||
|
|
||||||
Crossplane supports the use of tags and package digest hashes like
|
Crossplane supports the use of tags and package digest hashes like
|
||||||
Kubernetes images.
|
Kubernetes images.
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
For example, to `Always` download a given Provider package use the
|
For example, to `Always` download a given Provider package use the
|
||||||
{{<hover label="pullpolicy" line="6">}}packagePullPolicy: Always{{</hover>}}
|
{{<hover label="pullpolicy" line="6">}}packagePullPolicy: Always{{</hover>}}
|
||||||
configuration.
|
configuration.
|
||||||
|
|
||||||
```yaml {label="pullpolicy",copy-lines="6"}
|
```yaml {label="pullpolicy",copy-lines="6"}
|
||||||
apiVersion: pkg.crossplane.io/v1
|
apiVersion: pkg.crossplane.io/v1
|
||||||
|
@ -179,20 +179,20 @@ spec:
|
||||||
#### Revision activation policy
|
#### Revision activation policy
|
||||||
|
|
||||||
The `Active` package revision
|
The `Active` package revision
|
||||||
is the package controller actively reconciling resources.
|
is the package controller actively reconciling resources.
|
||||||
|
|
||||||
By default Crossplane sets the most recently installed package revision as
|
By default Crossplane sets the most recently installed package revision as
|
||||||
`Active`.
|
`Active`.
|
||||||
|
|
||||||
Control the Provider upgrade behavior with a
|
Control the Provider upgrade behavior with a
|
||||||
{{<hover label="revision" line="6">}}revisionActivationPolicy{{</hover>}}.
|
{{<hover label="revision" line="6">}}revisionActivationPolicy{{</hover>}}.
|
||||||
|
|
||||||
The {{<hover label="revision" line="6">}}revisionActivationPolicy{{</hover>}}
|
The {{<hover label="revision" line="6">}}revisionActivationPolicy{{</hover>}}
|
||||||
options are:
|
options are:
|
||||||
* `Automatic` - (**default**) Automatically activate the last installed Provider.
|
* `Automatic` - (**default**) Automatically activate the last installed Provider.
|
||||||
* `Manual` - Don't automatically activate a Provider.
|
* `Manual` - Don't automatically activate a Provider.
|
||||||
|
|
||||||
For example, to change the upgrade behavior to require manual upgrades, set
|
For example, to change the upgrade behavior to require manual upgrades, set
|
||||||
{{<hover label="revision" line="6">}}revisionActivationPolicy: Manual{{</hover>}}.
|
{{<hover label="revision" line="6">}}revisionActivationPolicy: Manual{{</hover>}}.
|
||||||
|
|
||||||
```yaml {label="revision"}
|
```yaml {label="revision"}
|
||||||
|
@ -207,26 +207,26 @@ spec:
|
||||||
|
|
||||||
#### Package revision history limit
|
#### Package revision history limit
|
||||||
|
|
||||||
When Crossplane installs a different version of the same Provider package
|
When Crossplane installs a different version of the same Provider package
|
||||||
Crossplane creates a new _revision_.
|
Crossplane creates a new _revision_.
|
||||||
|
|
||||||
By default Crossplane maintains one _Inactive_ revision.
|
By default Crossplane maintains one _Inactive_ revision.
|
||||||
|
|
||||||
{{<hint "note" >}}
|
{{<hint "note" >}}
|
||||||
Read the [Provider upgrade](#upgrade-a-provider) section for
|
Read the [Provider upgrade](#upgrade-a-provider) section for
|
||||||
more information on the use of package revisions.
|
more information on the use of package revisions.
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
Change the number of revisions Crossplane maintains with a Provider Package
|
Change the number of revisions Crossplane maintains with a Provider Package
|
||||||
{{<hover label="revHistoryLimit" line="6">}}revisionHistoryLimit{{</hover>}}.
|
{{<hover label="revHistoryLimit" line="6">}}revisionHistoryLimit{{</hover>}}.
|
||||||
|
|
||||||
The {{<hover label="revHistoryLimit" line="6">}}revisionHistoryLimit{{</hover>}}
|
The {{<hover label="revHistoryLimit" line="6">}}revisionHistoryLimit{{</hover>}}
|
||||||
field is an integer.
|
field is an integer.
|
||||||
The default value is `1`.
|
The default value is `1`.
|
||||||
Disable storing revisions by setting
|
Disable storing revisions by setting
|
||||||
{{<hover label="revHistoryLimit" line="6">}}revisionHistoryLimit{{</hover>}} to `0`.
|
{{<hover label="revHistoryLimit" line="6">}}revisionHistoryLimit{{</hover>}} to `0`.
|
||||||
|
|
||||||
For example, to change the default setting and store 10 revisions use
|
For example, to change the default setting and store 10 revisions use
|
||||||
{{<hover label="revHistoryLimit" line="6">}}revisionHistoryLimit: 10{{</hover>}}.
|
{{<hover label="revHistoryLimit" line="6">}}revisionHistoryLimit: 10{{</hover>}}.
|
||||||
|
|
||||||
```yaml {label="revHistoryLimit"}
|
```yaml {label="revHistoryLimit"}
|
||||||
|
@ -241,13 +241,13 @@ spec:
|
||||||
|
|
||||||
#### Install a provider from a private registry
|
#### Install a provider from a private registry
|
||||||
|
|
||||||
Like Kubernetes uses `imagePullSecrets` to
|
Like Kubernetes uses `imagePullSecrets` to
|
||||||
[install images from private registries](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/),
|
[install images from private registries](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/),
|
||||||
Crossplane uses `packagePullSecrets` to install Provider packages from a private
|
Crossplane uses `packagePullSecrets` to install Provider packages from a private
|
||||||
registry.
|
registry.
|
||||||
|
|
||||||
Use {{<hover label="pps" line="6">}}packagePullSecrets{{</hover>}} to provide a
|
Use {{<hover label="pps" line="6">}}packagePullSecrets{{</hover>}} to provide a
|
||||||
Kubernetes secret to use for authentication when downloading a Provider package.
|
Kubernetes secret to use for authentication when downloading a Provider package.
|
||||||
|
|
||||||
{{<hint "important" >}}
|
{{<hint "important" >}}
|
||||||
The Kubernetes secret must be in the same namespace as Crossplane.
|
The Kubernetes secret must be in the same namespace as Crossplane.
|
||||||
|
@ -257,7 +257,7 @@ The {{<hover label="pps" line="6">}}packagePullSecrets{{</hover>}} is a list of
|
||||||
secrets.
|
secrets.
|
||||||
|
|
||||||
For example, to use the secret named
|
For example, to use the secret named
|
||||||
{{<hover label="pps" line="6">}}example-secret{{</hover>}} configure a
|
{{<hover label="pps" line="6">}}example-secret{{</hover>}} configure a
|
||||||
{{<hover label="pps" line="6">}}packagePullSecrets{{</hover>}}.
|
{{<hover label="pps" line="6">}}packagePullSecrets{{</hover>}}.
|
||||||
|
|
||||||
```yaml {label="pps"}
|
```yaml {label="pps"}
|
||||||
|
@ -266,25 +266,25 @@ kind: Provider
|
||||||
metadata:
|
metadata:
|
||||||
name: provider-aws
|
name: provider-aws
|
||||||
spec:
|
spec:
|
||||||
packagePullSecrets:
|
packagePullSecrets:
|
||||||
- name: example-secret
|
- name: example-secret
|
||||||
# Removed for brevity
|
# Removed for brevity
|
||||||
```
|
```
|
||||||
|
|
||||||
{{<hint "note" >}}
|
{{<hint "note" >}}
|
||||||
Configured `packagePullSecrets` aren't passed to any Provider package
|
Configured `packagePullSecrets` aren't passed to any Provider package
|
||||||
dependencies.
|
dependencies.
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
||||||
#### Ignore dependencies
|
#### Ignore dependencies
|
||||||
|
|
||||||
By default Crossplane installs any [dependencies](#manage-dependencies) listed
|
By default Crossplane installs any [dependencies](#manage-dependencies) listed
|
||||||
in a Provider package.
|
in a Provider package.
|
||||||
|
|
||||||
Crossplane can ignore a Provider package's dependencies with
|
Crossplane can ignore a Provider package's dependencies with
|
||||||
{{<hover label="pkgDep" line="6" >}}skipDependencyResolution{{</hover>}}.
|
{{<hover label="pkgDep" line="6" >}}skipDependencyResolution{{</hover>}}.
|
||||||
|
|
||||||
For example, to disable dependency resolution configure
|
For example, to disable dependency resolution configure
|
||||||
{{<hover label="pkgDep" line="6" >}}skipDependencyResolution: true{{</hover>}}.
|
{{<hover label="pkgDep" line="6" >}}skipDependencyResolution: true{{</hover>}}.
|
||||||
|
|
||||||
```yaml {label="pkgDep"}
|
```yaml {label="pkgDep"}
|
||||||
|
@ -308,15 +308,15 @@ installations. Suppose configuration A, which depends on package X with the
|
||||||
constraint`>=v0.0.0`, is installed on the control plane. In this case, the package
|
constraint`>=v0.0.0`, is installed on the control plane. In this case, the package
|
||||||
manager installs the latest version of package X, such as `v3.0.0`. Later, you decide
|
manager installs the latest version of package X, such as `v3.0.0`. Later, you decide
|
||||||
to install configuration B, which depends on package X with the constraint `<=v2.0.0`.
|
to install configuration B, which depends on package X with the constraint `<=v2.0.0`.
|
||||||
Since version `v2.0.0`satisfies both conditions, package X must be downgraded to
|
Since version `v2.0.0` satisfies both conditions, package X must be downgraded to
|
||||||
allow the installation of configuration B which is disabled by default.
|
allow the installation of configuration B which is disabled by default.
|
||||||
|
|
||||||
For enabling automatic dependency version downgrades, there is a configuration
|
Automatic dependency version downgrades is also an alpha feature that can be
|
||||||
option as a helm value `packageManager.enableAutomaticDependencyDowngrade=true`.
|
enabled with the `--enable-dependency-version-downgrades` flag. Downgrading a
|
||||||
Downgrading a package can cause unexpected behavior, therefore, this
|
package can cause unexpected behavior, therefore, this option is disabled by
|
||||||
option is disabled by default. After enabling this option, the package manager will
|
default. After enabling this option, the package manager will automatically
|
||||||
automatically downgrade a package's dependency version to the maximum valid version
|
downgrade a package's dependency version to the maximum valid version that
|
||||||
that satisfies the constraints.
|
satisfies the constraints.
|
||||||
|
|
||||||
{{<hint "note" >}}
|
{{<hint "note" >}}
|
||||||
This configuration requires the `--enable-dependency-version-upgrades` flag.
|
This configuration requires the `--enable-dependency-version-upgrades` flag.
|
||||||
|
@ -342,13 +342,13 @@ controllers to reconcile them.
|
||||||
|
|
||||||
A Provider package may require a specific or minimum Crossplane version before
|
A Provider package may require a specific or minimum Crossplane version before
|
||||||
installing. By default, Crossplane doesn't install a Provider if the Crossplane
|
installing. By default, Crossplane doesn't install a Provider if the Crossplane
|
||||||
version doesn't meet the required version.
|
version doesn't meet the required version.
|
||||||
|
|
||||||
Crossplane can ignore the required version with
|
Crossplane can ignore the required version with
|
||||||
{{<hover label="xpVer" line="6">}}ignoreCrossplaneConstraints{{</hover>}}.
|
{{<hover label="xpVer" line="6">}}ignoreCrossplaneConstraints{{</hover>}}.
|
||||||
|
|
||||||
For example, to install a Provider package into an unsupported Crossplane
|
For example, to install a Provider package into an unsupported Crossplane
|
||||||
version, configure
|
version, configure
|
||||||
{{<hover label="xpVer" line="6">}}ignoreCrossplaneConstraints: true{{</hover>}}.
|
{{<hover label="xpVer" line="6">}}ignoreCrossplaneConstraints: true{{</hover>}}.
|
||||||
|
|
||||||
```yaml {label="xpVer"}
|
```yaml {label="xpVer"}
|
||||||
|
@ -364,10 +364,10 @@ spec:
|
||||||
### Manage dependencies
|
### Manage dependencies
|
||||||
|
|
||||||
Providers packages may include dependencies on other packages including
|
Providers packages may include dependencies on other packages including
|
||||||
Configurations or other Providers.
|
Configurations or other Providers.
|
||||||
|
|
||||||
If Crossplane can't meet the dependencies of a Provider package the Provider
|
If Crossplane can't meet the dependencies of a Provider package the Provider
|
||||||
reports `HEALTHY` as `False`.
|
reports `HEALTHY` as `False`.
|
||||||
|
|
||||||
For example, this installation of the Getting Started Configuration is
|
For example, this installation of the Getting Started Configuration is
|
||||||
`HEALTHY: False`.
|
`HEALTHY: False`.
|
||||||
|
@ -404,9 +404,9 @@ Events:
|
||||||
Warning LintPackage 41s (x3 over 47s) packages/providerrevision.pkg.crossplane.io incompatible Crossplane version: package isn't compatible with Crossplane version (v1.10.0)
|
Warning LintPackage 41s (x3 over 47s) packages/providerrevision.pkg.crossplane.io incompatible Crossplane version: package isn't compatible with Crossplane version (v1.10.0)
|
||||||
```
|
```
|
||||||
|
|
||||||
The {{<hover label="depend" line="17">}}Events{{</hover>}} show a
|
The {{<hover label="depend" line="17">}}Events{{</hover>}} show a
|
||||||
{{<hover label="depend" line="20">}}Warning{{</hover>}} with a message that the
|
{{<hover label="depend" line="20">}}Warning{{</hover>}} with a message that the
|
||||||
current version of Crossplane doesn't meet the Configuration package
|
current version of Crossplane doesn't meet the Configuration package
|
||||||
requirements.
|
requirements.
|
||||||
|
|
||||||
## Upgrade a Provider
|
## Upgrade a Provider
|
||||||
|
@ -420,7 +420,7 @@ Crossplane installs the new image and creates a new `ProviderRevision`.
|
||||||
The `ProviderRevision` allows Crossplane to store deprecated Provider CRDs
|
The `ProviderRevision` allows Crossplane to store deprecated Provider CRDs
|
||||||
without removing them until you decide.
|
without removing them until you decide.
|
||||||
|
|
||||||
View the `ProviderRevisions` with
|
View the `ProviderRevisions` with
|
||||||
{{<hover label="getPR" line="1">}}kubectl get providerrevisions{{</hover>}}
|
{{<hover label="getPR" line="1">}}kubectl get providerrevisions{{</hover>}}
|
||||||
|
|
||||||
```shell {label="getPR",copy-lines="1"}
|
```shell {label="getPR",copy-lines="1"}
|
||||||
|
@ -436,14 +436,14 @@ By default Crossplane keeps a single
|
||||||
{{<hover label="getPR" line="5">}}Inactive{{</hover>}} Provider.
|
{{<hover label="getPR" line="5">}}Inactive{{</hover>}} Provider.
|
||||||
|
|
||||||
Read the [revision history limit](#package-revision-history-limit) section to
|
Read the [revision history limit](#package-revision-history-limit) section to
|
||||||
change the default value.
|
change the default value.
|
||||||
|
|
||||||
Only a single revision of a Provider is
|
Only a single revision of a Provider is
|
||||||
{{<hover label="getPR" line="4">}}Active{{</hover>}} at a time.
|
{{<hover label="getPR" line="4">}}Active{{</hover>}} at a time.
|
||||||
|
|
||||||
## Remove a Provider
|
## Remove a Provider
|
||||||
|
|
||||||
Remove a Provider by deleting the Provider object with
|
Remove a Provider by deleting the Provider object with
|
||||||
`kubectl delete provider`.
|
`kubectl delete provider`.
|
||||||
|
|
||||||
{{< hint "warning" >}}
|
{{< hint "warning" >}}
|
||||||
|
@ -495,7 +495,7 @@ The Crossplane community has more
|
||||||
|
|
||||||
### Provider conditions
|
### Provider conditions
|
||||||
|
|
||||||
Crossplane uses a standard set of `Conditions` for Providers.
|
Crossplane uses a standard set of `Conditions` for Providers.
|
||||||
View the conditions of a provider under their `Status` with
|
View the conditions of a provider under their `Status` with
|
||||||
`kubectl describe provider`.
|
`kubectl describe provider`.
|
||||||
|
|
||||||
|
@ -622,7 +622,7 @@ Providers have two different types of configurations:
|
||||||
an external provider. For example, cloud provider authentication.
|
an external provider. For example, cloud provider authentication.
|
||||||
|
|
||||||
{{<hint "important" >}}
|
{{<hint "important" >}}
|
||||||
Apply `ControllerConfig` objects to Providers.
|
Apply `ControllerConfig` objects to Providers.
|
||||||
|
|
||||||
Apply `ProviderConfig` objects to managed resources.
|
Apply `ProviderConfig` objects to managed resources.
|
||||||
{{< /hint >}}
|
{{< /hint >}}
|
||||||
|
|
|
@ -132,6 +132,9 @@ Apply customizations with the command line or with a Helm _values_ file.
|
||||||
| `extraVolumeMountsCrossplane` | Add custom `volumeMounts` to the Crossplane pod. | `{}` |
|
| `extraVolumeMountsCrossplane` | Add custom `volumeMounts` to the Crossplane pod. | `{}` |
|
||||||
| `extraVolumesCrossplane` | Add custom `volumes` to the Crossplane pod. | `{}` |
|
| `extraVolumesCrossplane` | Add custom `volumes` to the Crossplane pod. | `{}` |
|
||||||
| `function.packages` | A list of Function packages to install | `[]` |
|
| `function.packages` | A list of Function packages to install | `[]` |
|
||||||
|
| `functionCache.medium` | Set to `Memory` to hold the function cache in a RAM backed file system. Useful for Crossplane development. | `""` |
|
||||||
|
| `functionCache.pvc` | The name of a PersistentVolumeClaim to use as the function cache. Disables the default function cache `emptyDir` Volume. | `""` |
|
||||||
|
| `functionCache.sizeLimit` | The size limit for the function cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"512Mi"` |
|
||||||
| `hostNetwork` | Enable `hostNetwork` for the Crossplane deployment. Caution: enabling `hostNetwork` grants the Crossplane Pod access to the host network namespace. Consider setting `dnsPolicy` to `ClusterFirstWithHostNet`. | `false` |
|
| `hostNetwork` | Enable `hostNetwork` for the Crossplane deployment. Caution: enabling `hostNetwork` grants the Crossplane Pod access to the host network namespace. Consider setting `dnsPolicy` to `ClusterFirstWithHostNet`. | `false` |
|
||||||
| `image.pullPolicy` | The image pull policy used for Crossplane and RBAC Manager pods. | `"IfNotPresent"` |
|
| `image.pullPolicy` | The image pull policy used for Crossplane and RBAC Manager pods. | `"IfNotPresent"` |
|
||||||
| `image.repository` | Repository for the Crossplane pod image. | `"xpkg.crossplane.io/crossplane/crossplane"` |
|
| `image.repository` | Repository for the Crossplane pod image. | `"xpkg.crossplane.io/crossplane/crossplane"` |
|
||||||
|
@ -145,7 +148,6 @@ Apply customizations with the command line or with a Helm _values_ file.
|
||||||
| `packageCache.medium` | Set to `Memory` to hold the package cache in a RAM backed file system. Useful for Crossplane development. | `""` |
|
| `packageCache.medium` | Set to `Memory` to hold the package cache in a RAM backed file system. Useful for Crossplane development. | `""` |
|
||||||
| `packageCache.pvc` | The name of a PersistentVolumeClaim to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` |
|
| `packageCache.pvc` | The name of a PersistentVolumeClaim to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` |
|
||||||
| `packageCache.sizeLimit` | The size limit for the package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"20Mi"` |
|
| `packageCache.sizeLimit` | The size limit for the package cache. If medium is `Memory` the `sizeLimit` can't exceed Node memory. | `"20Mi"` |
|
||||||
| `packageManager.enableAutomaticDependencyDowngrade` | Enable automatic dependency version downgrades. This configuration is only used when `--enable-dependency-version-upgrades` flag is passed. | `false` |
|
|
||||||
| `podSecurityContextCrossplane` | Add a custom `securityContext` to the Crossplane pod. | `{}` |
|
| `podSecurityContextCrossplane` | Add a custom `securityContext` to the Crossplane pod. | `{}` |
|
||||||
| `podSecurityContextRBACManager` | Add a custom `securityContext` to the RBAC Manager pod. | `{}` |
|
| `podSecurityContextRBACManager` | Add a custom `securityContext` to the RBAC Manager pod. | `{}` |
|
||||||
| `priorityClassName` | The PriorityClass name to apply to the Crossplane and RBAC Manager pods. | `""` |
|
| `priorityClassName` | The PriorityClass name to apply to the Crossplane and RBAC Manager pods. | `""` |
|
||||||
|
@ -265,10 +267,12 @@ at the table below.
|
||||||
| Beta | `--enable-deployment-runtime-configs` | Enable support for DeploymentRuntimeConfigs. |
|
| Beta | `--enable-deployment-runtime-configs` | Enable support for DeploymentRuntimeConfigs. |
|
||||||
| Beta | `--enable-usages` | Enable support for Usages. |
|
| Beta | `--enable-usages` | Enable support for Usages. |
|
||||||
| Beta | `--enable-ssa-claims` | Enable support for using server-side apply to sync claims with XRs. |
|
| Beta | `--enable-ssa-claims` | Enable support for using server-side apply to sync claims with XRs. |
|
||||||
|
| Beta | `--enable-realtime-compositions` | Enable support for real time compositions. |
|
||||||
| Alpha | `--enable-external-secret-stores` | Enable support for External Secret Stores. |
|
| Alpha | `--enable-external-secret-stores` | Enable support for External Secret Stores. |
|
||||||
| Alpha | `--enable-realtime-compositions` | Enable support for real time compositions. |
|
| Alpha | `--enable-dependency-version-upgrades` | Enable automatic version upgrades of dependencies when updating packages. |
|
||||||
| Alpha | `--enable-dependency-version-upgrades ` | Enable automatic version upgrades of dependencies when updating packages. |
|
| Alpha | `--enable-dependency-version-downgrades` | Enable automatic version downgrades of dependencies when updating packages. |
|
||||||
| Alpha | `--enable-signature-verification` | Enable support for package signature verification via ImageConfig API. |
|
| Alpha | `--enable-signature-verification` | Enable support for package signature verification via ImageConfig API. |
|
||||||
|
| Alpha | `--enable-function-response-cache` | Enable support for caching composition function responses. |
|
||||||
{{< /table >}}
|
{{< /table >}}
|
||||||
{{< /expand >}}
|
{{< /expand >}}
|
||||||
|
|
||||||
|
@ -279,7 +283,7 @@ args='{"--enable-composition-functions","--enable-composition-webhook-schema-val
|
||||||
#### Change the default package registry
|
#### Change the default package registry
|
||||||
|
|
||||||
Beginning with Crossplane version 1.20.0 Crossplane uses the [crossplane-contrib](https://github.com/orgs/crossplane-contrib/packages) GitHub Container Registry at `xpkg.crossplane.io` by default for downloading and
|
Beginning with Crossplane version 1.20.0 Crossplane uses the [crossplane-contrib](https://github.com/orgs/crossplane-contrib/packages) GitHub Container Registry at `xpkg.crossplane.io` by default for downloading and
|
||||||
installing packages.
|
installing packages.
|
||||||
|
|
||||||
Change the default registry location during the Crossplane install with
|
Change the default registry location during the Crossplane install with
|
||||||
`--set args='{"--registry=index.docker.io"}'`.
|
`--set args='{"--registry=index.docker.io"}'`.
|
||||||
|
|
Loading…
Reference in New Issue