convoy docs
Search

HelmRegistry

A classic HTTP Helm chart repository and the credentials to read it.

A HelmRegistry is an HTTP Helm repository that serves index.yaml. Each Release selects the chart and the version in spec.source.helmRegistry.chart. For charts in an OCI registry, use OCIRegistry.

API groupsource.convoy.kumodo.io/v1alpha1
ScopeNamespaced
Subresources/status
ConditionsReady

Example#

sources/helmregistry-auth-basic.yaml
# HelmRegistry with basic auth (username inline, password from a Secret). For a
# token instead, use `type: token` with `token.tokenRef` — it is sent as a Bearer
# header.
apiVersion: v1
kind: Secret
metadata:
  name: helm-basic
  namespace: default
type: Opaque
stringData:
  password: replace_me
---
apiVersion: source.convoy.kumodo.io/v1alpha1
kind: HelmRegistry
metadata:
  name: private-charts
  namespace: default
spec:
  url: https://charts.example.com
  auth:
    type: basic
    basic:
      username: deploy-bot
      passwordRef:
        name: helm-basic
        key: password
  interval: 1m0s
  minSyncInterval: 30s

Verification and fetch#

The controller downloads and parses index.yaml. A Release downloads index.yaml again for each fetch. convoy does not cache the index.

The chart version must match an index entry exactly. A leading v is ignored on both sides. Version ranges do not work.

Auth types#

auth.typeImplementedFields
noneYes
basicYesbasic.username and basic.passwordRef
tokenYestoken.tokenRef. convoy sends Authorization: Bearer <token>.
oidc, cloudIdentityNoReady=False, reason Unsupported.

TLS#

Only tls.insecureSkipVerify works. tls.caPublicCertRef is accepted, but not used.

Fields#

FieldTypeDescription
specHelmRegistrySpecHelmRegistrySpec defines the desired state of HelmRegistry
spec.auth requiredHelmRegistryAuthSpecAuth is the authentication method used to access the Helm registry.
spec.auth.basicBasicAuthSpecBasic is the basic authentication used to access the Helm registry.
spec.auth.basic.passwordRef requiredSecretKeySelectorPasswordRef is the name and the key of the Secret containing the password.
spec.auth.basic.username requiredstringUsername is the username used for authentication.
spec.auth.cloudIdentityCloudIdentitySpecCloudIdentity is the cloud identity configuration used to access the Helm registry.
spec.auth.cloudIdentity.provider requiredstringProvider is the cloud provider.
  • aws is the cloud provider AWS.
  • azure is the cloud provider Azure.
  • gcp is the cloud provider GCP.
spec.auth.oidcOIDAuthSpecOIDC is the OIDC configuration used to access the Helm registry.
spec.auth.oidc.audiencestringAudience is the OIDC audience.
spec.auth.oidc.clientAuth requiredOIDCClientAuthSpecClientAuth is the OIDC authentication method used for authentication.
spec.auth.oidc.clientAuth.clientSecretOIDCAuthClientSecretSpecClientSecret is the reference to the Secret and the key of the Secret containing the OIDC client secret.
spec.auth.oidc.clientAuth.clientSecret.clientSecretRef requiredSecretKeySelectorClientSecretRef is the name and the key of the Secret containing the OIDC client secret.
spec.auth.oidc.clientAuth.privateKeyJWTOIDCAuthPrivateKeyJWTSpecPrivateKeyJWT is the reference to the Secret and the key of the Secret containing the OIDC private key JWT.
spec.auth.oidc.clientAuth.privateKeyJWT.privateKeyRef requiredSecretKeySelectorPrivateKeyRef is the name and the key of the Secret containing the OIDC private key JWT.
spec.auth.oidc.clientAuth.tlsClientAuthOIDCAuthTLSClientAuthSpecTLSClientAuth is the reference to the Secrets and the keys of the Secret(s) containing the OIDC client certificate and key.
spec.auth.oidc.clientAuth.tlsClientAuth.certRef requiredSecretKeySelectorCertRef is the name and the key of the Secret containing the OIDC client certificate.
spec.auth.oidc.clientAuth.tlsClientAuth.keyRef requiredSecretKeySelectorKeyRef is the name and the key of the Secret containing the OIDC client certificate key.
spec.auth.oidc.clientAuth.type requiredstringType is the OIDC authentication method type used for authentication.
  • clientSecret is the OIDC authentication method using a client secret.
  • privateKeyJWT is the OIDC authentication method using a private key JWT.
  • tlsClientAuth is the OIDC authentication method using TLS client authentication.
