From b4b3f60372a30d12ee3460a3060e50ac19ffdcb6 Mon Sep 17 00:00:00 2001 From: Todd Short Date: Tue, 30 Apr 2024 11:40:50 -0400 Subject: [PATCH] Remove install references to rukpak Signed-off-by: Todd Short --- .github/workflows/tilt.yaml | 4 - CONTRIBUTING.md | 6 +- Makefile | 5 +- README.md | 3 +- Tiltfile | 2 +- docs/components.md | 5 - scripts/install.tpl.sh | 11 +- .../core.rukpak.io_bundledeployments.yaml | 480 ------------------ tilt.md | 6 +- 9 files changed, 10 insertions(+), 512 deletions(-) delete mode 100644 testdata/crds/core.rukpak.io_bundledeployments.yaml diff --git a/.github/workflows/tilt.yaml b/.github/workflows/tilt.yaml index c72842a60..c8dddf98c 100644 --- a/.github/workflows/tilt.yaml +++ b/.github/workflows/tilt.yaml @@ -22,10 +22,6 @@ jobs: - uses: actions/checkout@v4 with: path: operator-controller - - uses: actions/checkout@v4 - with: - repository: operator-framework/rukpak - path: rukpak - uses: actions/checkout@v4 with: repository: operator-framework/catalogd diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 56561937c..9cf09a98c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,9 +19,8 @@ The user experience captured in the OLM V1 PRD introduces many requirements that - [The Operator-Controller project](https://github.com/operator-framework/operator-controller/), which is the top level component allowing users to specify operators they'd like to install. - [The Catalogd project](https://github.com/operator-framework/catalogd/), which hosts operator content and helps users discover installable content. - [The Deppy project](https://github.com/operator-framework/deppy/), which enables the operator-controller to identify valid installs and upgrades from the list of installable content provided via the Catalogd project. -- [The RukPak project](https://github.com/operator-framework/rukpak/), which facilitates the installation of operators. -Each of the projects listed above have their own governance, release milestones, and release cadence. However, from a technical perspective, the "OLM V1 experience" matches the experienced offered by the operator-controller project, the top level component which introduces dependencies on RukPak, Deppy, and the Catalogd projects. +Each of the projects listed above have their own governance, release milestones, and release cadence. However, from a technical perspective, the "OLM V1 experience" matches the experienced offered by the operator-controller project, the top level component which introduces dependencies on Deppy and the Catalogd projects. ## How do we collaborate @@ -62,7 +61,7 @@ Ongoing or previous Operator-Controller milestones can always be found in the [m ### How are Subproject Issues Tracked? -As discussed earlier, the operator-controller adheres to a microservice architecture, where multiple projects contribute to the overall experience. As such, when designing an operator-controller milestone, the community may need to file an issue against RukPak, Deppy, or Catalogd. Unfortunately, the operator-controller milestone cannot contain issues from one of its subprojects. As such, we've introduced the concept of a "Dependency Issue", described below: +As discussed earlier, the operator-controller adheres to a microservice architecture, where multiple projects contribute to the overall experience. As such, when designing an operator-controller milestone, the community may need to file an issue against Deppy or Catalogd. Unfortunately, the operator-controller milestone cannot contain issues from one of its subprojects. As such, we've introduced the concept of a "Dependency Issue", described below: > Dependency Issues: An issue tracked in a milestone that "points" to an issue in another project with a URL. @@ -72,7 +71,6 @@ Unsure where to submit an issue? - [The Operator-Controller project](https://github.com/operator-framework/operator-controller/), which is the top level component allowing users to specify operators they'd like to install. - [The Catalogd project](https://github.com/operator-framework/catalogd/), which hosts operator content and helps users discover installable content. - [The Deppy project](https://github.com/operator-framework/deppy/), which enables the operator-controller to identify valid installs and upgrades from the list of installable content provided via the Catalogd project. -- [The RukPak project](https://github.com/operator-framework/rukpak/), which facilitates the installation of operators. Don't worry if you accidentally submit an issue against the wrong project, if we notice that an issue would fit better with a separate project we'll move it to the correct repository and mention it in the #olm-dev slack channel. diff --git a/Makefile b/Makefile index e5de9b442..f99493a90 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,6 @@ export IMAGE_TAG ?= devel export CERT_MGR_VERSION ?= v1.9.0 export CATALOGD_VERSION ?= $(shell go list -mod=mod -m -f "{{.Version}}" github.com/operator-framework/catalogd) export KAPP_VERSION ?= $(shell go list -mod=mod -m -f "{{.Version}}" github.com/vmware-tanzu/carvel-kapp-controller) -export RUKPAK_VERSION=$(shell go list -mod=mod -m -f "{{.Version}}" github.com/operator-framework/rukpak) export WAIT_TIMEOUT ?= 60s IMG?=$(IMAGE_REPO):$(IMAGE_TAG) TESTDATA_DIR := testdata @@ -167,7 +166,7 @@ endif kind-deploy: export MANIFEST="./operator-controller.yaml" kind-deploy: manifests $(KUSTOMIZE) #EXHELP Install controller and dependencies onto the kind cluster. $(KUSTOMIZE) build $(KUSTOMIZE_BUILD_DIR) > operator-controller.yaml - envsubst '$$CATALOGD_VERSION,$$CERT_MGR_VERSION,$$KAPP_VERSION,$$RUKPAK_VERSION,$$MANIFEST' < scripts/install.tpl.sh | bash -s + envsubst '$$CATALOGD_VERSION,$$CERT_MGR_VERSION,$$KAPP_VERSION,$$MANIFEST' < scripts/install.tpl.sh | bash -s .PHONY: kind-cluster kind-cluster: $(KIND) #EXHELP Standup a kind cluster. @@ -241,7 +240,7 @@ release: $(GORELEASER) #EXHELP Runs goreleaser for the operator-controller. By d quickstart: export MANIFEST="https://github.com/operator-framework/operator-controller/releases/download/$(VERSION)/operator-controller.yaml" quickstart: $(KUSTOMIZE) manifests #EXHELP Generate the installation release manifests and scripts. $(KUSTOMIZE) build $(KUSTOMIZE_BUILD_DIR) | sed "s/:devel/:$(VERSION)/g" > operator-controller.yaml - envsubst '$$CATALOGD_VERSION,$$CERT_MGR_VERSION,$$KAPP_VERSION,$$RUKPAK_VERSION,$$MANIFEST' < scripts/install.tpl.sh > install.sh + envsubst '$$CATALOGD_VERSION,$$CERT_MGR_VERSION,$$KAPP_VERSION,$$MANIFEST' < scripts/install.tpl.sh > install.sh ##@ Docs diff --git a/README.md b/README.md index 0f3b30c12..eea4a117c 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,6 @@ OLM v1 is the follow-up to OLM v0, located [here](https://github.com/operator-fr OLM v1 consists of four different components: * operator-controller (this repository) * [deppy](https://github.com/operator-framework/deppy) -* [rukpak](https://github.com/operator-framework/rukpak) * [catalogd](https://github.com/operator-framework/catalogd) For a more complete overview of OLM v1 and how it differs from OLM v0, see our [overview](./docs/olmv1_overview.md). @@ -76,7 +75,7 @@ Install the CRDs and the operator-controller into a new [KIND cluster](https://k make run ``` This will build a local container image of the operator-controller, create a new KIND cluster and then deploy onto that cluster. -This will also deploy the catalogd, rukpak and cert-manager dependencies. +This will also deploy the catalogd and cert-manager dependencies. ### Modifying the API definitions If you are editing the API definitions, generate the manifests such as CRs or CRDs using: diff --git a/Tiltfile b/Tiltfile index 948d0991d..783123d74 100644 --- a/Tiltfile +++ b/Tiltfile @@ -5,7 +5,7 @@ load('../tilt-support/Tiltfile', 'deploy_repo') config.define_string_list('repos', args=True) cfg = config.parse() -repos = cfg.get('repos', ['operator-controller', 'rukpak', 'catalogd']) +repos = cfg.get('repos', ['operator-controller', 'catalogd']) repo = { 'image': 'quay.io/operator-framework/operator-controller', diff --git a/docs/components.md b/docs/components.md index 13c97e939..395e9ca90 100644 --- a/docs/components.md +++ b/docs/components.md @@ -2,11 +2,6 @@ OLM v1 is composed of various component projects: * [operator-controller](https://github.com/operator-framework/operator-controller): operator-controller is the central component of OLM v1, that consumes all of the components below to extend Kubernetes to allows users to install, and manage the lifecycle of other extensions -* [rukpak](https://github.com/operator-framework/rukpak): RukPak is a pluggable solution for the packaging and distribution of cloud-native content and supports advanced strategies for installation, updates, and policy. The project provides a content ecosystem for installing a variety of artifacts, such as Git repositories, Helm charts, OLM bundles, and more onto a Kubernetes cluster. These artifacts can then be managed, scaled, and upgraded in a safe way to enable powerful cluster extensions. -At its core, RukPak is a small set of APIs, packaged as Kubernetes CustomResourceDefinitions, and controllers that watch for those APIs. These APIs express what content is being installed on-cluster and how to create a running deployment of the content. - - * [deppy](https://github.com/operator-framework/deppy): Deppy is a Kubernetes API that runs on- or off-cluster for resolving constraints over catalogs of RukPak bundles. Deppy is part of the next iteration of OLM and was first introduced here. The initial goal of the project is to remove the dependency manager from the Operator Lifecycle Manager (OLM) and make it its own generic component. - * [catalogD](https://github.com/operator-framework/catalogd): Catalogd is a Kubernetes extension that unpacks [file-based catalog (FBC)](https://olm.operatorframework.io/docs/reference/file-based-catalogs/#docs) content that is packaged and shipped in container images, for consumption by clients on-clusters (unpacking from other sources, like git repos, OCI artifacts etc, are in the roadmap for catalogD). As component of the Operator Lifecycle Manager (OLM) v1 microservices architecture, catalogD hosts metadata for Kubernetes extensions packaged by the authors of the extensions, as a result helping customers discover installable content. diff --git a/scripts/install.tpl.sh b/scripts/install.tpl.sh index b98f47bec..02909790c 100644 --- a/scripts/install.tpl.sh +++ b/scripts/install.tpl.sh @@ -11,10 +11,9 @@ fi catalogd_version=$CATALOGD_VERSION cert_mgr_version=$CERT_MGR_VERSION -rukpak_version=$RUKPAK_VERSION kapp_version=$KAPP_VERSION -if [[ -z "$catalogd_version" || -z "$cert_mgr_version" || -z "$rukpak_version" || -z "$kapp_version" ]]; then +if [[ -z "$catalogd_version" || -z "$cert_mgr_version" || -z "$kapp_version" ]]; then err="Error: Missing component version(s) for: " if [[ -z "$catalogd_version" ]]; then err+="catalogd " @@ -22,9 +21,6 @@ if [[ -z "$catalogd_version" || -z "$cert_mgr_version" || -z "$rukpak_version" | if [[ -z "$cert_mgr_version" ]]; then err+="cert-manager " fi - if [[ -z "$rukpak_version" ]]; then - err+="rukpak " - fi if [[ -z "$kapp_version" ]]; then err+="kapp " fi @@ -46,11 +42,6 @@ kubectl_wait "cert-manager" "deployment/cert-manager-webhook" "60s" kubectl apply -f "https://github.com/carvel-dev/kapp-controller/releases/download/${kapp_version}/release.yml" kubectl_wait "kapp-controller" "deployment.apps/kapp-controller" 60s -kubectl apply -f "https://github.com/operator-framework/rukpak/releases/download/${rukpak_version}/rukpak.yaml" -kubectl_wait "rukpak-system" "deployment/core" "60s" -kubectl_wait "rukpak-system" "deployment/helm-provisioner" "60s" -kubectl_wait "rukpak-system" "deployment/rukpak-webhooks" "60s" - kubectl apply -f "https://github.com/operator-framework/catalogd/releases/download/${catalogd_version}/catalogd.yaml" kubectl_wait "catalogd-system" "deployment/catalogd-controller-manager" "60s" diff --git a/testdata/crds/core.rukpak.io_bundledeployments.yaml b/testdata/crds/core.rukpak.io_bundledeployments.yaml deleted file mode 100644 index 0cedcf0c5..000000000 --- a/testdata/crds/core.rukpak.io_bundledeployments.yaml +++ /dev/null @@ -1,480 +0,0 @@ -## TODO dfranz: remove this file and add a crds package in rukpak so we can grab it from that repo instead of having two copies ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: bundledeployments.core.rukpak.io -spec: - group: core.rukpak.io - names: - kind: BundleDeployment - listKind: BundleDeploymentList - plural: bundledeployments - shortNames: - - bd - - bds - singular: bundledeployment - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(.type=="Installed")].reason - name: Install State - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .spec.provisionerClassName - name: Provisioner - priority: 1 - type: string - name: v1alpha2 - schema: - openAPIV3Schema: - description: BundleDeployment is the Schema for the bundledeployments API - 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: BundleDeploymentSpec defines the desired state of BundleDeployment - properties: - config: - description: Config is provisioner specific configurations - type: object - x-kubernetes-preserve-unknown-fields: true - provisionerClassName: - description: ProvisionerClassName sets the name of the provisioner - that should reconcile this BundleDeployment. - pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ - type: string - source: - description: Source defines the configuration for the underlying Bundle - content. - properties: - configMaps: - description: |- - ConfigMaps is a list of config map references and their relative - directory paths that represent a bundle filesystem. - items: - properties: - configMap: - description: ConfigMap is a reference to a configmap in - the rukpak system namespace - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - path: - description: |- - Path is the relative directory path within the bundle where the files - from the configmap will be present when the bundle is unpacked. - type: string - required: - - configMap - type: object - type: array - git: - description: Git is the git repository that backs the content - of this Bundle. - properties: - auth: - description: Auth configures the authorization method if necessary. - properties: - insecureSkipVerify: - description: |- - InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name. If InsecureSkipVerify - is true, the clone operation will accept any certificate presented by the server and any host name in that - certificate. In this mode, TLS is susceptible to machine-in-the-middle attacks unless custom verification is - used. This should be used only for testing. - type: boolean - secret: - description: |- - Secret contains reference to the secret that has authorization information and is in the namespace that the provisioner is deployed. - The secret is expected to contain `data.username` and `data.password` for the username and password, respectively for http(s) scheme. - Refer to https://kubernetes.io/docs/concepts/configuration/secret/#basic-authentication-secret - For the ssh authorization of the GitSource, the secret is expected to contain `data.ssh-privatekey` and `data.ssh-knownhosts` for the ssh privatekey and the host entry in the known_hosts file respectively. - Refer to https://kubernetes.io/docs/concepts/configuration/secret/#ssh-authentication-secrets - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: object - directory: - description: |- - Directory refers to the location of the bundle within the git repository. - Directory is optional and if not set defaults to ./manifests. - type: string - ref: - description: |- - Ref configures the git source to clone a specific branch, tag, or commit - from the specified repo. Ref is required, and exactly one field within Ref - is required. Setting more than one field or zero fields will result in an - error. - properties: - branch: - description: |- - Branch refers to the branch to checkout from the repository. - The Branch should contain the bundle manifests in the specified directory. - type: string - commit: - description: |- - Commit refers to the commit to checkout from the repository. - The Commit should contain the bundle manifests in the specified directory. - type: string - tag: - description: |- - Tag refers to the tag to checkout from the repository. - The Tag should contain the bundle manifests in the specified directory. - type: string - type: object - repository: - description: |- - Repository is a URL link to the git repository containing the bundle. - Repository is required and the URL should be parsable by a standard git tool. - type: string - required: - - ref - - repository - type: object - http: - description: ' HTTP is the remote location that backs the content - of this Bundle.' - properties: - auth: - description: Auth configures the authorization method if necessary. - properties: - insecureSkipVerify: - description: |- - InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name. If InsecureSkipVerify - is true, the clone operation will accept any certificate presented by the server and any host name in that - certificate. In this mode, TLS is susceptible to machine-in-the-middle attacks unless custom verification is - used. This should be used only for testing. - type: boolean - secret: - description: |- - Secret contains reference to the secret that has authorization information and is in the namespace that the provisioner is deployed. - The secret is expected to contain `data.username` and `data.password` for the username and password, respectively for http(s) scheme. - Refer to https://kubernetes.io/docs/concepts/configuration/secret/#basic-authentication-secret - For the ssh authorization of the GitSource, the secret is expected to contain `data.ssh-privatekey` and `data.ssh-knownhosts` for the ssh privatekey and the host entry in the known_hosts file respectively. - Refer to https://kubernetes.io/docs/concepts/configuration/secret/#ssh-authentication-secrets - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: object - url: - description: URL is where the bundle contents is. - type: string - required: - - url - type: object - image: - description: Image is the bundle image that backs the content - of this bundle. - properties: - pullSecret: - description: ImagePullSecretName contains the name of the - image pull secret in the namespace that the provisioner - is deployed. - type: string - ref: - description: Ref contains the reference to a container image - containing Bundle contents. - type: string - required: - - ref - type: object - type: - description: Type defines the kind of Bundle content being sourced. - type: string - required: - - type - type: object - watchNamespaces: - description: watchNamespaces indicates which namespaces the operator - should watch. - items: - type: string - type: array - required: - - provisionerClassName - - source - type: object - x-kubernetes-validations: - - message: Empty string not accepted if length of watchNamespaces is more - than 1. - rule: '!has(self.watchNamespaces) || size(self.watchNamespaces) <= 1 - || (size(self.watchNamespaces) > 1 && !self.watchNamespaces.exists(e, - e == ''''))' - status: - description: BundleDeploymentStatus defines the observed state of BundleDeployment - properties: - conditions: - items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - 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 - minimum: 0 - type: integer - reason: - description: |- - reason contains a programmatic identifier indicating the reason for the condition's last transition. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - contentURL: - type: string - observedGeneration: - format: int64 - type: integer - resolvedSource: - properties: - configMaps: - description: |- - ConfigMaps is a list of config map references and their relative - directory paths that represent a bundle filesystem. - items: - properties: - configMap: - description: ConfigMap is a reference to a configmap in - the rukpak system namespace - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - path: - description: |- - Path is the relative directory path within the bundle where the files - from the configmap will be present when the bundle is unpacked. - type: string - required: - - configMap - type: object - type: array - git: - description: Git is the git repository that backs the content - of this Bundle. - properties: - auth: - description: Auth configures the authorization method if necessary. - properties: - insecureSkipVerify: - description: |- - InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name. If InsecureSkipVerify - is true, the clone operation will accept any certificate presented by the server and any host name in that - certificate. In this mode, TLS is susceptible to machine-in-the-middle attacks unless custom verification is - used. This should be used only for testing. - type: boolean - secret: - description: |- - Secret contains reference to the secret that has authorization information and is in the namespace that the provisioner is deployed. - The secret is expected to contain `data.username` and `data.password` for the username and password, respectively for http(s) scheme. - Refer to https://kubernetes.io/docs/concepts/configuration/secret/#basic-authentication-secret - For the ssh authorization of the GitSource, the secret is expected to contain `data.ssh-privatekey` and `data.ssh-knownhosts` for the ssh privatekey and the host entry in the known_hosts file respectively. - Refer to https://kubernetes.io/docs/concepts/configuration/secret/#ssh-authentication-secrets - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: object - directory: - description: |- - Directory refers to the location of the bundle within the git repository. - Directory is optional and if not set defaults to ./manifests. - type: string - ref: - description: |- - Ref configures the git source to clone a specific branch, tag, or commit - from the specified repo. Ref is required, and exactly one field within Ref - is required. Setting more than one field or zero fields will result in an - error. - properties: - branch: - description: |- - Branch refers to the branch to checkout from the repository. - The Branch should contain the bundle manifests in the specified directory. - type: string - commit: - description: |- - Commit refers to the commit to checkout from the repository. - The Commit should contain the bundle manifests in the specified directory. - type: string - tag: - description: |- - Tag refers to the tag to checkout from the repository. - The Tag should contain the bundle manifests in the specified directory. - type: string - type: object - repository: - description: |- - Repository is a URL link to the git repository containing the bundle. - Repository is required and the URL should be parsable by a standard git tool. - type: string - required: - - ref - - repository - type: object - http: - description: ' HTTP is the remote location that backs the content - of this Bundle.' - properties: - auth: - description: Auth configures the authorization method if necessary. - properties: - insecureSkipVerify: - description: |- - InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name. If InsecureSkipVerify - is true, the clone operation will accept any certificate presented by the server and any host name in that - certificate. In this mode, TLS is susceptible to machine-in-the-middle attacks unless custom verification is - used. This should be used only for testing. - type: boolean - secret: - description: |- - Secret contains reference to the secret that has authorization information and is in the namespace that the provisioner is deployed. - The secret is expected to contain `data.username` and `data.password` for the username and password, respectively for http(s) scheme. - Refer to https://kubernetes.io/docs/concepts/configuration/secret/#basic-authentication-secret - For the ssh authorization of the GitSource, the secret is expected to contain `data.ssh-privatekey` and `data.ssh-knownhosts` for the ssh privatekey and the host entry in the known_hosts file respectively. - Refer to https://kubernetes.io/docs/concepts/configuration/secret/#ssh-authentication-secrets - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: object - url: - description: URL is where the bundle contents is. - type: string - required: - - url - type: object - image: - description: Image is the bundle image that backs the content - of this bundle. - properties: - pullSecret: - description: ImagePullSecretName contains the name of the - image pull secret in the namespace that the provisioner - is deployed. - type: string - ref: - description: Ref contains the reference to a container image - containing Bundle contents. - type: string - required: - - ref - type: object - type: - description: Type defines the kind of Bundle content being sourced. - type: string - required: - - type - type: object - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/tilt.md b/tilt.md index f9635d076..d1bd64cab 100644 --- a/tilt.md +++ b/tilt.md @@ -25,10 +25,10 @@ This ends up taking a fraction of the time, sometimes on the order of a few seco Follow Tilt's [instructions](https://docs.tilt.dev/install.html) for installation. -## Installing rukpak and catalogd +## Installing catalogd -operator-controller requires [rukpak](https://github.com/operator-framework/rukpak) and -[catalogd](https://github.com/operator-framework/catalogd). Please make sure they're installed, either normally or via +operator-controller requires +[catalogd](https://github.com/operator-framework/catalogd). Please make sure it's installed, either normally or via their own Tiltfiles, before proceeding. If you want to use Tilt, make sure you specify a unique `--port` flag to each `tilt up` invocation.