Skip to content
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
5 changes: 5 additions & 0 deletions pkg/signet_node/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ const (

// Component name
ComponentKind = "the-builder:index:SignetNode"

// Default mount paths for volumes
DefaultSignetNodeDataMountPath = "/root/.local/share/reth"
DefaultRollupDataMountPath = "/root/.local/share/exex"
DefaultExecutionJwtMountPath = "/etc/reth/execution-jwt"
)

// Resource name suffixes
Expand Down
9 changes: 6 additions & 3 deletions pkg/signet_node/signet_node.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ import (
)

func NewSignetNode(ctx *pulumi.Context, args SignetNodeComponentArgs, opts ...pulumi.ResourceOption) (*SignetNodeComponent, error) {
// Apply defaults before validation
args.ApplyDefaults()

if err := args.Validate(); err != nil {
return nil, fmt.Errorf("invalid signet node component args: %w", err)
}
Expand Down Expand Up @@ -205,15 +208,15 @@ func NewSignetNode(ctx *pulumi.Context, args SignetNodeComponentArgs, opts ...pu
VolumeMounts: corev1.VolumeMountArray{
corev1.VolumeMountArgs{
Name: pulumi.String("signet-node-data"),
MountPath: pulumi.String("/root/.local/share/reth"),
MountPath: internalArgs.SignetNodeDataMountPath,
},
corev1.VolumeMountArgs{
Name: pulumi.String("rollup-data"),
MountPath: pulumi.String("/root/.local/share/exex"),
MountPath: internalArgs.RollupDataMountPath,
},
corev1.VolumeMountArgs{
Name: pulumi.String("execution-jwt"),
MountPath: pulumi.String("/etc/reth/execution-jwt"),
MountPath: internalArgs.ExecutionJwtMountPath,
},
},
Resources: NewResourceRequirements("2", "16Gi", "2", "4Gi"),
Expand Down
9 changes: 9 additions & 0 deletions pkg/signet_node/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ type SignetNodeComponentArgs struct {
ExecutionClientStartCommand []string
ConsensusClientStartCommand []string
AppLabels AppLabels
SignetNodeDataMountPath string // Optional: defaults to "/root/.local/share/reth"
RollupDataMountPath string // Optional: defaults to "/root/.local/share/exex"
ExecutionJwtMountPath string // Optional: defaults to "/etc/reth/execution-jwt"
}

// Internal structs with Pulumi types for use within the component
Expand All @@ -45,6 +48,9 @@ type signetNodeComponentArgsInternal struct {
ExecutionClientStartCommand pulumi.StringArrayInput
ConsensusClientStartCommand pulumi.StringArrayInput
AppLabels AppLabels
SignetNodeDataMountPath pulumi.StringInput
RollupDataMountPath pulumi.StringInput
ExecutionJwtMountPath pulumi.StringInput
}

type SignetNodeComponent struct {
Expand Down Expand Up @@ -132,6 +138,9 @@ func (args SignetNodeComponentArgs) toInternal() signetNodeComponentArgsInternal
ExecutionClientStartCommand: pulumi.ToStringArray(args.ExecutionClientStartCommand),
ConsensusClientStartCommand: pulumi.ToStringArray(args.ConsensusClientStartCommand),
AppLabels: args.AppLabels,
SignetNodeDataMountPath: pulumi.String(args.SignetNodeDataMountPath),
RollupDataMountPath: pulumi.String(args.RollupDataMountPath),
ExecutionJwtMountPath: pulumi.String(args.ExecutionJwtMountPath),
}
}

Expand Down
13 changes: 13 additions & 0 deletions pkg/signet_node/validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@ import (
"fmt"
)

// ApplyDefaults sets default values for optional fields
func (args *SignetNodeComponentArgs) ApplyDefaults() {
if args.SignetNodeDataMountPath == "" {
args.SignetNodeDataMountPath = DefaultSignetNodeDataMountPath
}
if args.RollupDataMountPath == "" {
args.RollupDataMountPath = DefaultRollupDataMountPath
}
if args.ExecutionJwtMountPath == "" {
args.ExecutionJwtMountPath = DefaultExecutionJwtMountPath
}
}

func (args *SignetNodeComponentArgs) Validate() error {
if args.Name == "" {
return fmt.Errorf("name is required")
Expand Down
32 changes: 32 additions & 0 deletions pkg/signet_node/validation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,3 +141,35 @@ func TestSignetNodeComponentArgsValidate(t *testing.T) {
assert.Error(t, err)
assert.Contains(t, err.Error(), "execution pvc size is required")
}

func TestApplyDefaults(t *testing.T) {
// Test with no mount paths specified
args := SignetNodeComponentArgs{}
args.ApplyDefaults()

assert.Equal(t, DefaultSignetNodeDataMountPath, args.SignetNodeDataMountPath)
assert.Equal(t, DefaultRollupDataMountPath, args.RollupDataMountPath)
assert.Equal(t, DefaultExecutionJwtMountPath, args.ExecutionJwtMountPath)

// Test with custom mount paths
customArgs := SignetNodeComponentArgs{
SignetNodeDataMountPath: "/custom/signet/data",
RollupDataMountPath: "/custom/rollup/data",
ExecutionJwtMountPath: "/custom/jwt",
}
customArgs.ApplyDefaults()

assert.Equal(t, "/custom/signet/data", customArgs.SignetNodeDataMountPath)
assert.Equal(t, "/custom/rollup/data", customArgs.RollupDataMountPath)
assert.Equal(t, "/custom/jwt", customArgs.ExecutionJwtMountPath)

// Test with partial custom mount paths
partialArgs := SignetNodeComponentArgs{
SignetNodeDataMountPath: "/custom/signet/data",
}
partialArgs.ApplyDefaults()

assert.Equal(t, "/custom/signet/data", partialArgs.SignetNodeDataMountPath)
assert.Equal(t, DefaultRollupDataMountPath, partialArgs.RollupDataMountPath)
assert.Equal(t, DefaultExecutionJwtMountPath, partialArgs.ExecutionJwtMountPath)
}
Loading