diff --git a/apis/installer/v1alpha1/ace_ocm_addons.go b/apis/installer/v1alpha1/ace_ocm_addons.go new file mode 100644 index 000000000..e97cb921f --- /dev/null +++ b/apis/installer/v1alpha1/ace_ocm_addons.go @@ -0,0 +1,61 @@ +/* +Copyright AppsCode Inc. and Contributors + +Licensed under the AppsCode Community License 1.0.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://github.com/appscode/licenses/raw/1.0.0/AppsCode-Community-1.0.0.md + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "kmodules.xyz/resource-metadata/apis/shared" +) + +const ( + ResourceKindAceOcmAddons = "AceOcmAddons" + ResourceAceOcmAddons = "aceocmaddons" + ResourceAceOcmAddonss = "aceocmaddonss" +) + +// AceOcmAddons defines the schama for AceOcmAddons Installer. + +// +genclient +// +genclient:skipVerbs=updateStatus +// +k8s:openapi-gen=true +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// +kubebuilder:object:root=true +// +kubebuilder:resource:path=aceocmaddonss,singular=aceocmaddons,categories={kubeops,appscode} +type AceOcmAddons struct { + metav1.TypeMeta `json:",inline,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec AceOcmAddonsSpec `json:"spec,omitempty"` +} + +// AceOcmAddonsSpec is the schema for AceOcmAddons Operator values file +type AceOcmAddonsSpec struct { + NameOverride string `json:"nameOverride"` + FullnameOverride string `json:"fullnameOverride"` + + shared.BootstrapPresets `json:",inline,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// AceOcmAddonsList is a list of AceOcmAddonss +type AceOcmAddonsList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + // Items is a list of AceOcmAddons CRD objects + Items []AceOcmAddons `json:"items,omitempty"` +} diff --git a/apis/installer/v1alpha1/register.go b/apis/installer/v1alpha1/register.go index 0e1e1a70e..5ea848fae 100644 --- a/apis/installer/v1alpha1/register.go +++ b/apis/installer/v1alpha1/register.go @@ -60,6 +60,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { &AceList{}, &AceInstaller{}, &AceInstallerList{}, + &AceOcmAddons{}, + &AceOcmAddonsList{}, &Billing{}, &BillingList{}, &BillingUi{}, diff --git a/apis/installer/v1alpha1/types_test.go b/apis/installer/v1alpha1/types_test.go index c1c873a1d..6903d452b 100644 --- a/apis/installer/v1alpha1/types_test.go +++ b/apis/installer/v1alpha1/types_test.go @@ -29,6 +29,7 @@ func TestDefaultValues(t *testing.T) { checker := sc.New(os.DirFS("../../.."), sc.TestCase{Obj: v1alpha1.AccountsUiSpec{}}, sc.TestCase{Obj: v1alpha1.AceInstallerSpec{}}, + sc.TestCase{Obj: v1alpha1.AceOcmAddonsSpec{}}, sc.TestCase{Obj: v1alpha1.AceSpec{}}, sc.TestCase{Obj: v1alpha1.BillingSpec{}}, sc.TestCase{Obj: v1alpha1.BillingUiSpec{}}, diff --git a/apis/installer/v1alpha1/zz_generated.deepcopy.go b/apis/installer/v1alpha1/zz_generated.deepcopy.go index ff24b664a..426117f08 100644 --- a/apis/installer/v1alpha1/zz_generated.deepcopy.go +++ b/apis/installer/v1alpha1/zz_generated.deepcopy.go @@ -618,6 +618,80 @@ func (in *AceNatsDns) DeepCopy() *AceNatsDns { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AceOcmAddons) DeepCopyInto(out *AceOcmAddons) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AceOcmAddons. +func (in *AceOcmAddons) DeepCopy() *AceOcmAddons { + if in == nil { + return nil + } + out := new(AceOcmAddons) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AceOcmAddons) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AceOcmAddonsList) DeepCopyInto(out *AceOcmAddonsList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]AceOcmAddons, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AceOcmAddonsList. +func (in *AceOcmAddonsList) DeepCopy() *AceOcmAddonsList { + if in == nil { + return nil + } + out := new(AceOcmAddonsList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AceOcmAddonsList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AceOcmAddonsSpec) DeepCopyInto(out *AceOcmAddonsSpec) { + *out = *in + in.BootstrapPresets.DeepCopyInto(&out.BootstrapPresets) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AceOcmAddonsSpec. +func (in *AceOcmAddonsSpec) DeepCopy() *AceOcmAddonsSpec { + if in == nil { + return nil + } + out := new(AceOcmAddonsSpec) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AceOptions) DeepCopyInto(out *AceOptions) { *out = *in diff --git a/charts/ace-ocm-addons/.helmignore b/charts/ace-ocm-addons/.helmignore new file mode 100644 index 000000000..0e8a0eb36 --- /dev/null +++ b/charts/ace-ocm-addons/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/ace-ocm-addons/Chart.yaml b/charts/ace-ocm-addons/Chart.yaml new file mode 100644 index 000000000..6f878a58e --- /dev/null +++ b/charts/ace-ocm-addons/Chart.yaml @@ -0,0 +1,13 @@ +apiVersion: v2 +name: ace-ocm-addons +description: A Helm chart for ACE OCM Addons +type: application +version: v2023.10.18 +appVersion: v2023.10.18 +home: https://github.com/bytebuilders +icon: https://cdn.appscode.com/images/products/kubeops/icons/android-icon-192x192.png +sources: +- https://github.com/bytebuilders/installer +maintainers: +- name: appscode + email: support@appscode.com diff --git a/charts/ace-ocm-addons/README.md b/charts/ace-ocm-addons/README.md new file mode 100644 index 000000000..d695218e5 --- /dev/null +++ b/charts/ace-ocm-addons/README.md @@ -0,0 +1,80 @@ +# ACE OCM Addons + +[ACE OCM Addons](https://github.com/bytebuilders/installer) - ACE OCM Addons + +## TL;DR; + +```bash +$ helm repo add appscode https://charts.appscode.com/stable +$ helm repo update +$ helm search repo appscode/ace-ocm-addons --version=v2023.10.18 +$ helm upgrade -i ace-ocm-addons appscode/ace-ocm-addons -n open-cluster-management --create-namespace --version=v2023.10.18 +``` + +## Introduction + +This chart deploys charts for ACE OCM Addons on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. + +## Prerequisites + +- Kubernetes 1.21+ + +## Installing the Chart + +To install/upgrade the chart with the release name `ace-ocm-addons`: + +```bash +$ helm upgrade -i ace-ocm-addons appscode/ace-ocm-addons -n open-cluster-management --create-namespace --version=v2023.10.18 +``` + +The command deploys charts for ACE OCM Addons on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. + +> **Tip**: List all releases using `helm list` + +## Uninstalling the Chart + +To uninstall the `ace-ocm-addons`: + +```bash +$ helm uninstall ace-ocm-addons -n open-cluster-management +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following table lists the configurable parameters of the `ace-ocm-addons` chart and their default values. + +| Parameter | Description | Default | +|-------------------------------------------|-------------------------|--------------------------------------------| +| nameOverride | | "" | +| fullnameOverride | | "" | +| offlineInstaller | | false | +| image.proxies.appscode | r.appscode.com | r.appscode.com | +| image.proxies.dockerHub | company/bin:tag | "" | +| image.proxies.dockerLibrary | alpine, nginx etc. | "" | +| image.proxies.ghcr | ghcr.io/company/bin:tag | ghcr.io | +| image.proxies.quay | quay.io/company/bin:tag | quay.io | +| image.proxies.kubernetes | registry.k8s.io/bin:tag | registry.k8s.io | +| registry.credentials | | {} | +| helm.repositories.appscode-charts-oci.url | | oci://ghcr.io/appscode-charts | +| helm.releases.kube-ui-server.enabled | | true | +| helm.releases.kube-ui-server.version | | "v2023.10.1" | +| helm.releases.license-proxyserver.enabled | | true | +| helm.releases.license-proxyserver.version | | "v2023.10.18" | +| helm.releases.opscenter-features.enabled | | true | +| helm.releases.opscenter-features.version | | "v2023.10.18" | + + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example: + +```bash +$ helm upgrade -i ace-ocm-addons appscode/ace-ocm-addons -n open-cluster-management --create-namespace --version=v2023.10.18 --set image.proxies.appscode=r.appscode.com +``` + +Alternatively, a YAML file that specifies the values for the parameters can be provided while +installing the chart. For example: + +```bash +$ helm upgrade -i ace-ocm-addons appscode/ace-ocm-addons -n open-cluster-management --create-namespace --version=v2023.10.18 --values values.yaml +``` diff --git a/charts/ace-ocm-addons/doc.yaml b/charts/ace-ocm-addons/doc.yaml new file mode 100644 index 000000000..5df1a28c5 --- /dev/null +++ b/charts/ace-ocm-addons/doc.yaml @@ -0,0 +1,18 @@ +project: + name: ACE OCM Addons + shortName: ACE OCM Addons + url: https://github.com/bytebuilders/installer + description: ACE OCM Addons + app: charts for ACE OCM Addons +repository: + url: https://charts.appscode.com/stable + name: appscode +chart: + name: ace-ocm-addons + values: -- generate from values file -- + valuesExample: -- generate from values file -- +prerequisites: +- Kubernetes 1.21+ +release: + name: ace-ocm-addons + namespace: open-cluster-management diff --git a/charts/ace-ocm-addons/templates/NOTES.txt b/charts/ace-ocm-addons/templates/NOTES.txt new file mode 100644 index 000000000..75c2afad2 --- /dev/null +++ b/charts/ace-ocm-addons/templates/NOTES.txt @@ -0,0 +1,3 @@ +To verify that ACE OCM addons are setup correctly, run: + +kubectl get placement,manifestworkreplicaset -n open-cluster-management-addon diff --git a/charts/ace-ocm-addons/templates/_helpers.tpl b/charts/ace-ocm-addons/templates/_helpers.tpl new file mode 100644 index 000000000..b1ace4087 --- /dev/null +++ b/charts/ace-ocm-addons/templates/_helpers.tpl @@ -0,0 +1,116 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "ace-ocm-addons.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "ace-ocm-addons.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "ace-ocm-addons.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "ace-ocm-addons.labels" -}} +helm.sh/chart: {{ include "ace-ocm-addons.chart" . }} +{{ include "ace-ocm-addons.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "ace-ocm-addons.selectorLabels" -}} +app.kubernetes.io/name: {{ include "ace-ocm-addons.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "ace-ocm-addons.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "ace-ocm-addons.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} + +{{/* +Registry Proxy Templates +*/}} +{{- define "registry.dockerHub" -}} +{{ .Values.image.proxies.dockerHub }} +{{- end }} + +{{- define "registry.dockerLibrary" -}} +{{ default .Values.image.proxies.dockerHub .Values.image.proxies.dockerLibrary }} +{{- end }} + +{{- define "registry.ghcr" -}} +{{ .Values.image.proxies.ghcr }} +{{- end }} + +{{- define "registry.quay" -}} +{{ .Values.image.proxies.quay }} +{{- end }} + +{{- define "registry.kubernetes" -}} +{{ .Values.image.proxies.kubernetes }} +{{- end }} + +{{- define "registry.appscode" -}} +{{ .Values.image.proxies.appscode }} +{{- end }} + +{{/* +Image Templates +*/}} +{{- define "image.dockerHub" -}} +{{ list .Values.image.proxies.dockerHub ._repo | compact | join "/" }} +{{- end }} + +{{- define "image.dockerLibrary" -}} +{{ list (default .Values.image.proxies.dockerHub .Values.image.proxies.dockerLibrary) ._repo | compact | join "/" }} +{{- end }} + +{{- define "image.ghcr" -}} +{{ list .Values.image.proxies.ghcr ._repo | compact | join "/" }} +{{- end }} + +{{- define "image.quay" -}} +{{ list .Values.image.proxies.quay ._repo | compact | join "/" }} +{{- end }} + +{{- define "image.kubernetes" -}} +{{ list .Values.image.proxies.kubernetes ._repo | compact | join "/" }} +{{- end }} + +{{- define "image.appscode" -}} +{{ list .Values.image.proxies.appscode ._repo | compact | join "/" }} +{{- end }} diff --git a/charts/ace-ocm-addons/templates/clustersetbinding.yaml b/charts/ace-ocm-addons/templates/clustersetbinding.yaml new file mode 100644 index 000000000..195f5b328 --- /dev/null +++ b/charts/ace-ocm-addons/templates/clustersetbinding.yaml @@ -0,0 +1,7 @@ +apiVersion: cluster.open-cluster-management.io/v1beta2 +kind: ManagedClusterSetBinding +metadata: + name: global + namespace: open-cluster-management-addon +spec: + clusterSet: global diff --git a/charts/ace-ocm-addons/templates/manifestrelicaset.yaml b/charts/ace-ocm-addons/templates/manifestrelicaset.yaml new file mode 100644 index 000000000..59763f393 --- /dev/null +++ b/charts/ace-ocm-addons/templates/manifestrelicaset.yaml @@ -0,0 +1,220 @@ +apiVersion: work.open-cluster-management.io/v1alpha1 +kind: ManifestWorkReplicaSet +metadata: + name: opscenter-core-addons + namespace: open-cluster-management-addon +spec: + placementRefs: + - name: global + manifestWorkTemplate: + # deleteOption: + # propagationPolicy: SelectivelyOrphan + # selectivelyOrphans: + # orphaningRules: + # - group: '' + # name: ocm-ns + # namespace: '' + # resource: Namespace + # manifestConfigs: + # - feedbackRules: + # - jsonPaths: + # - name: lastScheduleTime + # path: .status.lastScheduleTime + # - name: lastSuccessfulTime + # path: .status.lastSuccessfulTime + # type: JSONPaths + # resourceIdentifier: + # group: batch + # name: sync-cronjob + # namespace: ocm-ns + # resource: cronjobs + workload: + manifests: + - kind: Namespace + apiVersion: v1 + metadata: + name: kubeops + + {{- $helmrepos := dict + "bootstrap" (index .Values.helm "repositories" "appscode-charts-oci") + }} + {{ range $name, $cfg := $helmrepos }} + - apiVersion: source.toolkit.fluxcd.io/v1beta2 + kind: HelmRepository + metadata: + name: {{ $name }} + namespace: kubeops + labels: + kubernetes.io/metadata.name: {{ $name }} + spec: + {{- with $cfg.url }} + url: {{ . }} + {{- end }} + interval: {{ default "30m" $cfg.interval }} + timeout: {{ default "1m" $cfg.timeout }} + + {{- if hasPrefix "oci://" $cfg.url }} + type: oci + {{- end }} + + {{- with $cfg.provider }} + provider: {{ . }} + {{- end }} + + {{- if $.Values.registry.credentials }} + secretRef: + name: {{ include "ace-ocm-addons.fullname" $ }}-helmcred + {{- end }} + {{- end }} + + {{- if .Values.registry.credentials }} + - apiVersion: v1 + kind: Secret + metadata: + name: {{ include "ace-ocm-addons.fullname" . }}-helmcred + namespace: kubeops + stringData: {{ .Values.registry.credentials | toJson }} + {{- end }} + + {{- with (index .Values "helm" "releases" "opscenter-features") }} + {{- if .enabled }} + + {{ $overrides := dict "image" $.Values.image "registry" $.Values.registry "helm" dict }} + + {{ $helmrepos := dig "repositories" dict $.Values.helm | deepCopy }} + {{ $_ := set $overrides.helm "repositories" $helmrepos }} + + {{ $vals := dig "values" dict . }} + {{ $vals = mergeOverwrite $vals $overrides }} + + - apiVersion: helm.toolkit.fluxcd.io/v2beta1 + kind: HelmRelease + metadata: + name: opscenter-features + namespace: kubeops + labels: + ace.appscode.com/feature: opscenter-features + spec: + interval: 5m + timeout: 30m + releaseName: opscenter-features + targetNamespace: kubeops + storageNamespace: kubeops + install: + createNamespace: true + # crds: CreateReplace + remediation: + retries: -1 + upgrade: + crds: CreateReplace + remediation: + retries: -1 + chart: + spec: + chart: opscenter-features + version: {{ .version | quote }} + sourceRef: + kind: HelmRepository + name: bootstrap + namespace: kubeops + {{- with $vals }} + {{- dict "values" . | toYaml | nindent 12 }} + {{- end }} + {{- end }} + {{- end }} + + {{- with (index .Values "helm" "releases" "license-proxyserver") }} + {{- if .enabled }} + + {{ $overrides := dict "registryFQDN" (include "registry.ghcr" $) }} + + {{ $vals := dig "values" dict . }} + {{ $vals = mergeOverwrite $vals $overrides }} + + - apiVersion: helm.toolkit.fluxcd.io/v2beta1 + kind: HelmRelease + metadata: + name: license-proxyserver + namespace: kubeops + labels: + ace.appscode.com/feature: license-proxyserver + spec: + interval: 5m + timeout: 30m + releaseName: license-proxyserver + targetNamespace: kubeops + storageNamespace: kubeops + install: + createNamespace: true + # crds: CreateReplace + remediation: + retries: -1 + upgrade: + crds: CreateReplace + remediation: + retries: -1 + dependsOn: + - name: opscenter-features + namespace: kubeops + chart: + spec: + chart: license-proxyserver + version: {{ .version | quote }} + interval: 60m + sourceRef: + kind: HelmRepository + name: appscode-charts-oci + namespace: kubeops + {{- with $vals }} + {{- dict "values" . | toYaml | nindent 12 }} + {{- end }} + {{- end }} + {{- end }} + + {{- with (index .Values "helm" "releases" "kube-ui-server") }} + {{- if .enabled }} + + {{ $overrides := dict "registryFQDN" (include "registry.ghcr" $) }} + + {{ $vals := dig "values" dict . }} + {{ $vals = mergeOverwrite $vals $overrides }} + + - apiVersion: helm.toolkit.fluxcd.io/v2beta1 + kind: HelmRelease + metadata: + name: kube-ui-server + namespace: kubeops + labels: + ace.appscode.com/feature: kube-ui-server + spec: + interval: 5m + timeout: 30m + releaseName: kube-ui-server + targetNamespace: kubeops + storageNamespace: kubeops + install: + createNamespace: true + # crds: CreateReplace + remediation: + retries: -1 + upgrade: + crds: CreateReplace + remediation: + retries: -1 + dependsOn: + - name: opscenter-features + namespace: kubeops + chart: + spec: + chart: kube-ui-server + version: {{ .version | quote }} + interval: 60m + sourceRef: + kind: HelmRepository + name: appscode-charts-oci + namespace: kubeops + {{- with $vals }} + {{- dict "values" . | toYaml | nindent 12 }} + {{- end }} + {{- end }} + {{- end }} diff --git a/charts/ace-ocm-addons/templates/namespace.yaml b/charts/ace-ocm-addons/templates/namespace.yaml new file mode 100644 index 000000000..27f6607cb --- /dev/null +++ b/charts/ace-ocm-addons/templates/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: open-cluster-management-addon diff --git a/charts/ace-ocm-addons/templates/placement.yaml b/charts/ace-ocm-addons/templates/placement.yaml new file mode 100644 index 000000000..22d208b9e --- /dev/null +++ b/charts/ace-ocm-addons/templates/placement.yaml @@ -0,0 +1,8 @@ +apiVersion: cluster.open-cluster-management.io/v1beta1 +kind: Placement +metadata: + name: global + namespace: open-cluster-management-addon +spec: + clusterSets: + - global diff --git a/charts/ace-ocm-addons/values.openapiv3_schema.yaml b/charts/ace-ocm-addons/values.openapiv3_schema.yaml new file mode 100644 index 000000000..13ea047af --- /dev/null +++ b/charts/ace-ocm-addons/values.openapiv3_schema.yaml @@ -0,0 +1,89 @@ +properties: + fullnameOverride: + type: string + helm: + properties: + releases: + additionalProperties: + properties: + enabled: + type: boolean + values: + type: object + x-kubernetes-preserve-unknown-fields: true + version: + type: string + required: + - enabled + - version + type: object + type: object + repositories: + additionalProperties: + properties: + interval: + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ + type: string + provider: + default: generic + enum: + - generic + - aws + - azure + - gcp + type: string + secretName: + type: string + timeout: + type: string + type: + enum: + - default + - oci + type: string + url: + type: string + required: + - url + type: object + type: object + required: + - releases + - repositories + type: object + image: + properties: + proxies: + properties: + appscode: + type: string + dockerHub: + type: string + dockerLibrary: + type: string + ghcr: + type: string + kubernetes: + type: string + quay: + type: string + type: object + type: object + nameOverride: + type: string + offlineInstaller: + type: boolean + registry: + properties: + credentials: + additionalProperties: + type: string + type: object + type: object +required: +- fullnameOverride +- helm +- image +- nameOverride +- registry +type: object diff --git a/charts/ace-ocm-addons/values.yaml b/charts/ace-ocm-addons/values.yaml new file mode 100644 index 000000000..dfe3aaa49 --- /dev/null +++ b/charts/ace-ocm-addons/values.yaml @@ -0,0 +1,45 @@ +# Default values for ace-ocm-addons. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +nameOverride: "" +fullnameOverride: "" + +offlineInstaller: false + +image: + proxies: + # r.appscode.com + appscode: r.appscode.com + # company/bin:tag + dockerHub: "" + # alpine, nginx etc. + dockerLibrary: "" + # ghcr.io/company/bin:tag + ghcr: ghcr.io + # quay.io/company/bin:tag + quay: quay.io + # registry.k8s.io/bin:tag + kubernetes: registry.k8s.io + +registry: + credentials: {} + # username: "abc" + # password: "xyz" + +helm: + repositories: + # oci://harbor.appscode.ninja/ac/appscode-charts + appscode-charts-oci: + url: oci://ghcr.io/appscode-charts + + releases: + kube-ui-server: + enabled: true + version: "v2023.10.1" + license-proxyserver: + enabled: true + version: "v2023.10.18" + opscenter-features: + enabled: true + version: "v2023.10.18"