func newService()

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
}