Group Memberships
Allows for managing a Keycloak group's members. Note that this resource attempts to be an authoritative source over group members. When this resource takes control over a group's members, users that are manually added to the group will be removed, and users that are manually removed from the group will be added upon the next run of pulumi up
. Also note that you should not use keycloak.GroupMemberships
with a group has been assigned as a default group via keycloak.DefaultGroups
. This resource should not be used to control membership of a group that has its members federated from an external source via group mapping. To non-exclusively manage the group's of a user, see the 1 This resource paginates its data loading on refresh by 50 items.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as keycloak from "@pulumi/keycloak";
const realm = new keycloak.Realm("realm", {
realm: "my-realm",
enabled: true,
});
const group = new keycloak.Group("group", {
realmId: realm.id,
name: "my-group",
});
const user = new keycloak.User("user", {
realmId: realm.id,
username: "my-user",
});
const groupMembers = new keycloak.GroupMemberships("group_members", {
realmId: realm.id,
groupId: group.id,
members: [user.username],
});
import pulumi
import pulumi_keycloak as keycloak
realm = keycloak.Realm("realm",
realm="my-realm",
enabled=True)
group = keycloak.Group("group",
realm_id=realm.id,
name="my-group")
user = keycloak.User("user",
realm_id=realm.id,
username="my-user")
group_members = keycloak.GroupMemberships("group_members",
realm_id=realm.id,
group_id=group.id,
members=[user.username])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Keycloak = Pulumi.Keycloak;
return await Deployment.RunAsync(() =>
{
var realm = new Keycloak.Realm("realm", new()
{
RealmName = "my-realm",
Enabled = true,
});
var @group = new Keycloak.Group("group", new()
{
RealmId = realm.Id,
Name = "my-group",
});
var user = new Keycloak.User("user", new()
{
RealmId = realm.Id,
Username = "my-user",
});
var groupMembers = new Keycloak.GroupMemberships("group_members", new()
{
RealmId = realm.Id,
GroupId = @group.Id,
Members = new[]
{
user.Username,
},
});
});
package main
import (
"github.com/pulumi/pulumi-keycloak/sdk/v5/go/keycloak"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
realm, err := keycloak.NewRealm(ctx, "realm", &keycloak.RealmArgs{
Realm: pulumi.String("my-realm"),
Enabled: pulumi.Bool(true),
})
if err != nil {
return err
}
group, err := keycloak.NewGroup(ctx, "group", &keycloak.GroupArgs{
RealmId: realm.ID(),
Name: pulumi.String("my-group"),
})
if err != nil {
return err
}
user, err := keycloak.NewUser(ctx, "user", &keycloak.UserArgs{
RealmId: realm.ID(),
Username: pulumi.String("my-user"),
})
if err != nil {
return err
}
_, err = keycloak.NewGroupMemberships(ctx, "group_members", &keycloak.GroupMembershipsArgs{
RealmId: realm.ID(),
GroupId: group.ID(),
Members: pulumi.StringArray{
user.Username,
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.keycloak.Realm;
import com.pulumi.keycloak.RealmArgs;
import com.pulumi.keycloak.Group;
import com.pulumi.keycloak.GroupArgs;
import com.pulumi.keycloak.User;
import com.pulumi.keycloak.UserArgs;
import com.pulumi.keycloak.GroupMemberships;
import com.pulumi.keycloak.GroupMembershipsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var realm = new Realm("realm", RealmArgs.builder()
.realm("my-realm")
.enabled(true)
.build());
var group = new Group("group", GroupArgs.builder()
.realmId(realm.id())
.name("my-group")
.build());
var user = new User("user", UserArgs.builder()
.realmId(realm.id())
.username("my-user")
.build());
var groupMembers = new GroupMemberships("groupMembers", GroupMembershipsArgs.builder()
.realmId(realm.id())
.groupId(group.id())
.members(user.username())
.build());
}
}
resources:
realm:
type: keycloak:Realm
properties:
realm: my-realm
enabled: true
group:
type: keycloak:Group
properties:
realmId: ${realm.id}
name: my-group
user:
type: keycloak:User
properties:
realmId: ${realm.id}
username: my-user
groupMembers:
type: keycloak:GroupMemberships
name: group_members
properties:
realmId: ${realm.id}
groupId: ${group.id}
members:
- ${user.username}
Import
This resource does not support import. Instead of importing, feel free to create this resource as if it did not already exist on the server. 1: providers/keycloak/keycloak/latest/docs/resources/group_memberships