diff options
Diffstat (limited to 'app/models/clusters/applications/knative.rb')
-rw-r--r-- | app/models/clusters/applications/knative.rb | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/app/models/clusters/applications/knative.rb b/app/models/clusters/applications/knative.rb new file mode 100644 index 00000000000..8adb99fcb04 --- /dev/null +++ b/app/models/clusters/applications/knative.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +module Clusters + module Applications + class Knative < ActiveRecord::Base + VERSION = '0.1.3'.freeze + REPOSITORY = 'https://storage.googleapis.com/triggermesh-charts'.freeze + + # This is required for helm version <= 2.10.x in order to support + # Setting up CRDs + ISTIO_CRDS = 'https://storage.googleapis.com/triggermesh-charts/istio-crds.yaml'.freeze + + self.table_name = 'clusters_applications_knative' + + include ::Clusters::Concerns::ApplicationCore + include ::Clusters::Concerns::ApplicationStatus + include ::Clusters::Concerns::ApplicationVersion + include ::Clusters::Concerns::ApplicationData + + default_value_for :version, VERSION + + validates :hostname, presence: true, hostname: true + + def chart + 'knative/knative' + end + + def values + { "domain" => hostname }.to_yaml + end + + def install_command + Gitlab::Kubernetes::Helm::InstallCommand.new( + name: name, + version: VERSION, + rbac: cluster.platform_kubernetes_rbac?, + chart: chart, + files: files, + repository: REPOSITORY, + preinstall: install_script + ) + end + + private + + def install_script + ["/usr/bin/kubectl apply -f #{ISTIO_CRDS} >/dev/null"] + end + end + end +end |