func()

in pkg/service/gerrit/gerrit.go [517:554]


func (s ComponentService) createKeycloakClient(ctx context.Context, instance *gerritApi.Gerrit, externalUrl string) error {
	keycloakClient := &keycloakApi.KeycloakClient{
		TypeMeta: metaV1.TypeMeta{
			Kind: "KeycloakClient",
		},
		ObjectMeta: metaV1.ObjectMeta{
			Name:      instance.Name,
			Namespace: instance.Namespace,
		},
		Spec: keycloakApi.KeycloakClientSpec{
			ClientId:                instance.Name,
			Public:                  true,
			WebUrl:                  externalUrl,
			AdvancedProtocolMappers: false,
			RealmRoles: &[]keycloakApi.RealmRole{
				{
					Name:      "gerrit-administrators",
					Composite: "administrator",
				},
				{
					Name:      "gerrit-users",
					Composite: "developer",
				},
			},
		},
	}

	if instance.Spec.KeycloakSpec.Realm != "" {
		keycloakClient.Spec.TargetRealm = instance.Spec.KeycloakSpec.Realm
	}

	err := s.client.Create(ctx, keycloakClient)
	if err != nil {
		return fmt.Errorf("failed to create k8s client for KeycloakClient: %w", err)
	}

	return nil
}