Skip to content
This repository has been archived by the owner on Jan 9, 2025. It is now read-only.

Commit

Permalink
ensureNamespace feat removed
Browse files Browse the repository at this point in the history
  • Loading branch information
leoporoli committed Oct 9, 2024
1 parent abff494 commit 7089b57
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 78 deletions.
6 changes: 0 additions & 6 deletions kardinal-cli/deployment/deployment.go
Original file line number Diff line number Diff line change
Expand Up @@ -281,12 +281,6 @@ func DeployResourceSpecs(ctx context.Context, resourceSpecs []string) error {
}
namespaceName := k8sResourceMetadataObj.Metadata.Namespace

if namespaceName != "" {
if err := kubernetesClientObj.EnsureNamespace(ctx, namespaceName); err != nil {
return stacktrace.Propagate(err, "An error occurred while creating '%s' namespace", namespaceName)
}
}

logrus.Debugf("Deploying resource '%s' kind '%s' in namespace '%s'", k8sResourceMetadataObj.Metadata.Name, k8sResourceMetadataObj.Kind, namespaceName)
if err := kubernetesClientObj.ApplyYamlFileContentInNamespace(ctx, namespaceName, resourceSpecBytes); err != nil {
return stacktrace.Propagate(err, "An error occurred while applying resource '%s' kind '%s' in namespace '%s'", k8sResourceMetadataObj.Metadata.Name, k8sResourceMetadataObj.Kind, namespaceName)
Expand Down
72 changes: 0 additions & 72 deletions kardinal-cli/kubernetes/kubernetes_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,37 +24,6 @@ const (

listOptionsTimeoutSeconds int64 = 10
deleteOptionsGracePeriodSeconds int64 = 0

// TODO move these values to a shared library between Kardinal Manager, Kontrol and Kardinal CLI
kardinalLabelKey = "kardinal.dev"
istioSystemNamespace = "istio-system"
enabledIstioValue = "enabled"
enabledKardinal = "enabled"
istioLabel = "istio-injection"
)

var (
globalCreateOptions = metav1.CreateOptions{
TypeMeta: metav1.TypeMeta{
Kind: "",
APIVersion: "",
},
DryRun: nil,
// We need every object to have this field manager so that the Kurtosis objects can all seamlessly modify Kubernetes resources
FieldManager: fieldManager,
FieldValidation: "",
}

globalUpdateOptions = metav1.UpdateOptions{
TypeMeta: metav1.TypeMeta{
Kind: "",
APIVersion: "",
},
DryRun: nil,
// We need every object to have this field manager so that the Kurtosis objects can all seamlessly modify Kubernetes resources
FieldManager: fieldManager,
FieldValidation: "",
}
)

type KubernetesClient struct {
Expand Down Expand Up @@ -229,47 +198,6 @@ func (client *KubernetesClient) GetNamespacesByLabels(ctx context.Context, names
return &namespacesNotMarkedForDeletionnamespaceList, nil
}

// TODO merge kardinal-cli.kubernetes-client with kardinal-manager.cluster-manager, this method is in both objects
func (client *KubernetesClient) EnsureNamespace(ctx context.Context, name string) error {
if name == istioSystemNamespace {
// Some resources might be under the istio system namespace but we don't want to alter
// this namespace because it is managed by Istio
return nil
}

existingNamespace, err := client.clientSet.CoreV1().Namespaces().Get(ctx, name, metav1.GetOptions{})
if err == nil && existingNamespace != nil {
value, found := existingNamespace.Labels[istioLabel]
if !found || value != enabledIstioValue {
existingNamespace.Labels[istioLabel] = enabledIstioValue
}
value, found = existingNamespace.Labels[kardinalLabelKey]
if !found || value != enabledKardinal {
existingNamespace.Labels[kardinalLabelKey] = enabledKardinal
}
_, err = client.clientSet.CoreV1().Namespaces().Update(ctx, existingNamespace, globalUpdateOptions)
if err != nil {
return stacktrace.Propagate(err, "Failed to update Namespace: %s", name)
}
} else {
newNamespace := corev1.Namespace{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Labels: map[string]string{
istioLabel: enabledIstioValue,
kardinalLabelKey: enabledKardinal,
},
},
}
_, err = client.clientSet.CoreV1().Namespaces().Create(ctx, &newNamespace, globalCreateOptions)
if err != nil {
return stacktrace.Propagate(err, "Failed to create Namespace: %s", name)
}
}

return nil
}

func buildListOptionsFromLabels(labelsMap map[string]string) metav1.ListOptions {
return metav1.ListOptions{
TypeMeta: metav1.TypeMeta{
Expand Down

0 comments on commit 7089b57

Please sign in to comment.