spec.auth.oidc.clientID requiredstringClientID is the OIDC client ID.
spec.auth.oidc.issuerURL requiredstringIssuerURL is the URL of the OIDC issuer.
spec.auth.oidc.scopes[]stringlist type: atomicScopes are the OIDC scopes.
spec.auth.oidc.tlsTLSSpecTLS is the issuer TLS configuration.
spec.auth.oidc.tls.caPublicCertRef requiredConfigMapKeySelectorCAPublicCertRef is the name and the key of the ConfigMap containing the CA public certificate. The CA certificate is used to verify the IdP server's certificate.
spec.auth.oidc.tls.insecureSkipVerify requiredbooleanInsecureSkipVerify is a flag to skip the certificate verification.
spec.auth.tokenTokenAuthSpecToken is the token used to access the Helm registry.
spec.auth.token.tokenRef requiredSecretKeySelectorTokenRef is the name and the key of the Secret containing the token.
spec.auth.type requiredstringType is the authentication method used to access the Helm registry.
  • basic is the authentication method using basic authentication.
  • cloudIdentity is the authentication method using a cloud identity.
  • none is the authentication method using no authentication.
  • oidc is the authentication method using OIDC.
  • token is the authentication method using a token.
spec.interval required accepted, not usedDurationInterval is the poll interval for ref resolution and content fetching.
spec.minSyncInterval required accepted, not usedDurationMinSyncInterval is the minimum interval between syncs. Used to rate limit syncs.
spec.tlsTLSSpecTLS is the TLS configuration used to verify the Helm registry.
spec.tls.caPublicCertRef required accepted, not usedConfigMapKeySelectorCAPublicCertRef is the name and the key of the ConfigMap containing the CA public certificate. The CA certificate is used to verify the IdP server's certificate.
spec.tls.insecureSkipVerify requiredbooleanInsecureSkipVerify is a flag to skip the certificate verification.
spec.url requiredstringURL is the URL of the Helm registry.
FieldTypeDescription
statusHelmRegistryStatusHelmRegistryStatus reflects the observed state of HelmRegistry
status.conditions[]Conditionlist type: map, keys: typeConditions is the list of conditions related to the HelmRegistry.
status.lastSuccessfulProbeAtTimeLastSuccessfulProbeAt is the last time source was successfully probe.
status.observedGenerationintegerObservedGeneration is the last generation that was observed by the controller.
status.releaseCountintegerReleaseCount is the number of Release referencing the HelmRegistry.
status.webhooks[]WebhookStatuslist type: map, keys: nameWebhooks is the list of statuses of webhooks that are configured for the HelmRegistry.
status.webhooks[].filteredCountintegerFilteredCount is the number of times the webhook was filtered.
status.webhooks[].lastReceivedTimeLastReceived is the last time the webhook was received.
status.webhooks[].lastRejectionLastRejectionStatusLastRejection is the last time, reason and message the webhook was rejected.
status.webhooks[].lastRejection.messagestringMessage is the message of the webhook rejection.
status.webhooks[].lastRejection.reasonstringReason is the reason the webhook was rejected.
status.webhooks[].lastRejection.rejectedAtTimeRejectedAt is the time the webhook was rejected.
status.webhooks[].lastTriggeredTimeLastTriggered is the last time the webhook was triggered.
status.webhooks[].name requiredstringName is the name of the webhook.
status.webhooks[].receivedCountintegerReceivedCount is the number of times the webhook was received.
status.webhooks[].rejectedCountintegerRejectedCount is the number of times the webhook was rejected.
status.webhooks[].triggersCountintegerTriggersCount is the number of times the webhook was triggered.
status.webhooks[].url requiredstringURL is the URL of the webhook.

Conditions#

Ready · written by convoy-controller-manager

ReasonStatusMeaning
VerifiedTrueconvoy read the repository index with the configured credentials.
UnsupportedFalseThe auth type is not implemented. convoy does not retry with backoff. The periodic resync checks the source again.
VerifyFailedFalseconvoy could not read the repository index. convoy retries.

In the code

convoy v0.9.0