Repository navigation
feat(olm): publish-ready metadata for OperatorHub (1.3.5) - #114
Merged
Merged
Conversation
The CSV was still the operator-sdk scaffold: placeholder link, scaffold maintainer, no category, no long description, and alm-examples with `spec: null` because the samples carried the TODO stub. - displayName, three-section description (what it does / features / prerequisites) and the short annotation the hub shows in listings. - links: docs pinned to the release tag, source code, blog post. The scaffold URL https://k8s-overcommit.domain is gone. - maintainers: real name, team alias as contact. provider: InditexTech with its URL, same shape as redkey-operator. - categories: OpenShift Optional; containerImage, repository, support and extra keywords added. - samples get valid specs, so alm-examples renders usable objects. - icon re-cut to a 700x700 square (it was 750x1000, the hub shows it in a square slot). Same artwork, only the viewBox changes. - cert-manager declared in bundle/metadata/dependencies.yaml as two olm.gvk entries (Certificate, Issuer). Not olm.package on purpose: any provider satisfies it, so clusters already running cert-manager outside OLM do not get a second one installed on top. Signed-off-by: Enrique Andrés Villar <enriqueavi@inditex.com>
Bump VERSION, chart appVersion, chart image tag and catalog source to 1.3.5 and regenerate the bundle, so the release workflow's four-way version check stays consistent. The bundle now carries the metadata from the previous commit plus the x/net bump from #113. Signed-off-by: Enrique Andrés Villar <enriqueavi@inditex.com>
SonarCloud flags the `Consistency` rule on `{{...}}` and `{{ ...}}` in the
chart templates. Whitespace inside a template directive is ignored by the
Go template parser, so the rendered output is byte-identical: verified with
`helm template` before and after the change.
The generated copy under `deploy/chart/1.3.5/` is regenerated with
`make bundle`.
Signed-off-by: Enrique Andrés Villar <enriqueavi@inditex.com>
Replaces the placeholder with the infrastructure team address that will receive OperatorHub notifications. Signed-off-by: Enrique Andrés Villar <enriqueavi@inditex.com>
OCP 4.x ships Kubernetes 1.(x+13), so OCP 4.15 is the first release with Kubernetes 1.28, where `matchConditions` is enabled by default in the admissionregistration API. The generated MutatingWebhookConfiguration uses that field to honour `spec.excludedNamespaces`; on an older API server the field is pruned and the webhook would apply to every namespace, including kube-system and openshift-*. `minKubeVersion` is raised to 1.28.0 for the same reason: it is the claim OLM enforces before installing on a plain Kubernetes cluster. `operator-sdk generate bundle` does not carry the annotation from the CSV into `metadata/annotations.yaml` nor into `bundle.Dockerfile`, so `make bundle` injects it (idempotently) after generation. Signed-off-by: Enrique Andrés Villar <enriqueavi@inditex.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What and why
The bundle metadata was still the operator-sdk scaffold, so the operator is not submittable to OperatorHub: placeholder link, scaffold maintainer name, no category, a one-line description and
alm-exampleswithspec: null. This PR fixes the metadata and prepares the 1.3.5 release that will be submitted.Nothing changes at runtime: no Go code, no RBAC, no CRDs, no webhooks.
Changes
config/manifests/bases/...clusterserviceversion.yamlconfig/manifests/patches/icon.yamlconfig/samples/overcommit_v1_overcommit*.yaml# TODOstub)bundle/metadata/dependencies.yamlMakefile,chart/Chart.yaml,chart/values.yaml,deploy/catalog_source.yamlbundle/,deploy/olm/1.3.5/,deploy/chart/1.3.5/make bundleDetails:
1.3.5tag, the repository and the blog post. A bundle is immutable, so the docs link must not followmain.Enrique Andrés Villarwith the team alias as contact;provider:InditexTech+ URL, the same shaperedkey-operatoruses."spec": nullobjects that the console rendered as empty examples. They now carry a validOvercommitLabeland a validOvercommitClass(the CRD requirescpuOvercommit,memoryOvercommitandexcludedNamespaces).cert-manager: declared as a bundle dependency
cert-manager is mandatory — without it the per-class
Certificate/Issuernever become ready and the generated mutating webhooks have no serving certificate.Two things were wrong before:
customresourcedefinitions.required, which makes OLM block the install until those CRDs exist, but nothing pulls cert-manager in. On a clean cluster the CSV staysPendingforever, and the hub's installation test (kind + subscription) never sees a pod.bundle/metadata/dependencies.yaml, so OLM had no way to resolve it.This PR adds the dependency as
olm.gvk:olm.gvkrather thanolm.packageon purpose: any provider of the API satisfies it. Witholm.package: cert-manager, a cluster that already runs cert-manager from Helm or plain manifests would get a second cert-manager installed by OLM, and the two controllers would fight over the same webhooks. Witholm.gvk, OLM installs cert-manager from the catalog only when nothing provides the API.The
requiredblock is removed because the dependency expresses the same thing and does not deadlock the install; the prerequisite is documented in the CSV description.Version bump
release.ymlcomparestag_nameagainstVERSION,chart.appVersion,chart.values.tagand the catalog image tag, so all four move to 1.3.5 together, plusconfig/manager/kustomization.yamland thecontainerImageannotation. 1.3.5 (not 1.3.4) because the bundle image for 1.3.4 is already published and re-pointing that tag breaks immutability.Verification
Bundle CSV checked by hand:
version: 1.3.5,displayName: K8s Overcommit Operator, deployment imageghcr.io/inditextech/k8s-overcommit-operator:1.3.5, noreplaces/skipRange(first version of the package),alm-examplesfree ofnullspecs, iconimage/svg+xml700x700.Next
Once this is merged: tag
1.3.5+ release to publish the operator, bundle and catalog images, then the submission PR tok8s-operatorhub/community-operatorswith the bundle contents.