Skip to content

Conversation

@pedjak
Copy link
Contributor

@pedjak pedjak commented Mar 12, 2020

@openshift-ci-robot openshift-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Mar 12, 2020
@pedjak
Copy link
Contributor Author

pedjak commented Mar 12, 2020

The default chart repository is https://redhat-developer.github.io/redhat-helm-charts

The following usecases require ability to configure the chart repo url:

  • disconnected installs
  • users wants to use their own repos

Motivation: openshift/enhancements#175
/cc @openshift/api-reviewers @benjaminapetersen

@openshift-ci-robot openshift-ci-robot requested review from a team and benjaminapetersen March 12, 2020 18:18
Copy link
Contributor

@soltysh soltysh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I miss enhancement doc describing the purpose of this.

@pedjak
Copy link
Contributor Author

pedjak commented Mar 16, 2020

@soltysh the motivation is openshift/enhancements#175

@soltysh
Copy link
Contributor

soltysh commented Mar 16, 2020

@soltysh the motivation is openshift/enhancements#175

Enhancement freeze was last Friday since this is not merged the API can't merge either. Also look at my other comments.
/hold

@openshift-ci-robot openshift-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 16, 2020
@deads2k
Copy link
Contributor

deads2k commented Mar 16, 2020

This approach appears to be based on a design that is console specific. I would expect the operator type itself to be extended (here probably: design appears to be console specific. You could start by moving here https://github.com/openshift/api/blob/master/operator/v1/types_console.go) instead of adjusting a top level configuration item. This seems to be a detail present today for extension that we may want an option to change in the future.

Doesn't OLM have a comparable configuration option? Can OLM look at helm?

The other thing that comes to mind is that this has value for an OLM managed console, which I think we want to someday have. Instead of payload only.

@benjaminapetersen
Copy link
Contributor

All good points. It seems the final place for this config is not entirely known. This field on console config/operator may be later deprecated if helm was instead managed by OLM.

@sbose78
Copy link

sbose78 commented Mar 16, 2020

Hi!

Enhancement freeze was last Friday since this is not merged the API can't merge either.

cc @derekwaynecarr @benjaminapetersen @spadgett

Significant parts of the enhancement are already in Console today. This bit effectively allows customers/partners/admins to specify custom/disconnected helm repositories in OpenShift. This is an additional feature as part of a larger set of features which are already in Console, which we wish to get in well before feature freeze so that Console UI changes could be put in before feature freeze.

We've presented the enhancement to Console stakeholders in early January when we first started designing and developing the "Helm in Console" support. I understand there's an enhancement lifecycle which hasn't been taken care of, yet :) We've tried to do our best to socialize the changes as much as possible.

@sbose78
Copy link

sbose78 commented Mar 16, 2020

Hi @deads2k !

This field on console config/operator may be later deprecated if helm was instead managed by OLM.

When Console is managed by OLM, we would still have a Console CRD, right? I would expect these attributes to be present in the Console API there as well, to begin with.

Re: Having a separate resource to manage Helm

This is a really good discussion to have!
I'm not aware how always-on components would be lifecycle'd/designed when the management of such always-on components are done by OLM. I could definitely contribute a design if needed.

For the time being, I would envision the entire thing ( console and helm config ) to move as one thing to OLM. After that, if it makes sense, we can manage Helm components using a different resource.

Doesn't OLM have a comparable configuration option? Can OLM look at helm?

David, could you please elaborate on this, please? I didn't quite get you.

@pedjak
Copy link
Contributor Author

pedjak commented Mar 17, 2020

@deads2k @soltysh - copied here the comment made on the enchancement #175, hoping that the motivation is much clearer. Looking forward to your suggestions.

Configuring Helm repository location can be modelled similar to OperatorSource. The resource needs to contain the following field:

url: http://my.chart-repo.org/stable

# optional and only needed for UI purposes
displayName: myChartRepo

# optional and only needed for UI purposes
description: my private chart repo

# set to true if need to be disabled temporarly
disabled: true

The resource could be standalone, a part of Console config, or a part of Console operator config

  • If standalone, its could be named as HelmChartRepository and be placed in (cluster-wide config)[https://github.com/openshift/api/tree/master/config/v1] or console operator namespace. The console operator would watch for changes on instances and reconfigure the console deployment.
  • If a part of existing resource, it should be possible to specify a list of chart repositories, so that future use cases (e.g. ODC-2994) could be implemented.

The console backend already implements a few helm endpoints (including the chart proxy), but the future might require to extract them into a separate service (e.g. to make openshift more modular). Hence, it would be good to define the configuration as the standalone resource (possibly cluster-wide or in a dedicated namespace, e.g. openshift-helm) detaching API from the implementation.

@sbose78
Copy link

sbose78 commented Mar 18, 2020

@pedjak Nice summary!

@sbose78
Copy link

sbose78 commented Mar 27, 2020

Minutes of the meeting

with @derekwaynecarr @spadgett @benjaminapetersen

  • We'll be adding a cluster-scoped HelmRepository CRD, to be reconciled by the console-operator.
  • In future, if a namespace-scoped HelmRepository CRD is needed, we'll consider it, based on use-cases.
  • In future, if a cluster-scoped HelmConfig CRD is needed, we'll consider it, based on use-cases.

Action items:

  • @pedjak to modify this PR to only have the HelmRepository API.

The Helm repository could be configured by going to the Cluster Settings -> Global Configuration page:

**
image
**

@pedjak pedjak force-pushed the helm-console-config-type branch from 1cc1962 to f3ab4c8 Compare March 30, 2020 18:00
@pedjak
Copy link
Contributor Author

pedjak commented Mar 30, 2020

I have updated the PR, please rereview it.

@sbose78
Copy link

sbose78 commented Mar 30, 2020

Looks okay to me @pedjak . @benjaminapetersen @spadgett Could you please review?

@pedjak pedjak force-pushed the helm-console-config-type branch from f3ab4c8 to 7a88443 Compare April 1, 2020 12:52
@pedjak pedjak changed the title Added ability to configure Helm chart repository accessible from console Added ability to configure Helm chart repository accessible within cluster Apr 1, 2020
@benjaminapetersen
Copy link
Contributor

I don't know if this has been clarified, if there is a problem with the helm config, should the console-operator go degraded? I would assume so since it will be the operator managing this/these resources (these, as I understand there may be several instances).

If there are several helm configs provided:

  • helmA - fine
  • helmB - fine
  • helmC - bad for whatever reason

Then console-operator should go degraded, with some kind of HelmSyncErr reason, but it should also write the error on the offending helmC.Status or hemC.Status.Conditions[].

@deads2k
Copy link
Contributor

deads2k commented Jul 24, 2020

I forgot the validation. lgtm otherwise, so I'll approve after validation. You should get someone else on the team to review and lgtm.

@akashshinde
Copy link

/lgtm
fyi: this API is being consumed in PR openshift/console#5933

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Jul 27, 2020
@openshift-ci-robot openshift-ci-robot removed the lgtm Indicates that a PR is ready to be merged. label Jul 27, 2020
@sbose78
Copy link

sbose78 commented Jul 27, 2020

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Jul 27, 2020
@deads2k
Copy link
Contributor

deads2k commented Jul 28, 2020

/lgtm

@deads2k
Copy link
Contributor

deads2k commented Jul 28, 2020

weird. I wonder if someone changed the bot

/approve

@openshift-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: akashshinde, deads2k, pedjak, sbose78

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 28, 2020
@sbose78
Copy link

sbose78 commented Jul 28, 2020

Is the hold by @soltysh blocking the merge?
Let me try..

/hold remove

@sbose78
Copy link

sbose78 commented Jul 28, 2020

/hold cancel

@openshift-ci-robot openshift-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 28, 2020
@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-merge-robot openshift-merge-robot merged commit 811027b into openshift:master Jul 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.