diff --git a/content/v2.0-preview/get-started/install-crossplane-include.md b/content/v2.0-preview/get-started/install-crossplane-include.md deleted file mode 100644 index fa8baa9b..00000000 --- a/content/v2.0-preview/get-started/install-crossplane-include.md +++ /dev/null @@ -1,1126 +0,0 @@ ---- -tocHidden: true -searchExclude: true ---- - -## Install Crossplane - -Crossplane installs into an existing Kubernetes cluster. - -{{< hint type="tip" >}} -If you don't have a Kubernetes cluster create one locally with [Kind](https://kind.sigs.k8s.io/). -{{< /hint >}} - - -### Install the Crossplane Helm chart - -Helm enables Crossplane to install all its Kubernetes components through a _Helm Chart_. - -Enable the Crossplane Helm Chart repository: - -```shell -helm repo add \ -crossplane-stable https://charts.crossplane.io/stable -helm repo update -``` - -Run the Helm dry-run to see all the Crossplane components Helm installs. - -```shell -helm install crossplane \ -crossplane-stable/crossplane \ ---dry-run --debug \ ---namespace crossplane-system \ ---create-namespace -``` -{{}} -```shell -helm install crossplane \ -crossplane-stable/crossplane \ ---dry-run --debug \ ---namespace crossplane-system \ ---create-namespace -install.go:214: [debug] Original chart version: "" -install.go:216: [debug] setting version to >0.0.0-0 -install.go:231: [debug] CHART PATH: /Users/plumbis/Library/Caches/helm/repository/crossplane-1.15.0.tgz - -NAME: crossplane -LAST DEPLOYED: Mon Feb 12 14:46:15 2024 -NAMESPACE: default -STATUS: pending-install -REVISION: 1 -TEST SUITE: None -USER-SUPPLIED VALUES: -{} - -COMPUTED VALUES: -affinity: {} -args: [] -configuration: - packages: [] -customAnnotations: {} -customLabels: {} -deploymentStrategy: RollingUpdate -extraEnvVarsCrossplane: {} -extraEnvVarsRBACManager: {} -extraObjects: [] -extraVolumeMountsCrossplane: {} -extraVolumesCrossplane: {} -function: - packages: [] -hostNetwork: false -image: - pullPolicy: IfNotPresent - repository: xpkg.crossplane.io/crossplane/crossplane - tag: "" -imagePullSecrets: {} -leaderElection: true -metrics: - enabled: false -nodeSelector: {} -packageCache: - configMap: "" - medium: "" - pvc: "" - sizeLimit: 20Mi -podSecurityContextCrossplane: {} -podSecurityContextRBACManager: {} -priorityClassName: "" -provider: - packages: [] -rbacManager: - affinity: {} - args: [] - deploy: true - leaderElection: true - nodeSelector: {} - replicas: 1 - skipAggregatedClusterRoles: false - tolerations: [] -registryCaBundleConfig: - key: "" - name: "" -replicas: 1 -resourcesCrossplane: - limits: - cpu: 100m - memory: 512Mi - requests: - cpu: 100m - memory: 256Mi -resourcesRBACManager: - limits: - cpu: 100m - memory: 512Mi - requests: - cpu: 100m - memory: 256Mi -securityContextCrossplane: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - runAsGroup: 65532 - runAsUser: 65532 -securityContextRBACManager: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - runAsGroup: 65532 - runAsUser: 65532 -serviceAccount: - customAnnotations: {} -tolerations: [] -webhooks: - enabled: true - -HOOKS: -MANIFEST: ---- -# Source: crossplane/templates/rbac-manager-serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: rbac-manager - namespace: default - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" ---- -# Source: crossplane/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: crossplane - namespace: default - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" ---- -# Source: crossplane/templates/secret.yaml -# The reason this is created empty and filled by the init container is we want -# to manage the lifecycle of the secret via Helm. This way whenever Crossplane -# is deleted, the secret is deleted as well. -apiVersion: v1 -kind: Secret -metadata: - name: crossplane-root-ca - namespace: default -type: Opaque ---- -# Source: crossplane/templates/secret.yaml -# The reason this is created empty and filled by the init container is we want -# to manage the lifecycle of the secret via Helm. This way whenever Crossplane -# is deleted, the secret is deleted as well. -apiVersion: v1 -kind: Secret -metadata: - name: crossplane-tls-server - namespace: default -type: Opaque ---- -# Source: crossplane/templates/secret.yaml -# The reason this is created empty and filled by the init container is we want -# to manage the lifecycle of the secret via Helm. This way whenever Crossplane -# is deleted, the secret is deleted as well. -apiVersion: v1 -kind: Secret -metadata: - name: crossplane-tls-client - namespace: default -type: Opaque ---- -# Source: crossplane/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -aggregationRule: - clusterRoleSelectors: - - matchLabels: - rbac.crossplane.io/aggregate-to-crossplane: "true" ---- -# Source: crossplane/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane:system:aggregate-to-crossplane - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" - crossplane.io/scope: "system" - rbac.crossplane.io/aggregate-to-crossplane: "true" -rules: -- apiGroups: - - "" - resources: - - events - verbs: - - create - - update - - patch - - delete -- apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - - customresourcedefinitions/status - verbs: - - "*" -- apiGroups: - - "" - resources: - - secrets - verbs: - - get - - list - - watch - - create - - update - - patch - - delete -- apiGroups: - - "" - resources: - - serviceaccounts - - services - verbs: - - "*" -- apiGroups: - - apiextensions.crossplane.io - - pkg.crossplane.io - - secrets.crossplane.io - resources: - - "*" - verbs: - - "*" -- apiGroups: - - extensions - - apps - resources: - - deployments - verbs: - - get - - list - - create - - update - - patch - - delete - - watch -- apiGroups: - - "" - - coordination.k8s.io - resources: - - configmaps - - leases - verbs: - - get - - list - - create - - update - - patch - - watch - - delete -- apiGroups: - - admissionregistration.k8s.io - resources: - - validatingwebhookconfigurations - - mutatingwebhookconfigurations - verbs: - - get - - list - - create - - update - - patch - - watch - - delete ---- -# Source: crossplane/templates/rbac-manager-allowed-provider-permissions.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane:allowed-provider-permissions - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -aggregationRule: - clusterRoleSelectors: - - matchLabels: - rbac.crossplane.io/aggregate-to-allowed-provider-permissions: "true" ---- -# Source: crossplane/templates/rbac-manager-clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane-rbac-manager - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -rules: -- apiGroups: - - "" - resources: - - events - verbs: - - create - - update - - patch - - delete -- apiGroups: - - "" - resources: - - namespaces - verbs: - - get - - list - - watch -- apiGroups: - - apps - resources: - - deployments - verbs: - - get - - list - - watch -# The RBAC manager creates a series of RBAC roles for each namespace it sees. -# These RBAC roles are controlled (in the owner reference sense) by the namespace. -# The RBAC manager needs permission to set finalizers on Namespaces in order to -# create resources that block their deletion when the -# OwnerReferencesPermissionEnforcement admission controller is enabled. -# See https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement -- apiGroups: - - "" - resources: - - namespaces/finalizers - verbs: - - update -- apiGroups: - - apiextensions.crossplane.io - resources: - - compositeresourcedefinitions - verbs: - - get - - list - - watch -# The RBAC manager creates a series of RBAC cluster roles for each XRD it sees. -# These cluster roles are controlled (in the owner reference sense) by the XRD. -# The RBAC manager needs permission to set finalizers on XRDs in order to -# create resources that block their deletion when the -# OwnerReferencesPermissionEnforcement admission controller is enabled. -# See https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement -- apiGroups: - - apiextensions.crossplane.io - resources: - - compositeresourcedefinitions/finalizers - verbs: - - update -- apiGroups: - - pkg.crossplane.io - resources: - - providerrevisions - verbs: - - get - - list - - watch -# The RBAC manager creates a series of RBAC cluster roles for each ProviderRevision -# it sees. These cluster roles are controlled (in the owner reference sense) by the -# ProviderRevision. The RBAC manager needs permission to set finalizers on -# ProviderRevisions in order to create resources that block their deletion when the -# OwnerReferencesPermissionEnforcement admission controller is enabled. -# See https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement -- apiGroups: - - pkg.crossplane.io - resources: - - providerrevisions/finalizers - verbs: - - update -- apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - verbs: - - get - - list - - watch -- apiGroups: - - rbac.authorization.k8s.io - resources: - - clusterroles - - roles - verbs: - - get - - list - - watch - - create - - update - - patch - # The RBAC manager may grant access it does not have. - - escalate -- apiGroups: - - rbac.authorization.k8s.io - resources: - - clusterroles - verbs: - - bind -- apiGroups: - - rbac.authorization.k8s.io - resources: - - clusterrolebindings - verbs: - - "*" -- apiGroups: - - "" - - coordination.k8s.io - resources: - - configmaps - - leases - verbs: - - get - - list - - create - - update - - patch - - watch - - delete ---- -# Source: crossplane/templates/rbac-manager-managed-clusterroles.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane-admin - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -aggregationRule: - clusterRoleSelectors: - - matchLabels: - rbac.crossplane.io/aggregate-to-admin: "true" ---- -# Source: crossplane/templates/rbac-manager-managed-clusterroles.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane-edit - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -aggregationRule: - clusterRoleSelectors: - - matchLabels: - rbac.crossplane.io/aggregate-to-edit: "true" ---- -# Source: crossplane/templates/rbac-manager-managed-clusterroles.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane-view - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -aggregationRule: - clusterRoleSelectors: - - matchLabels: - rbac.crossplane.io/aggregate-to-view: "true" ---- -# Source: crossplane/templates/rbac-manager-managed-clusterroles.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane-browse - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -aggregationRule: - clusterRoleSelectors: - - matchLabels: - rbac.crossplane.io/aggregate-to-browse: "true" ---- -# Source: crossplane/templates/rbac-manager-managed-clusterroles.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane:aggregate-to-admin - labels: - rbac.crossplane.io/aggregate-to-admin: "true" - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -rules: -# Crossplane administrators have access to view events. -- apiGroups: [""] - resources: [events] - verbs: [get, list, watch] -# Crossplane administrators must create provider credential secrets, and may -# need to read or otherwise interact with connection secrets. They may also need -# to create or annotate namespaces. -- apiGroups: [""] - resources: [secrets, namespaces] - verbs: ["*"] -# Crossplane administrators have access to view the roles that they may be able -# to grant to other subjects. -- apiGroups: [rbac.authorization.k8s.io] - resources: [clusterroles, roles] - verbs: [get, list, watch] -# Crossplane administrators have access to grant the access they have to other -# subjects. -- apiGroups: [rbac.authorization.k8s.io] - resources: [clusterrolebindings, rolebindings] - verbs: ["*"] -# Crossplane administrators have full access to built in Crossplane types. -- apiGroups: - - apiextensions.crossplane.io - resources: ["*"] - verbs: ["*"] -- apiGroups: - - pkg.crossplane.io - resources: ["*"] - verbs: ["*"] -# Crossplane administrators have access to view CRDs in order to debug XRDs. -- apiGroups: [apiextensions.k8s.io] - resources: [customresourcedefinitions] - verbs: [get, list, watch] ---- -# Source: crossplane/templates/rbac-manager-managed-clusterroles.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane:aggregate-to-edit - labels: - rbac.crossplane.io/aggregate-to-edit: "true" - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -rules: -# Crossplane editors have access to view events. -- apiGroups: [""] - resources: [events] - verbs: [get, list, watch] -# Crossplane editors must create provider credential secrets, and may need to -# read or otherwise interact with connection secrets. -- apiGroups: [""] - resources: [secrets] - verbs: ["*"] -# Crossplane editors may see which namespaces exist, but not edit them. -- apiGroups: [""] - resources: [namespaces] - verbs: [get, list, watch] -# Crossplane editors have full access to built in Crossplane types. -- apiGroups: - - apiextensions.crossplane.io - resources: ["*"] - verbs: ["*"] -- apiGroups: - - pkg.crossplane.io - resources: ["*"] - verbs: ["*"] ---- -# Source: crossplane/templates/rbac-manager-managed-clusterroles.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane:aggregate-to-view - labels: - rbac.crossplane.io/aggregate-to-view: "true" - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -rules: -# Crossplane viewers have access to view events. -- apiGroups: [""] - resources: [events] - verbs: [get, list, watch] -# Crossplane viewers may see which namespaces exist. -- apiGroups: [""] - resources: [namespaces] - verbs: [get, list, watch] -# Crossplane viewers have read-only access to built in Crossplane types. -- apiGroups: - - apiextensions.crossplane.io - resources: ["*"] - verbs: [get, list, watch] -- apiGroups: - - pkg.crossplane.io - resources: ["*"] - verbs: [get, list, watch] ---- -# Source: crossplane/templates/rbac-manager-managed-clusterroles.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: crossplane:aggregate-to-browse - labels: - rbac.crossplane.io/aggregate-to-browse: "true" - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -rules: -# Crossplane browsers have access to view events. -- apiGroups: [""] - resources: [events] - verbs: [get, list, watch] -# Crossplane browsers have read-only access to compositions and XRDs. This -# allows them to discover and select an appropriate composition when creating a -# resource claim. -- apiGroups: - - apiextensions.crossplane.io - resources: ["*"] - verbs: [get, list, watch] ---- -# Source: crossplane/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: crossplane - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: crossplane -subjects: -- kind: ServiceAccount - name: crossplane - namespace: default ---- -# Source: crossplane/templates/rbac-manager-clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: crossplane-rbac-manager - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: crossplane-rbac-manager -subjects: -- kind: ServiceAccount - name: rbac-manager - namespace: default ---- -# Source: crossplane/templates/rbac-manager-managed-clusterroles.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: crossplane-admin - labels: - app: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: crossplane-admin -subjects: -- apiGroup: rbac.authorization.k8s.io - kind: Group - name: crossplane:masters ---- -# Source: crossplane/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: crossplane-webhooks - namespace: default - labels: - app: crossplane - release: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -spec: - selector: - app: crossplane - release: crossplane - ports: - - protocol: TCP - port: 9443 - targetPort: 9443 ---- -# Source: crossplane/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: crossplane - namespace: default - labels: - app: crossplane - release: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -spec: - replicas: 1 - selector: - matchLabels: - app: crossplane - release: crossplane - strategy: - type: RollingUpdate - template: - metadata: - labels: - app: crossplane - release: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" - spec: - serviceAccountName: crossplane - hostNetwork: false - initContainers: - - image: "xpkg.crossplane.io/crossplane/crossplane:v1.15.0" - args: - - core - - init - imagePullPolicy: IfNotPresent - name: crossplane-init - resources: - limits: - cpu: 100m - memory: 512Mi - requests: - cpu: 100m - memory: 256Mi - securityContext: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - runAsGroup: 65532 - runAsUser: 65532 - env: - - name: GOMAXPROCS - valueFrom: - resourceFieldRef: - containerName: crossplane-init - resource: limits.cpu - divisor: "1" - - name: GOMEMLIMIT - valueFrom: - resourceFieldRef: - containerName: crossplane-init - resource: limits.memory - divisor: "1" - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: POD_SERVICE_ACCOUNT - valueFrom: - fieldRef: - fieldPath: spec.serviceAccountName - - name: "WEBHOOK_SERVICE_NAME" - value: crossplane-webhooks - - name: "WEBHOOK_SERVICE_NAMESPACE" - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: "WEBHOOK_SERVICE_PORT" - value: "9443" - - name: "TLS_CA_SECRET_NAME" - value: crossplane-root-ca - - name: "TLS_SERVER_SECRET_NAME" - value: crossplane-tls-server - - name: "TLS_CLIENT_SECRET_NAME" - value: crossplane-tls-client - containers: - - image: "xpkg.crossplane.io/crossplane/crossplane:v1.15.0" - args: - - core - - start - imagePullPolicy: IfNotPresent - name: crossplane - resources: - limits: - cpu: 100m - memory: 512Mi - requests: - cpu: 100m - memory: 256Mi - startupProbe: - failureThreshold: 30 - periodSeconds: 2 - tcpSocket: - port: readyz - ports: - - name: readyz - containerPort: 8081 - - name: webhooks - containerPort: 9443 - securityContext: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - runAsGroup: 65532 - runAsUser: 65532 - env: - - name: GOMAXPROCS - valueFrom: - resourceFieldRef: - containerName: crossplane - resource: limits.cpu - divisor: "1" - - name: GOMEMLIMIT - valueFrom: - resourceFieldRef: - containerName: crossplane - resource: limits.memory - divisor: "1" - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: POD_SERVICE_ACCOUNT - valueFrom: - fieldRef: - fieldPath: spec.serviceAccountName - - name: LEADER_ELECTION - value: "true" - - name: "TLS_SERVER_SECRET_NAME" - value: crossplane-tls-server - - name: "TLS_SERVER_CERTS_DIR" - value: /tls/server - - name: "TLS_CLIENT_SECRET_NAME" - value: crossplane-tls-client - - name: "TLS_CLIENT_CERTS_DIR" - value: /tls/client - volumeMounts: - - mountPath: /cache - name: package-cache - - mountPath: /tls/server - name: tls-server-certs - - mountPath: /tls/client - name: tls-client-certs - volumes: - - name: package-cache - emptyDir: - medium: - sizeLimit: 20Mi - - name: tls-server-certs - secret: - secretName: crossplane-tls-server - - name: tls-client-certs - secret: - secretName: crossplane-tls-client ---- -# Source: crossplane/templates/rbac-manager-deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: crossplane-rbac-manager - namespace: default - labels: - app: crossplane-rbac-manager - release: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" -spec: - replicas: 1 - selector: - matchLabels: - app: crossplane-rbac-manager - release: crossplane - strategy: - type: RollingUpdate - template: - metadata: - labels: - app: crossplane-rbac-manager - release: crossplane - helm.sh/chart: crossplane-1.15.0 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: cloud-infrastructure-controller - app.kubernetes.io/part-of: crossplane - app.kubernetes.io/name: crossplane - app.kubernetes.io/instance: crossplane - app.kubernetes.io/version: "1.15.0" - spec: - serviceAccountName: rbac-manager - initContainers: - - image: "xpkg.crossplane.io/crossplane/crossplane:v1.15.0" - args: - - rbac - - init - imagePullPolicy: IfNotPresent - name: crossplane-init - resources: - limits: - cpu: 100m - memory: 512Mi - requests: - cpu: 100m - memory: 256Mi - securityContext: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - runAsGroup: 65532 - runAsUser: 65532 - env: - - name: GOMAXPROCS - valueFrom: - resourceFieldRef: - containerName: crossplane-init - resource: limits.cpu - - name: GOMEMLIMIT - valueFrom: - resourceFieldRef: - containerName: crossplane-init - resource: limits.memory - containers: - - image: "xpkg.crossplane.io/crossplane/crossplane:v1.15.0" - args: - - rbac - - start - - --provider-clusterrole=crossplane:allowed-provider-permissions - imagePullPolicy: IfNotPresent - name: crossplane - resources: - limits: - cpu: 100m - memory: 512Mi - requests: - cpu: 100m - memory: 256Mi - securityContext: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - runAsGroup: 65532 - runAsUser: 65532 - env: - - name: GOMAXPROCS - valueFrom: - resourceFieldRef: - containerName: crossplane - resource: limits.cpu - - name: GOMEMLIMIT - valueFrom: - resourceFieldRef: - containerName: crossplane - resource: limits.memory - - name: LEADER_ELECTION - value: "true" - -NOTES: -Release: crossplane - -Chart Name: crossplane -Chart Description: Crossplane is an open source Kubernetes add-on that enables platform teams to assemble infrastructure from multiple vendors, and expose higher level self-service APIs for application teams to consume. -Chart Version: 1.15.0 -Chart Application Version: 1.15.0 - -Kube Version: v1.27.3 -``` -{{< /expand >}} - -Install the Crossplane components using `helm install`. - -```shell -helm install crossplane \ -crossplane-stable/crossplane \ ---namespace crossplane-system \ ---create-namespace -``` - -Verify Crossplane installed with `kubectl get pods`. - -```shell {copy-lines="1"} -kubectl get pods -n crossplane-system -NAME READY STATUS RESTARTS AGE -crossplane-d4cd8d784-ldcgb 1/1 Running 0 54s -crossplane-rbac-manager-84769b574-6mw6f 1/1 Running 0 54s -``` - -Installing Crossplane creates new Kubernetes API end-points. -Look at the new API end-points with `kubectl api-resources | grep crossplane`. - -```shell {label="grep",copy-lines="1"} -kubectl api-resources | grep crossplane -compositeresourcedefinitions xrd,xrds apiextensions.crossplane.io/v1 false CompositeResourceDefinition -compositionrevisions comprev apiextensions.crossplane.io/v1 false CompositionRevision -compositions comp apiextensions.crossplane.io/v1 false Composition -environmentconfigs envcfg apiextensions.crossplane.io/v1beta1 false EnvironmentConfig -usages apiextensions.crossplane.io/v1alpha1 false Usage -configurationrevisions pkg.crossplane.io/v1 false ConfigurationRevision -configurations pkg.crossplane.io/v1 false Configuration -deploymentruntimeconfigs pkg.crossplane.io/v1beta1 false DeploymentRuntimeConfig -functionrevisions pkg.crossplane.io/v1beta1 false FunctionRevision -functions pkg.crossplane.io/v1beta1 false Function -locks pkg.crossplane.io/v1beta1 false Lock -providerrevisions pkg.crossplane.io/v1 false ProviderRevision -providers pkg.crossplane.io/v1 false Provider -storeconfigs secrets.crossplane.io/v1alpha1 false StoreConfig -``` diff --git a/content/v2.0-preview/get-started/install.md b/content/v2.0-preview/get-started/install.md index acfe4442..fa492082 100644 --- a/content/v2.0-preview/get-started/install.md +++ b/content/v2.0-preview/get-started/install.md @@ -3,10 +3,20 @@ title: Install Crossplane weight: 100 --- -Crossplane installs into an existing Kubernetes cluster, creating the -`Crossplane` pod, enabling the installation of Crossplane _Provider_ resources. +{{< hint "warning" >}} +Crossplane v2 is a preview release. -{{< hint type="tip" >}} +**Don't use this Crossplane v2 preview in production.** +{{< /hint >}} + + +Crossplane installs into an existing Kubernetes cluster, creating the +Crossplane pod. + +Installing Crossplane enables the installation of Crossplane _Provider_, +_Function_, and _Configuration_ resources. + +{{< hint "tip" >}} If you don't have a Kubernetes cluster create one locally with [Kind](https://kind.sigs.k8s.io/). {{< /hint >}} @@ -16,15 +26,15 @@ If you don't have a Kubernetes cluster create one locally with [Kind](https://ki ## Install Crossplane -Install Crossplane using the Crossplane published _Helm chart_. +Install Crossplane using the _Helm chart_. -### Add the Crossplane Helm repository +### Add the Crossplane Preview Helm repository -Add the Crossplane repository with the `helm repo add` command. +Add the Crossplane preview repository with the `helm repo add` command. ```shell -helm repo add crossplane-stable https://charts.crossplane.io/stable +helm repo add crossplane-preview https://charts.crossplane.io/preview ``` Update the @@ -33,9 +43,9 @@ local Helm chart cache with `helm repo update`. helm repo update ``` -### Install the Crossplane Helm chart +### Install the Crossplane Preview Helm chart -Install the Crossplane Helm chart with `helm install`. +Install the Crossplane Preview Helm chart with `helm install`. {{< hint "tip" >}} View the changes Crossplane makes to your cluster with the @@ -48,7 +58,8 @@ Crossplane creates and installs into the `crossplane-system` namespace. ```shell helm install crossplane \ --namespace crossplane-system \ ---create-namespace crossplane-stable/crossplane +--create-namespace crossplane-preview/crossplane \ +--devel ``` View the installed Crossplane pods with `kubectl get pods -n crossplane-system`. @@ -60,198 +71,23 @@ crossplane-6d67f8cd9d-g2gjw 1/1 Running 0 26m crossplane-rbac-manager-86d9b5cf9f-2vc4s 1/1 Running 0 26m ``` -{{< hint "tip" >}} -Install a specific version of Crossplane with the `--version ` option. For example, to install version `1.10.0`: - -```shell -helm install crossplane \ ---namespace crossplane-system \ ---create-namespace crossplane-stable/crossplane \ ---version 1.10.0 -``` -{{< /hint >}} - - - -## Installed deployments -Crossplane creates two Kubernetes _deployments_ in the `crossplane-system` -namespace to deploy the Crossplane pods. - -```shell {copy-lines="1"} -kubectl get deployments -n crossplane-system -NAME READY UP-TO-DATE AVAILABLE AGE -crossplane 1/1 1 1 8m13s -crossplane-rbac-manager 1/1 1 1 8m13s -``` - -### Crossplane deployment -The Crossplane deployment starts with the `crossplane-init container`. The -`init` container installs the Crossplane _Custom Resource Definitions_ into the -Kubernetes cluster. - -After the `init` container finishes, the `crossplane` pod manages two Kubernetes -controllers. -* The _Package Manager controller_ installs the -provider, function and configuration packages. -* The _Composition controller_ installs and manages the -Crossplane _Composite Resource Definitions_, _Compositions_ and _Claims_. - -### Crossplane RBAC manager deployment -The `crossplane-rbac-manager` creates and manages Kubernetes _ClusterRoles_ for -installed Crossplane _Provider_ and their _Custom Resource Definitions_. - -The -[Crossplane RBAC Manager design document](https://github.com/crossplane/crossplane/blob/main/design/design-doc-rbac-manager.md) -has more information on the installed _ClusterRoles_. - ## Installation options ### Customize the Crossplane Helm chart + Crossplane supports customizations at install time by configuring the Helm chart. -Apply customizations with the command line or with a Helm _values_ file. +Read [the Helm chart README](https://github.com/crossplane/crossplane/blob/v2/cluster/charts/crossplane/README.md#configuration) +to learn what customizations are available. - - - -{{}} -{{< table "table table-hover table-striped table-sm">}} -| Parameter | Description | Default | -| --- | --- | --- | -| `affinity` | Add `affinities` to the Crossplane pod deployment. | `{}` | -| `args` | Add custom arguments to the Crossplane pod. | `[]` | -| `configuration.packages` | A list of Configuration packages to install. | `[]` | -| `customAnnotations` | Add custom `annotations` to the Crossplane pod deployment. | `{}` | -| `customLabels` | Add custom `labels` to the Crossplane pod deployment. | `{}` | -| `deploymentStrategy` | The deployment strategy for the Crossplane and RBAC Manager pods. | `"RollingUpdate"` | -| `dnsPolicy` | Specify the `dnsPolicy` to be used by the Crossplane pod. | `""` | -| `extraEnvVarsCrossplane` | Add custom environmental variables to the Crossplane pod deployment. Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. | `{}` | -| `extraEnvVarsRBACManager` | Add custom environmental variables to the RBAC Manager pod deployment. Replaces any `.` in a variable name with `_`. For example, `SAMPLE.KEY=value1` becomes `SAMPLE_KEY=value1`. | `{}` | -| `extraObjects` | To add arbitrary Kubernetes Objects during a Helm Install | `[]` | -| `extraVolumeMountsCrossplane` | Add custom `volumeMounts` to the Crossplane pod. | `{}` | -| `extraVolumesCrossplane` | Add custom `volumes` to the Crossplane pod. | `{}` | -| `function.packages` | A list of Function packages to install | `[]` | -| `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.repository` | Repository for the Crossplane pod image. | `"xpkg.crossplane.io/crossplane/crossplane"` | -| `image.tag` | The Crossplane image tag. Defaults to the value of `appVersion` in `Chart.yaml`. | `""` | -| `imagePullSecrets` | The imagePullSecret names to add to the Crossplane ServiceAccount. | `[]` | -| `leaderElection` | Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the Crossplane pod. | `true` | -| `metrics.enabled` | Enable Prometheus path, port and scrape annotations and expose port 8080 for both the Crossplane and RBAC Manager pods. | `false` | -| `metrics.port` | The port the metrics server listens on. | `""` | -| `nodeSelector` | Add `nodeSelectors` to the Crossplane pod deployment. | `{}` | -| `packageCache.configMap` | The name of a ConfigMap to use as the package cache. Disables the default package cache `emptyDir` Volume. | `""` | -| `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.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. | `{}` | -| `podSecurityContextRBACManager` | Add a custom `securityContext` to the RBAC Manager pod. | `{}` | -| `priorityClassName` | The PriorityClass name to apply to the Crossplane and RBAC Manager pods. | `""` | -| `provider.packages` | A list of Provider packages to install. | `[]` | -| `rbacManager.affinity` | Add `affinities` to the RBAC Manager pod deployment. | `{}` | -| `rbacManager.args` | Add custom arguments to the RBAC Manager pod. | `[]` | -| `rbacManager.deploy` | Deploy the RBAC Manager pod and its required roles. | `true` | -| `rbacManager.leaderElection` | Enable [leader election](https://docs.crossplane.io/latest/concepts/pods/#leader-election) for the RBAC Manager pod. | `true` | -| `rbacManager.nodeSelector` | Add `nodeSelectors` to the RBAC Manager pod deployment. | `{}` | -| `rbacManager.replicas` | The number of RBAC Manager pod `replicas` to deploy. | `1` | -| `rbacManager.revisionHistoryLimit` | The number of RBAC Manager ReplicaSets to retain. | `nil` | -| `rbacManager.skipAggregatedClusterRoles` | Don't install aggregated Crossplane ClusterRoles. | `false` | -| `rbacManager.tolerations` | Add `tolerations` to the RBAC Manager pod deployment. | `[]` | -| `rbacManager.topologySpreadConstraints` | Add `topologySpreadConstraints` to the RBAC Manager pod deployment. | `[]` | -| `readiness.port` | The port the readyz server listens on. | `""` | -| `registryCaBundleConfig.key` | The ConfigMap key containing a custom CA bundle to enable fetching packages from registries with unknown or untrusted certificates. | `""` | -| `registryCaBundleConfig.name` | The ConfigMap name containing a custom CA bundle to enable fetching packages from registries with unknown or untrusted certificates. | `""` | -| `replicas` | The number of Crossplane pod `replicas` to deploy. | `1` | -| `resourcesCrossplane.limits.cpu` | CPU resource limits for the Crossplane pod. | `"500m"` | -| `resourcesCrossplane.limits.memory` | Memory resource limits for the Crossplane pod. | `"1024Mi"` | -| `resourcesCrossplane.requests.cpu` | CPU resource requests for the Crossplane pod. | `"100m"` | -| `resourcesCrossplane.requests.memory` | Memory resource requests for the Crossplane pod. | `"256Mi"` | -| `resourcesRBACManager.limits.cpu` | CPU resource limits for the RBAC Manager pod. | `"100m"` | -| `resourcesRBACManager.limits.memory` | Memory resource limits for the RBAC Manager pod. | `"512Mi"` | -| `resourcesRBACManager.requests.cpu` | CPU resource requests for the RBAC Manager pod. | `"100m"` | -| `resourcesRBACManager.requests.memory` | Memory resource requests for the RBAC Manager pod. | `"256Mi"` | -| `revisionHistoryLimit` | The number of Crossplane ReplicaSets to retain. | `nil` | -| `securityContextCrossplane.allowPrivilegeEscalation` | Enable `allowPrivilegeEscalation` for the Crossplane pod. | `false` | -| `securityContextCrossplane.readOnlyRootFilesystem` | Set the Crossplane pod root file system as read-only. | `true` | -| `securityContextCrossplane.runAsGroup` | The group ID used by the Crossplane pod. | `65532` | -| `securityContextCrossplane.runAsUser` | The user ID used by the Crossplane pod. | `65532` | -| `securityContextRBACManager.allowPrivilegeEscalation` | Enable `allowPrivilegeEscalation` for the RBAC Manager pod. | `false` | -| `securityContextRBACManager.readOnlyRootFilesystem` | Set the RBAC Manager pod root file system as read-only. | `true` | -| `securityContextRBACManager.runAsGroup` | The group ID used by the RBAC Manager pod. | `65532` | -| `securityContextRBACManager.runAsUser` | The user ID used by the RBAC Manager pod. | `65532` | -| `service.customAnnotations` | Configure annotations on the service object. Only enabled when webhooks.enabled = true | `{}` | -| `serviceAccount.create` | Specifies whether Crossplane ServiceAccount should be created | `true` | -| `serviceAccount.customAnnotations` | Add custom `annotations` to the Crossplane ServiceAccount. | `{}` | -| `serviceAccount.name` | Provide the name of an already created Crossplane ServiceAccount. Required when `serviceAccount.create` is `false` | `""` | -| `tolerations` | Add `tolerations` to the Crossplane pod deployment. | `[]` | -| `topologySpreadConstraints` | Add `topologySpreadConstraints` to the Crossplane pod deployment. | `[]` | -| `webhooks.enabled` | Enable webhooks for Crossplane and installed Provider packages. | `true` | -| `webhooks.port` | The port the webhook server listens on. | `""` | -{{< /table >}} -{{< /expand >}} - - -#### Command line customization - -Apply custom settings at the command line with -`helm install crossplane --set =`. - -For example, to change the image pull policy: - -```shell -helm install crossplane \ ---namespace crossplane-system \ ---create-namespace \ -crossplane-stable/crossplane \ ---set image.pullPolicy=Always -``` - -Helm supports comma-separated arguments. - -For example, to change the image pull policy and number of replicas: - -```shell -helm install crossplane \ ---namespace crossplane-system \ ---create-namespace \ -crossplane-stable/crossplane \ ---set image.pullPolicy=Always,replicas=2 -``` - -#### Helm values file - -Apply custom settings in a Helm _values_ file with -`helm install crossplane -f `. - -A YAML file defines the customized settings. - -For example, to change the image pull policy and number of replicas: - -Create a YAML with the customized settings. - -```yaml -replicas: 2 - -image: - pullPolicy: Always -``` - -Apply the file with `helm install`: - -```shell -helm install crossplane \ ---namespace crossplane-system \ ---create-namespace \ -crossplane-stable/crossplane \ --f settings.yaml -``` +Read [the Helm documentation](https://helm.sh/docs/) to learn how to run Helm +with custom options using `--set` or `values.yaml`. #### Feature flags -Crossplane introduces new features behind feature flags. By default -alpha features are off. Crossplane enables beta features by default. To enable a +Crossplane introduces new features behind feature flags. By default alpha +features are off. Crossplane enables beta features by default. To enable a feature flag, set the `args` value in the Helm chart. Available feature flags can be directly found by running `crossplane core start --help`, or by looking at the table below. @@ -260,11 +96,8 @@ at the table below. {{< table caption="Feature flags" >}} | Status | Flag | Description | | --- | --- | --- | -| Beta | `--enable-composition-webhook-schema-validation` | Enable Composition validation using schemas. | | Beta | `--enable-deployment-runtime-configs` | Enable support for DeploymentRuntimeConfigs. | | Beta | `--enable-usages` | Enable support for Usages. | -| Beta | `--enable-ssa-claims` | Enable support for using server-side apply to sync claims with XRs. | -| 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-signature-verification` | Enable support for package signature verification via ImageConfig API. | @@ -282,56 +115,3 @@ installing packages. Change the default registry location during the Crossplane install with `--set args='{"--registry=index.docker.io"}'`. - -### Install pre-release Crossplane versions -Install a pre-release versions of Crossplane from the `master` Crossplane Helm channel. - -Versions in the `master` channel are under active development and may be unstable. - -{{< hint "warning" >}} -Don't use Crossplane `master` releases in production. Only use `stable` channel. -Only use `master` for testing and development. -{{< /hint >}} - - -#### Add the Crossplane master Helm repository - -Add the Crossplane repository with the `helm repo add` command. - -```shell -helm repo add crossplane-master https://charts.crossplane.io/master/ -``` - -Update the -local Helm chart cache with `helm repo update`. -```shell -helm repo update -``` - -#### Install the Crossplane master Helm chart - -Install the Crossplane `master` Helm chart with `helm install`. - -{{< hint "tip" >}} -View the changes Crossplane makes to your cluster with the -`helm install --dry-run --debug` options. Helm shows what configurations it -applies without making changes to the Kubernetes cluster. -{{< /hint >}} - -Crossplane creates and installs into the `crossplane-system` namespace. - -```shell -helm install crossplane \ ---namespace crossplane-system \ ---create-namespace crossplane-master/crossplane \ ---devel -``` - -## Crossplane distributions -Third-party vendors may maintain their own Crossplane distributions. Vendor -supported distribution may have features or tooling that isn't in the -Community Crossplane distribution. - -The CNCF certified third-party distributions as -"[conformant](https://github.com/cncf/crossplane-conformance)" with the -Community Crossplane distribution. diff --git a/content/v2.0-preview/guides/upgrade-crossplane.md b/content/v2.0-preview/guides/upgrade-crossplane.md index c899658d..023ba3a8 100644 --- a/content/v2.0-preview/guides/upgrade-crossplane.md +++ b/content/v2.0-preview/guides/upgrade-crossplane.md @@ -10,14 +10,14 @@ The recommended upgrade method for an existing Crossplane install is to use * [Helm](https://helm.sh/docs/intro/install/) version `v3.2.0` or later -## Add the Crossplane Helm repository +## Add the Crossplane Preview Helm repository Verify Helm has the Crossplane repository. ```shell -helm repo add crossplane-stable https://charts.crossplane.io/stable +helm repo add crossplane-preview https://charts.crossplane.io/preview ``` -## Update the Helm repository +## Update the Helm Preview repository Update the local Crossplane Helm chart with `helm repo update`. @@ -37,7 +37,7 @@ By default, Crossplane installs into the `crossplane-system` namespace. ```shell -helm upgrade crossplane --namespace crossplane-system crossplane-stable/crossplane +helm upgrade crossplane --namespace crossplane-system crossplane-preview/crossplane --devel ``` Helm preserves any arguments or flags originally used when installing @@ -56,5 +56,5 @@ with the upgrade command. For example, to maintain the original image registry use ```shell -helm upgrade crossplane --namespace crossplane-system crossplane-stable/crossplane --set 'args={"--registry=index.docker.io"}' +helm upgrade crossplane --namespace crossplane-system crossplane-preview/crossplane --set 'args={"--registry=index.docker.io"}' ``` diff --git a/utils/vale/styles/Crossplane/spelling-exceptions.txt b/utils/vale/styles/Crossplane/spelling-exceptions.txt index 417b2521..db4c4ae6 100644 --- a/utils/vale/styles/Crossplane/spelling-exceptions.txt +++ b/utils/vale/styles/Crossplane/spelling-exceptions.txt @@ -50,3 +50,4 @@ UpperCamelCase UpperCamelCased user-defined version-specific +v2 \ No newline at end of file