class Kubes::CLI::New::Resource
Public Class Methods
options()
click to toggle source
# File lib/kubes/cli/new/resource.rb, line 5 def self.options [ [:app, aliases: ["a"], default: "demo", desc: "App name"], [:force, aliases: ["y"], type: :boolean, desc: "Bypass overwrite are you sure prompt for existing files"], [:role, aliases: ["r"], desc: "Role. IE: web, clock, worker, migrate, etc. Defaults to convention: web or shared when not set"], [:type, aliases: ["t"], default: "yaml", desc: "Type: dsl or yaml"], ] end
Public Instance Methods
create_resource()
click to toggle source
# File lib/kubes/cli/new/resource.rb, line 93 def create_resource template file, ".kubes/resources/#{role}/#{file}" end
set_template_source()
click to toggle source
# File lib/kubes/cli/new/resource.rb, line 84 def set_template_source path = File.expand_path("../../../templates/new/resource/#{options[:type]}/#{file}", __dir__) unless File.exist?(path) logger.info "ERROR: Generator for #{file} not supported".color(:red) exit 1 end set_source("new/resource/#{options[:type]}") end
Private Instance Methods
app()
click to toggle source
# File lib/kubes/cli/new/resource.rb, line 16 def app options[:app] end
file()
click to toggle source
# File lib/kubes/cli/new/resource.rb, line 78 def file ext = options[:type] == "yaml" ? "yaml" : "rb" "#{full_kind}.#{ext}" end
full_kind()
click to toggle source
# File lib/kubes/cli/new/resource.rb, line 41 def full_kind # shorthands map = { cj: "cron_job", cm: "config_map", crd: "custom_resource_definition", crds: "custom_resource_definition", cs: "component_statuses", csr: "certificate_signing_request", deploy: "deployment", ds: "daemonset", ep: "endpoints", ev: "event", hpa: "horizontal_pod_autoscaler", ing: "ingress", limits: "limit_range", netpol: "network_policy", no: "node", ns: "namespace", pc: "priority_class", pdb: "pod_disruption_budget", po: "pod", psp: "pods_ecurity_policy", pv: "persistent_volume", pvc: "persistent_volume_claim", quota: "resource_quota", rc: "replication_controller", rs: "replica_set", sa: "service_account", sc: "storage_classes", sgp: "security_group_policy", sts: "stateful_set", svc: "service", }.stringify_keys! map[kind] || kind end
role()
click to toggle source
# File lib/kubes/cli/new/resource.rb, line 20 def role role = options[:role] return role if role shared = %w[ config_map namespace network_policy persistent_volume persistent_volume_claim secret service_account ] if shared.include?(full_kind) "shared" elsif full_kind == "job" "migrate" else "web" end end