262 lines
6.6 KiB
Go
262 lines
6.6 KiB
Go
package helm
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"freeleaps.com/gitops/initializer/api/v1alpha1"
|
|
cmmeta "github.com/cert-manager/cert-manager/pkg/apis/meta/v1"
|
|
corev1 "k8s.io/api/core/v1"
|
|
networkingv1 "k8s.io/api/networking/v1"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
)
|
|
|
|
var pathType = networkingv1.PathTypeImplementationSpecific
|
|
|
|
var testCase = v1alpha1.ProjectInitialize{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: "magicleaps-alpha",
|
|
},
|
|
Spec: v1alpha1.ProjectInitializeSpec{
|
|
Repository: &v1alpha1.RepositorySpec{
|
|
Plugin: "azure-devops",
|
|
PluginConfig: map[string]string{
|
|
"pat": "3E9J1v0si6HRvyc1RSRgT791W9ZvMi4kBmrznfcIXB8mq6Trj9VkJQQJ99BBACAAAAArj0WRAAASAZDO32n4",
|
|
"organizationUrl": "https://dev.azure.com/freeleaps",
|
|
},
|
|
RegisterToArgo: true,
|
|
Project: "magicleaps",
|
|
Name: "magicleaps",
|
|
Type: v1alpha1.Monorepo,
|
|
Branch: "develop",
|
|
},
|
|
Helm: &v1alpha1.HelmSpec{
|
|
Generate: true,
|
|
Metadata: v1alpha1.HelmMetadataSpec{
|
|
Name: "magicleaps",
|
|
Description: "A Helm Chart of magicleaps, powered by Freeleaps.",
|
|
},
|
|
Global: v1alpha1.HelmGlobalValuesSpec{
|
|
Registry: "docker.io",
|
|
Repository: "sunzhenyucn",
|
|
},
|
|
Components: []v1alpha1.HelmComponentSpec{
|
|
{
|
|
Name: "frontend",
|
|
Ports: []corev1.ContainerPort{
|
|
{
|
|
Name: "http",
|
|
ContainerPort: 8080,
|
|
Protocol: corev1.ProtocolTCP,
|
|
},
|
|
},
|
|
Replicas: 1,
|
|
Resources: v1alpha1.HelmComponentResourceRequirementsSpec{
|
|
Limits: v1alpha1.HelmComponentResourceSettingSpec{
|
|
CPU: "100m",
|
|
Memory: "256Mi",
|
|
},
|
|
Requests: v1alpha1.HelmComponentResourceSettingSpec{
|
|
CPU: "50m",
|
|
Memory: "128Mi",
|
|
},
|
|
},
|
|
Image: v1alpha1.HelmComponentImageSpec{
|
|
Repository: "sunzhenyucn",
|
|
Name: "magicleaps-frontend",
|
|
Tag: "1.0.0",
|
|
ImagePullPolicy: corev1.PullIfNotPresent,
|
|
},
|
|
Probes: v1alpha1.HelmComponentProbesSpec{
|
|
Liveness: v1alpha1.HelmComponentProbeSpec{
|
|
Type: v1alpha1.HTTPGet,
|
|
Config: v1alpha1.HelmComponentProbeConfigSpec{
|
|
Path: "/",
|
|
Port: 8080,
|
|
},
|
|
},
|
|
Readiness: v1alpha1.HelmComponentProbeSpec{
|
|
Type: v1alpha1.HTTPGet,
|
|
Config: v1alpha1.HelmComponentProbeConfigSpec{
|
|
Path: "/",
|
|
Port: 8080,
|
|
},
|
|
},
|
|
},
|
|
Services: []v1alpha1.HelmComponentServiceSpec{
|
|
{
|
|
Name: "magicleaps-frontend-service",
|
|
Type: corev1.ServiceTypeClusterIP,
|
|
Port: 80,
|
|
TargetPort: 8080,
|
|
},
|
|
},
|
|
Ingresses: []v1alpha1.HelmComponentIngressSpec{
|
|
{
|
|
Name: "magicleaps-frontend-ingress",
|
|
Class: "nginx",
|
|
Host: "alpha.magicleaps.mathmast.com",
|
|
Rules: []networkingv1.HTTPIngressPath{
|
|
{
|
|
Path: "/*",
|
|
PathType: &pathType,
|
|
Backend: networkingv1.IngressBackend{
|
|
Service: &networkingv1.IngressServiceBackend{
|
|
Name: "magicleaps-frontend-service",
|
|
Port: networkingv1.ServiceBackendPort{
|
|
Number: 80,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
TLS: v1alpha1.HelmComponentIngressTLSSpec{
|
|
Exists: false,
|
|
Name: "magicleaps-alpha-frontend-ingress-tls",
|
|
IssuerRef: &cmmeta.ObjectReference{
|
|
Name: "mathmast-dot-com",
|
|
Kind: "ClusterIssuer",
|
|
Group: "cert-manager.io",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Configs: []v1alpha1.HelmComponentConfigSpec{
|
|
{
|
|
Name: "magicleaps-frontend-config",
|
|
Type: v1alpha1.EnvironmentSecret,
|
|
Data: []corev1.EnvVar{
|
|
{
|
|
Name: "TZ",
|
|
Value: "America/Settle",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
{
|
|
Name: "backend",
|
|
Ports: []corev1.ContainerPort{
|
|
{
|
|
Name: "http",
|
|
ContainerPort: 8081,
|
|
Protocol: corev1.ProtocolTCP,
|
|
},
|
|
},
|
|
Replicas: 1,
|
|
Resources: v1alpha1.HelmComponentResourceRequirementsSpec{
|
|
Limits: v1alpha1.HelmComponentResourceSettingSpec{
|
|
CPU: "200m",
|
|
Memory: "512Mi",
|
|
},
|
|
Requests: v1alpha1.HelmComponentResourceSettingSpec{
|
|
CPU: "100m",
|
|
Memory: "256Mi",
|
|
},
|
|
},
|
|
Image: v1alpha1.HelmComponentImageSpec{
|
|
Repository: "sunzhenyucn",
|
|
Name: "magicleaps-backend",
|
|
Tag: "1.0.0",
|
|
ImagePullPolicy: corev1.PullIfNotPresent,
|
|
},
|
|
Probes: v1alpha1.HelmComponentProbesSpec{
|
|
Liveness: v1alpha1.HelmComponentProbeSpec{
|
|
Type: v1alpha1.HTTPGet,
|
|
Config: v1alpha1.HelmComponentProbeConfigSpec{
|
|
Path: "/api/_/probe/liveness",
|
|
Port: 8081,
|
|
},
|
|
},
|
|
Readiness: v1alpha1.HelmComponentProbeSpec{
|
|
Type: v1alpha1.HTTPGet,
|
|
Config: v1alpha1.HelmComponentProbeConfigSpec{
|
|
Path: "/api/_/probe/readiness",
|
|
Port: 8081,
|
|
},
|
|
},
|
|
},
|
|
Services: []v1alpha1.HelmComponentServiceSpec{
|
|
{
|
|
Name: "magicleaps-backend-service",
|
|
Type: corev1.ServiceTypeClusterIP,
|
|
Port: 8081,
|
|
TargetPort: 8081,
|
|
},
|
|
},
|
|
Ingresses: []v1alpha1.HelmComponentIngressSpec{},
|
|
Configs: []v1alpha1.HelmComponentConfigSpec{
|
|
{
|
|
Name: "magicleaps-backend-config",
|
|
Type: v1alpha1.EnvironmentSecret,
|
|
Data: []corev1.EnvVar{
|
|
{
|
|
Name: "TZ",
|
|
Value: "America/Settle",
|
|
},
|
|
{
|
|
Name: "MONGODB_HOST",
|
|
Value: "localhost",
|
|
},
|
|
{
|
|
Name: "MONGODB_PORT",
|
|
Value: "27017",
|
|
},
|
|
{
|
|
Name: "MONGODB_NAME",
|
|
Value: "interview",
|
|
},
|
|
{
|
|
Name: "EMAIL_USER",
|
|
Value: "your@freeleaps.com",
|
|
},
|
|
{
|
|
Name: "EMAIL_PASSWORD",
|
|
Value: "your-password",
|
|
},
|
|
{
|
|
Name: "SUPER_ADMIN",
|
|
Value: "your@email.com",
|
|
},
|
|
{
|
|
Name: "TWILIO_ACCOUNT_SID",
|
|
Value: "",
|
|
},
|
|
{
|
|
Name: "TWILIO_AUTH_TOKEN",
|
|
Value: "",
|
|
},
|
|
{
|
|
Name: "EVELUATION_TASK_FOLDER_BASE",
|
|
Value: "temp/interview/eveluation_task/",
|
|
},
|
|
{
|
|
Name: "LOG_DIR",
|
|
Value: "logs",
|
|
},
|
|
{
|
|
Name: "APP_LOG_FILE",
|
|
Value: "app.log",
|
|
},
|
|
{
|
|
Name: "APP_LOG_LEVEL",
|
|
Value: "INFO",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
func TestGenerate(t *testing.T) {
|
|
gen := &HelmGenerator{
|
|
Instance: &testCase,
|
|
}
|
|
if err := gen.Generate(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}
|