in cmd/cloudshell_open/deploy.go [101:143]
func newService(name, project, image string, envs map[string]string, options options) *runapi.Service {
var envVars []*runapi.EnvVar
for k, v := range envs {
envVars = append(envVars, &runapi.EnvVar{Name: k, Value: v})
}
svc := &runapi.Service{
ApiVersion: "serving.knative.dev/v1",
Kind: "Service",
Metadata: &runapi.ObjectMeta{
Annotations: make(map[string]string),
Name: name,
Namespace: project,
},
Spec: &runapi.ServiceSpec{
Template: &runapi.RevisionTemplate{
Metadata: &runapi.ObjectMeta{
Name: generateRevisionName(name, 0),
Annotations: make(map[string]string),
},
Spec: &runapi.RevisionSpec{
ContainerConcurrency: int64(options.Concurrency),
Containers: []*runapi.Container{
{
Image: image,
Env: envVars,
Resources: optionsToResourceRequirements(options),
Ports: []*runapi.ContainerPort{optionsToContainerSpec(options)},
},
},
},
ForceSendFields: nil,
NullFields: nil,
},
},
}
applyMeta(svc.Metadata, image)
applyMeta(svc.Spec.Template.Metadata, image)
applyScaleMeta(svc.Spec.Template.Metadata, "maxScale", options.MaxInstances)
return svc
}