diff --git a/demo/qr.yaml b/demo/qr.yaml index f0a75d8..404d665 100644 --- a/demo/qr.yaml +++ b/demo/qr.yaml @@ -6,7 +6,7 @@ metadata: name: qr-code namespace: saladcloud-demo spec: - replicas: 2 + replicas: 1 selector: matchLabels: app: qr-code-demo @@ -26,9 +26,12 @@ spec: - image: saladtechnologies/stable-fast-qr-code:latest-baked name: qr-code resources: + requests: + cpu: "2" + memory: 8Gi limits: - cpu: 2 - memory: 8192 + cpu: "2" + memory: 8Gi env: - name: HOST value: "*" diff --git a/internal/provider/provider.go b/internal/provider/provider.go index ddb77e6..9e46852 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -105,9 +105,11 @@ func (p *SaladCloudProvider) NotifyPods(ctx context.Context, notifierCallback fu func (p *SaladCloudProvider) CreatePod(ctx context.Context, pod *corev1.Pod) error { ctx, span := trace.StartSpan(ctx, "CreatePod") defer span.End() - p.logger.Debug("creating a CreatePod", pod.Name) + p.logger.Infof("CreatePod: %s", pod.Name) createContainerObject := p.createContainersObject(pod) + p.logger.Debugf(" createContainerObject: %+v", createContainerObject) createContainerGroup := p.createContainerGroup(createContainerObject, pod) + p.logger.Debugf(" createContainerGroup: %+v", createContainerGroup[0]) _, r, err := p.apiClient. ContainerGroupsAPI.CreateContainerGroup( @@ -192,6 +194,7 @@ func (p *SaladCloudProvider) CreatePod(ctx context.Context, pod *corev1.Pod) err } func (p *SaladCloudProvider) UpdatePod(ctx context.Context, pod *corev1.Pod) error { + p.logger.Debugf("UpdatePod: %s: %+v", utils.GetPodName(pod.Namespace, pod.Name, pod), pod) return nil } @@ -229,8 +232,8 @@ func (p *SaladCloudProvider) DeletePod(ctx context.Context, pod *corev1.Pod) err } func (p *SaladCloudProvider) GetPod(ctx context.Context, namespace string, name string) (*corev1.Pod, error) { - - resp, r, err := saladclient.NewAPIClient(saladclient.NewConfiguration()).ContainerGroupsAPI.GetContainerGroup(p.contextWithAuth(), p.inputVars.OrganizationName, p.inputVars.ProjectName, utils.GetPodName(namespace, name, nil)).Execute() + podname := utils.GetPodName(namespace, name, nil) + resp, r, err := saladclient.NewAPIClient(saladclient.NewConfiguration()).ContainerGroupsAPI.GetContainerGroup(p.contextWithAuth(), p.inputVars.OrganizationName, p.inputVars.ProjectName, podname).Execute() if err != nil { // Get response body for error info pd, err := utils.GetResponseBody(r) @@ -240,7 +243,7 @@ func (p *SaladCloudProvider) GetPod(ctx context.Context, namespace string, name } if r.StatusCode == 404 { - p.logger.Warnf("`ContainerGroupsAPI.GetPod`: %s not found", name) + p.logger.Warnf("`ContainerGroupsAPI.GetPod`: %s not found", podname) } else { p.logger.Errorf("`ContainerGroupsAPI.GetPod`: Error: %+v", *pd) } @@ -287,7 +290,8 @@ func (p *SaladCloudProvider) GetPodStatus(ctx context.Context, namespace string, _, span := trace.StartSpan(ctx, "GetPodStatus") defer span.End() - containerGroup, response, err := p.apiClient.ContainerGroupsAPI.GetContainerGroup(p.contextWithAuth(), p.inputVars.OrganizationName, p.inputVars.ProjectName, utils.GetPodName(namespace, name, nil)).Execute() + podname := utils.GetPodName(namespace, name, nil) + containerGroup, response, err := p.apiClient.ContainerGroupsAPI.GetContainerGroup(p.contextWithAuth(), p.inputVars.OrganizationName, p.inputVars.ProjectName, podname).Execute() if err != nil { // Get response body for error info pd, err := utils.GetResponseBody(response) @@ -298,7 +302,7 @@ func (p *SaladCloudProvider) GetPodStatus(ctx context.Context, namespace string, if response.StatusCode == 404 { p.logger.WithField("namespace", namespace). - WithField("name", name). + WithField("name", podname). Warnf("Not Found") } else { p.logger.WithField("namespace", namespace). diff --git a/internal/utils/utils.go b/internal/utils/utils.go index 512e47b..7f922d1 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -2,7 +2,6 @@ package utils import ( "bytes" - "fmt" "io" "net/http" @@ -49,7 +48,7 @@ func GetPodName(nameSpace, containerGroup string, pod *corev1.Pod) string { if nameSpace == "" && containerGroup == "" && pod.Spec.Containers[0].Name != "" { return pod.Spec.Containers[0].Name } - return "salad-cloud-" + nameSpace + "-" + containerGroup + return nameSpace + "-" + containerGroup } func GetPodPhaseFromContainerGroupState(containerGroupState saladclient.ContainerGroupState) corev1.PodPhase { @@ -89,7 +88,12 @@ func GetResponseBody(response *http.Response) (*saladclient.ProblemDetails, erro pd := saladclient.NewNullableProblemDetails(nil) err := pd.UnmarshalJSON(body) if err != nil { - return nil, fmt.Errorf("Error decoding response body: %s", response.Body) + // Can't decode ProblemDetails, just make one and return the string + npd := saladclient.NewProblemDetails() + npd.SetType("unknown_error") + npd.SetTitle("Error decoding response body") + npd.SetDetail(string(body)) + pd.Set(npd) } return pd.Get(), nil }