Class: Orchparty::Kubernetes::ApplicationBuilder

Inherits:
Builder
  • Object
show all
Defined in:
lib/orchparty/dsl_parser_kubernetes.rb

Instance Method Summary collapse

Methods inherited from Builder

#assign_or_merge, build

Constructor Details

#initialize(name) ⇒ ApplicationBuilder

Returns a new instance of ApplicationBuilder.



134
135
136
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 134

def initialize(name)
  @application = AST.application(name: name)
end

Instance Method Details

#_buildObject



234
235
236
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 234

def _build
  @application
end

#all(&block) ⇒ Object



147
148
149
150
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 147

def all(&block)
  @application.all = AllBuilder.build(block)
  self
end

#apply(name, &block) ⇒ Object



177
178
179
180
181
182
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 177

def apply(name, &block)
  result = ServiceBuilder.build(name, "apply", block)
  @application.services[name] = result
  @application._service_order << name
  self
end

#chart(name, &block) ⇒ Object



199
200
201
202
203
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 199

def chart(name, &block)
  @application.services[name] = ChartBuilder.build(name, @application, "chart", block)
  @application._service_order << name
  self
end

#helm(name, &block) ⇒ Object



162
163
164
165
166
167
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 162

def helm(name, &block)
  result = ServiceBuilder.build(name, "helm", block)
  @application.services[name] = result
  @application._service_order << name
  self
end

#label(&block) ⇒ Object



169
170
171
172
173
174
175
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 169

def label(&block)
  name = SecureRandom.hex
  result = ServiceWithoutNameBuilder.build("label", block)
  @application.services[name] = result
  @application._service_order << name
  self
end

#mix(name) ⇒ Object



138
139
140
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 138

def mix(name)
  @application._mix << name
end

#mixin(name, &block) ⇒ Object



142
143
144
145
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 142

def mixin(name, &block)
  @application._mixins[name] = ApplicationMixinBuilder.build(block)
  self
end

#secret_generic(name, &block) ⇒ Object



184
185
186
187
188
189
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 184

def secret_generic(name, &block)
  result = ServiceBuilder.build(name, "secret_generic", block)
  @application.services[name] = result
  @application._service_order << name
  self
end

#service(name, &block) ⇒ Object



216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 216

def service(name, &block)

  chart_name = @application.name
  unless @application.services[chart_name]
    @application.services[chart_name] = AST.chart(name: chart_name, _type: "chart" )
    @application._service_order << chart_name
  end
  chart = @application.services[chart_name]

  result = ServiceBuilder.build(name, "chart-service", block)

  name = "chart-#{chart.name}-#{name}"
  @application.services[name] = result
  @application._service_order << name
  chart._services << name
  self
end

#template(path) ⇒ Object



205
206
207
208
209
210
211
212
213
214
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 205

def template(path)
  chart_name = @application.name
  unless @application.services[chart_name]
    @application.services[chart_name] = AST.chart(name: chart_name, _type: "chart" )
    @application._service_order << chart_name
  end
  chart = @application.services[chart_name]
  chart.template = path
  self
end

#variables(&block) ⇒ Object



152
153
154
155
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 152

def variables(&block)
  @application._variables = VariableBuilder.build(block)
  self
end

#volumes(&block) ⇒ Object



157
158
159
160
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 157

def volumes(&block)
  @application.volumes = HashBuilder.build(block)
  self
end

#wait(&block) ⇒ Object



191
192
193
194
195
196
197
# File 'lib/orchparty/dsl_parser_kubernetes.rb', line 191

def wait(&block)
  name = SecureRandom.hex
  result = ServiceBuilder.build(name, "wait", block)
  @application.services[name] = result
  @application._service_order << name
  self
end