Skip to content

Rename admin to default user #388

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 13, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions api/v1beta1/rabbitmqcluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,10 +286,10 @@ type RabbitmqClusterStatus struct {
Conditions []status.RabbitmqClusterCondition `json:"conditions"`

// Identifying information on internal resources
Admin *RabbitmqClusterAdmin `json:"admin,omitempty"`
DefaultUser *RabbitmqClusterDefaultUser `json:"defaultUser,omitempty"`
}

type RabbitmqClusterAdmin struct {
type RabbitmqClusterDefaultUser struct {
SecretReference *RabbitmqClusterSecretReference `json:"secretReference,omitempty"`
ServiceReference *RabbitmqClusterServiceReference `json:"serviceReference,omitempty"`
}
Expand Down
48 changes: 24 additions & 24 deletions api/v1beta1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions bin/kubectl-rabbitmq
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ usage() {
echo " Open Management UI for an instance"
echo " kubectl rabbitmq manage INSTANCE"
echo
echo " Print admin secrets for an instance"
echo " Print default-user secrets for an instance"
echo " kubectl rabbitmq secrets INSTANCE"
echo
echo " List all RabbitMQ clusters"
Expand Down Expand Up @@ -67,8 +67,8 @@ usage() {

get_instance_details() {
instance=${1}
username=$(kubectl get secret "${instance}-rabbitmq-admin" -o jsonpath="{.data.username}" | base64 --decode)
password=$(kubectl get secret "${instance}-rabbitmq-admin" -o jsonpath="{.data.password}" | base64 --decode)
username=$(kubectl get secret "${instance}-rabbitmq-default-user" -o jsonpath="{.data.username}" | base64 --decode)
password=$(kubectl get secret "${instance}-rabbitmq-default-user" -o jsonpath="{.data.password}" | base64 --decode)
service=${instance}-rabbitmq-client
}

Expand Down
26 changes: 13 additions & 13 deletions charts/tsmgr/bind.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
template: |
local clientFilterFunc(j) = std.length(std.findSubstr("rabbitmq-client", j.name)) > 0;
local clientService = std.filter(clientFilterFunc, $.services)[0];
local secretFilterFunc(j) = std.length(std.findSubstr("rabbitmq-admin", j.name)) > 0;
local admin = std.filter(secretFilterFunc, $.secrets);
local secretFilterFunc(j) = std.length(std.findSubstr("rabbitmq-default-user", j.name)) > 0;
local defaultUser = std.filter(secretFilterFunc, $.secrets);

local vhost = "%2F";
local ingress = if clientService.spec.type == "LoadBalancer" then
Expand All @@ -20,15 +20,15 @@ template: |
clientService.status.loadBalancer.ingress[0].ip
else
clientService.spec.clusterIP;
local adminUsername = admin[0].data['username'];
local adminPassword = admin[0].data['password'];
local mgmtURI = "http://" + ingress + ":15672/#/login/" + adminUsername + "/" + adminPassword;
local apiURI = "http://" + adminUsername + ":" + adminPassword + "@" + ingress + ":15672/api/";
local amqpURI = "amqp://" + adminUsername + ":" + adminPassword + "@" + ingress + "/" + vhost;
local defaultUserUsername = defaultUser[0].data['username'];
local defaultUserPassword = defaultUser[0].data['password'];
local mgmtURI = "http://" + ingress + ":15672";
local apiURI = "http://" + defaultUserUsername + ":" + defaultUserPassword + "@" + ingress + ":15672/api/";
local amqpURI = "amqp://" + defaultUserUsername + ":" + defaultUserPassword + "@" + ingress + "/" + vhost;
{
"hostname": ingress,
"username": adminUsername,
"password": adminPassword,
"username": defaultUserUsername,
"password": defaultUserPassword,
"dashboard_url": mgmtURI,
"hostnames": [
ingress
Expand All @@ -49,30 +49,30 @@ template: |
"hosts": [
ingress
],
"password": adminPassword,
"password": defaultUserPassword,
"port": 5672,
"ssl": false,
"uri": amqpURI,
"uris": [
amqpURI
],
"username": adminUsername,
"username": defaultUserUsername,
"vhost": vhost
},
"management": {
"host": ingress,
"hosts": [
ingress
],
"password": adminPassword,
"password": defaultUserPassword,
"path": "/api/",
"port": 15672,
"ssl": false,
"uri": apiURI,
"uris": [
apiURI
],
"username": adminUsername
"username": defaultUserUsername
}
},
}
58 changes: 29 additions & 29 deletions config/crd/bases/rabbitmq.com_rabbitmqclusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3758,35 +3758,6 @@ spec:
status:
description: Status presents the observed state of RabbitmqCluster
properties:
admin:
description: Identifying information on internal resources
properties:
secretReference:
properties:
keys:
additionalProperties:
type: string
type: object
name:
type: string
namespace:
type: string
required:
- keys
- name
- namespace
type: object
serviceReference:
properties:
name:
type: string
namespace:
type: string
required:
- name
- namespace
type: object
type: object
clusterStatus:
type: string
conditions:
Expand Down Expand Up @@ -3817,6 +3788,35 @@ spec:
- type
type: object
type: array
defaultUser:
description: Identifying information on internal resources
properties:
secretReference:
properties:
keys:
additionalProperties:
type: string
type: object
name:
type: string
namespace:
type: string
required:
- keys
- name
- namespace
type: object
serviceReference:
properties:
name:
type: string
namespace:
type: string
required:
- name
- namespace
type: object
type: object
required:
- conditions
type: object
Expand Down
16 changes: 8 additions & 8 deletions controllers/rabbitmqcluster_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ func (r *RabbitmqClusterReconciler) Reconcile(req ctrl.Request) (ctrl.Result, er
"name", rabbitmqCluster.Name)
}

if err := r.setAdminStatus(ctx, rabbitmqCluster); err != nil {
if err := r.setDefaultUserStatus(ctx, rabbitmqCluster); err != nil {
return ctrl.Result{}, err
}

Expand Down Expand Up @@ -272,28 +272,28 @@ func (r *RabbitmqClusterReconciler) checkTLSSecrets(ctx context.Context, rabbitm
return ctrl.Result{}, nil
}

func (r *RabbitmqClusterReconciler) setAdminStatus(ctx context.Context, rmq *rabbitmqv1beta1.RabbitmqCluster) error {
func (r *RabbitmqClusterReconciler) setDefaultUserStatus(ctx context.Context, rmq *rabbitmqv1beta1.RabbitmqCluster) error {

adminStatus := &rabbitmqv1beta1.RabbitmqClusterAdmin{}
defaultUserStatus := &rabbitmqv1beta1.RabbitmqClusterDefaultUser{}

serviceRef := &rabbitmqv1beta1.RabbitmqClusterServiceReference{
Name: rmq.ChildResourceName("client"),
Namespace: rmq.Namespace,
}
adminStatus.ServiceReference = serviceRef
defaultUserStatus.ServiceReference = serviceRef

secretRef := &rabbitmqv1beta1.RabbitmqClusterSecretReference{
Name: rmq.ChildResourceName(resource.AdminSecretName),
Name: rmq.ChildResourceName(resource.DefaultUserSecretName),
Namespace: rmq.Namespace,
Keys: map[string]string{
"username": "username",
"password": "password",
},
}
adminStatus.SecretReference = secretRef
defaultUserStatus.SecretReference = secretRef

if !reflect.DeepEqual(rmq.Status.Admin, adminStatus) {
rmq.Status.Admin = adminStatus
if !reflect.DeepEqual(rmq.Status.DefaultUser, defaultUserStatus) {
rmq.Status.DefaultUser = defaultUserStatus
if err := r.Status().Update(ctx, rmq); err != nil {
return err
}
Expand Down
22 changes: 11 additions & 11 deletions controllers/rabbitmqcluster_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ var _ = Describe("RabbitmqClusterController", func() {
Expect(configMap.OwnerReferences[0].Name).To(Equal(cluster.Name))
})

By("creating a rabbitmq admin secret", func() {
secretName := cluster.ChildResourceName("admin")
By("creating a rabbitmq default-user secret", func() {
secretName := cluster.ChildResourceName("default-user")
secret, err := clientSet.CoreV1().Secrets(cluster.Namespace).Get(ctx, secretName, metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred())
Expect(secret.Name).To(Equal(secretName))
Expand Down Expand Up @@ -173,7 +173,7 @@ var _ = Describe("RabbitmqClusterController", func() {
Expect(allEventMsgs).To(ContainSubstring("created resource %s of Type *v1.ConfigMap", cluster.ChildResourceName("plugins-conf")))
Expect(allEventMsgs).To(ContainSubstring("created resource %s of Type *v1.ConfigMap", cluster.ChildResourceName("server-conf")))
Expect(allEventMsgs).To(ContainSubstring("created resource %s of Type *v1.Secret", cluster.ChildResourceName("erlang-cookie")))
Expect(allEventMsgs).To(ContainSubstring("created resource %s of Type *v1.Secret", cluster.ChildResourceName("admin")))
Expect(allEventMsgs).To(ContainSubstring("created resource %s of Type *v1.Secret", cluster.ChildResourceName("default-user")))
Expect(allEventMsgs).To(ContainSubstring("created resource %s of Type *v1.ServiceAccount", cluster.ChildResourceName("server")))
Expect(allEventMsgs).To(ContainSubstring("created resource %s of Type *v1.Role", cluster.ChildResourceName("peer-discovery")))
Expect(allEventMsgs).To(ContainSubstring("created resource %s of Type *v1.RoleBinding", cluster.ChildResourceName("server")))
Expand All @@ -194,7 +194,7 @@ var _ = Describe("RabbitmqClusterController", func() {
}, 5).Should(Equal("deletion.finalizers.rabbitmqclusters.rabbitmq.com"))
})

By("setting the admin secret details in the custom resource status", func() {
By("setting the default-user secret details in the custom resource status", func() {
rmq := &rabbitmqv1beta1.RabbitmqCluster{}
secretRef := &rabbitmqv1beta1.RabbitmqClusterSecretReference{}
Eventually(func() *rabbitmqv1beta1.RabbitmqClusterSecretReference {
Expand All @@ -203,15 +203,15 @@ var _ = Describe("RabbitmqClusterController", func() {
return nil
}

if rmq.Status.Admin != nil && rmq.Status.Admin.SecretReference != nil {
secretRef = rmq.Status.Admin.SecretReference
if rmq.Status.DefaultUser != nil && rmq.Status.DefaultUser.SecretReference != nil {
secretRef = rmq.Status.DefaultUser.SecretReference
return secretRef
}

return nil
}, 5).ShouldNot(BeNil())

Expect(secretRef.Name).To(Equal(rmq.ChildResourceName(resource.AdminSecretName)))
Expect(secretRef.Name).To(Equal(rmq.ChildResourceName(resource.DefaultUserSecretName)))
Expect(secretRef.Namespace).To(Equal(rmq.Namespace))
Expect(secretRef.Keys).To(HaveKeyWithValue("username", "username"))
Expect(secretRef.Keys).To(HaveKeyWithValue("password", "password"))
Expand All @@ -226,8 +226,8 @@ var _ = Describe("RabbitmqClusterController", func() {
return nil
}

if rmq.Status.Admin != nil && rmq.Status.Admin.ServiceReference != nil {
serviceRef = rmq.Status.Admin.ServiceReference
if rmq.Status.DefaultUser != nil && rmq.Status.DefaultUser.ServiceReference != nil {
serviceRef = rmq.Status.DefaultUser.ServiceReference
return serviceRef
}

Expand Down Expand Up @@ -803,7 +803,7 @@ var _ = Describe("RabbitmqClusterController", func() {

It("updates annotations for secrets", func() {
Eventually(func() map[string]string {
roleBinding, err := clientSet.CoreV1().Secrets(cluster.Namespace).Get(ctx, cluster.ChildResourceName("admin"), metav1.GetOptions{})
roleBinding, err := clientSet.CoreV1().Secrets(cluster.Namespace).Get(ctx, cluster.ChildResourceName("default-user"), metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred())
return roleBinding.Annotations
}, 3).Should(HaveKeyWithValue(annotationKey, annotationValue))
Expand Down Expand Up @@ -1220,7 +1220,7 @@ var _ = Describe("RabbitmqClusterController", func() {
{
Secret: &corev1.SecretProjection{
LocalObjectReference: corev1.LocalObjectReference{
Name: "rabbitmq-sts-override-rabbitmq-admin",
Name: "rabbitmq-sts-override-rabbitmq-default-user",
},
Items: []corev1.KeyToPath{
{
Expand Down
Loading