func createApiDeployment()

in controllers/api_reconcile.go [58:116]


func createApiDeployment(cluster *dsv1alpha1.DSApi) *v1.Deployment {
	ApiDeployment := v1.Deployment{
		ObjectMeta: metav1.ObjectMeta{
			Name:      dsv1alpha1.DsApiDeploymentValue,
			Namespace: cluster.Namespace,
		},
		Spec: v1.DeploymentSpec{
			Replicas: int32Ptr(cluster.Spec.Replicas),
			Selector: &metav1.LabelSelector{
				MatchLabels: map[string]string{
					dsv1alpha1.DsAppName: dsv1alpha1.DsApi,
				},
			},
			Template: corev1.PodTemplateSpec{
				ObjectMeta: metav1.ObjectMeta{
					Labels: map[string]string{
						dsv1alpha1.DsAppName: dsv1alpha1.DsApi,
					},
				},
				Spec: corev1.PodSpec{
					ServiceAccountName: dsv1alpha1.DsServiceAccount,
					Containers: []corev1.Container{{
						Name:            dsv1alpha1.DsApi,
						Image:           ImageName(cluster.Spec.Repository, cluster.Spec.Version),
						ImagePullPolicy: corev1.PullIfNotPresent,
						Env: []corev1.EnvVar{
							{
								Name:  dsv1alpha1.EnvZookeeper,
								Value: cluster.Spec.ZookeeperConnect,
							},
							{
								Name:  dsv1alpha1.DataSourceDriveName,
								Value: cluster.Spec.Datasource.DriveName,
							},
							{
								Name:  dsv1alpha1.DataSourceUrl,
								Value: cluster.Spec.Datasource.Url,
							},
							{
								Name:  dsv1alpha1.DataSourceUserName,
								Value: cluster.Spec.Datasource.UserName,
							},
							{
								Name:  dsv1alpha1.DataSourcePassWord,
								Value: cluster.Spec.Datasource.Password,
							},
						},
						Ports: []corev1.ContainerPort{{
							ContainerPort: dsv1alpha1.DsApiPort,
						},
						},
					},
					},
				},
			},
		},
	}
	return &ApiDeployment
}