Skip to content

Commit

Permalink
more skeleton
Browse files Browse the repository at this point in the history
  • Loading branch information
dmolik committed Jul 30, 2024
1 parent afa24d8 commit d950ee7
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 8 deletions.
91 changes: 88 additions & 3 deletions internal/controller/valkey_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/log"

hyperv1 "hyperspike.io/valkey-operator/api/v1"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
Expand Down Expand Up @@ -127,9 +128,11 @@ func (r *ValkeyReconciler) upsertService(ctx context.Context, valkey *hyperv1.Va
if err := r.Create(ctx, svc); err != nil {
if errors.IsAlreadyExists(err) {
if err := r.Update(ctx, svc); err != nil {
logger.Error(err, "failed to update service", "valkey", valkey.Name, "namespace", valkey.Namespace)
return err
}
} else {
logger.Error(err, "failed to create service", "valkey", valkey.Name, "namespace", valkey.Namespace)
return err
}
}
Expand Down Expand Up @@ -157,24 +160,106 @@ func (r *ValkeyReconciler) upsertServiceHeadless(ctx context.Context, valkey *hy
if err := r.Create(ctx, svc); err != nil {
if errors.IsAlreadyExists(err) {
if err := r.Update(ctx, svc); err != nil {
logger.Error(err, "failed to update service", "valkey", valkey.Name, "namespace", valkey.Namespace)
return err
}
} else {
logger.Error(err, "failed to create service", "valkey", valkey.Name, "namespace", valkey.Namespace)
return err
}
}
return nil
}

func (r *ValkeyReconciler) upsertServiceAccount(ctx context.Context, valkey *hyperv1.Valkey) error {
func (r *ValkeyReconciler) upsertSecret(ctx context.Context, valkey *hyperv1.Valkey) error {
logger := log.FromContext(ctx)

logger.Info("upserting secret", "valkey", valkey.Name, "namespace", valkey.Namespace)

secret := &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: valkey.Name,
Namespace: valkey.Namespace,
},
Data: map[string][]byte{
"": {},
},
}
if err := r.Create(ctx, secret); err != nil {
if errors.IsAlreadyExists(err) {
if err := r.Update(ctx, secret); err != nil {
logger.Error(err, "failed to update secret", "valkey", valkey.Name, "namespace", valkey.Namespace)
return err
}
} else {
logger.Error(err, "failed to create secret", "valkey", valkey.Name, "namespace", valkey.Namespace)
return err
}
}
return nil
}

func (r *ValkeyReconciler) upsertStatefulSet(ctx context.Context, valkey *hyperv1.Valkey) error {
func (r *ValkeyReconciler) upsertServiceAccount(ctx context.Context, valkey *hyperv1.Valkey) error {
logger := log.FromContext(ctx)

logger.Info("upserting service account", "valkey", valkey.Name, "namespace", valkey.Namespace)
svc := &corev1.ServiceAccount{
ObjectMeta: metav1.ObjectMeta{
Name: valkey.Name,
Namespace: valkey.Namespace,
},
}
if err := r.Create(ctx, svc); err != nil {
if errors.IsAlreadyExists(err) {
if err := r.Update(ctx, svc); err != nil {
logger.Error(err, "failed to update service account", "valkey", valkey.Name, "namespace", valkey.Namespace)
return err
}
} else {
logger.Error(err, "failed to create service account", "valkey", valkey.Name, "namespace", valkey.Namespace)
return err
}
}
return nil
}

func (r *ValkeyReconciler) upsertSecret(ctx context.Context, valkey *hyperv1.Valkey) error {
func (r *ValkeyReconciler) upsertStatefulSet(ctx context.Context, valkey *hyperv1.Valkey) error {
logger := log.FromContext(ctx)

logger.Info("upserting statefulset", "valkey", valkey.Name, "namespace", valkey.Namespace)
sts := &appsv1.StatefulSet{
ObjectMeta: metav1.ObjectMeta{
Name: valkey.Name,
Namespace: valkey.Namespace,
},
Spec: appsv1.StatefulSetSpec{
Replicas: nil,
Selector: nil,
Template: corev1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: map[string]string{
"": "",
},
},
Spec: corev1.PodSpec{
Containers: []corev1.Container{
{},
},
},
},
},
}
if err := r.Create(ctx, sts); err != nil {
if errors.IsAlreadyExists(err) {
if err := r.Update(ctx, sts); err != nil {
logger.Error(err, "failed to update statefulset", "valkey", valkey.Name, "namespace", valkey.Namespace)
return err
}
} else {
logger.Error(err, "failed to create statefulset", "valkey", valkey.Name, "namespace", valkey.Namespace)
return err
}
}
return nil
}

Expand Down
10 changes: 5 additions & 5 deletions test/utils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func warnError(err error) {
// InstallPrometheusOperator installs the prometheus Operator to be used to export the enabled metrics.
func InstallPrometheusOperator() error {
url := fmt.Sprintf(prometheusOperatorURL, prometheusOperatorVersion)
cmd := exec.Command("kubectl", "create", "-f", url)
cmd := exec.Command("kubectl", "create", "-f", url) // #nosec G204
_, err := Run(cmd)
return err
}
Expand Down Expand Up @@ -69,7 +69,7 @@ func Run(cmd *exec.Cmd) ([]byte, error) {
// UninstallPrometheusOperator uninstalls the prometheus
func UninstallPrometheusOperator() {
url := fmt.Sprintf(prometheusOperatorURL, prometheusOperatorVersion)
cmd := exec.Command("kubectl", "delete", "-f", url)
cmd := exec.Command("kubectl", "delete", "-f", url) // #nosec G204
if _, err := Run(cmd); err != nil {
warnError(err)
}
Expand All @@ -78,7 +78,7 @@ func UninstallPrometheusOperator() {
// UninstallCertManager uninstalls the cert manager
func UninstallCertManager() {
url := fmt.Sprintf(certmanagerURLTmpl, certmanagerVersion)
cmd := exec.Command("kubectl", "delete", "-f", url)
cmd := exec.Command("kubectl", "delete", "-f", url) // #nosec G204
if _, err := Run(cmd); err != nil {
warnError(err)
}
Expand All @@ -87,7 +87,7 @@ func UninstallCertManager() {
// InstallCertManager installs the cert manager bundle.
func InstallCertManager() error {
url := fmt.Sprintf(certmanagerURLTmpl, certmanagerVersion)
cmd := exec.Command("kubectl", "apply", "-f", url)
cmd := exec.Command("kubectl", "apply", "-f", url) // #nosec G204
if _, err := Run(cmd); err != nil {
return err
}
Expand All @@ -110,7 +110,7 @@ func LoadImageToKindClusterWithName(name string) error {
cluster = v
}
kindOptions := []string{"load", "docker-image", name, "--name", cluster}
cmd := exec.Command("kind", kindOptions...)
cmd := exec.Command("kind", kindOptions...) // #nosec G204
_, err := Run(cmd)
return err
}
Expand Down

0 comments on commit d950ee7

Please sign in to comment.