Skip to content
Open
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
15 changes: 6 additions & 9 deletions .github/workflows/airgap-cluster-provisioning.yml
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,7 @@ jobs:
cleanup: true
terraform:
cni: "${{ vars.CNI }}"
defaultClusterRoleForProjectMembers: "true"
enableNetworkPolicy: false
defaultClusterRoleForProjectMembers: "<HB_CLUSTER_ROLE_FOR_PROJECT_MEMBERS>"
localCluster: "${{ env.LOCAL_CLUSTER_TYPE }}"
provider: "${{ vars.PROVIDER_AMAZON }}"
privateKeyPath: "${{ secrets.TFP_SSH_PRIVATE_KEY_PATH }}"
Expand Down Expand Up @@ -234,7 +233,7 @@ jobs:
registryName: "${{ env.HOSTNAME_PREFIX }}"
useAuthGlobalRegistry: false
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

clusterConfig:
Expand Down Expand Up @@ -499,8 +498,7 @@ jobs:
cleanup: true
terraform:
cni: "${{ vars.CNI }}"
defaultClusterRoleForProjectMembers: "true"
enableNetworkPolicy: false
defaultClusterRoleForProjectMembers: "<HB_CLUSTER_ROLE_FOR_PROJECT_MEMBERS>"
localCluster: "${{ env.LOCAL_CLUSTER_TYPE }}"
provider: "${{ vars.PROVIDER_AMAZON }}"
privateKeyPath: "${{ secrets.TFP_SSH_PRIVATE_KEY_PATH }}"
Expand Down Expand Up @@ -554,7 +552,7 @@ jobs:
registryName: "${{ env.HOSTNAME_PREFIX }}"
useAuthGlobalRegistry: false
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

clusterConfig:
Expand Down Expand Up @@ -819,8 +817,7 @@ jobs:
cleanup: true
terraform:
cni: "${{ vars.CNI }}"
defaultClusterRoleForProjectMembers: "true"
enableNetworkPolicy: false
defaultClusterRoleForProjectMembers: "<HB_CLUSTER_ROLE_FOR_PROJECT_MEMBERS>"
localCluster: "${{ env.LOCAL_CLUSTER_TYPE }}"
provider: "${{ vars.PROVIDER_AMAZON }}"
privateKeyPath: "${{ secrets.TFP_SSH_PRIVATE_KEY_PATH }}"
Expand Down Expand Up @@ -874,7 +871,7 @@ jobs:
registryName: "${{ env.HOSTNAME_PREFIX }}"
useAuthGlobalRegistry: false
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

clusterConfig:
Expand Down
354 changes: 35 additions & 319 deletions .github/workflows/cluster-provisioning.yml

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions .github/workflows/day2-ops-dualstack-rancher.yml
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_15 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

scalingInput:
Expand Down Expand Up @@ -622,7 +622,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_14 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

scalingInput:
Expand Down Expand Up @@ -998,7 +998,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_13 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

scalingInput:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/day2-ops-ipv6-rancher.yml
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_15 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

scalingInput:
Expand Down Expand Up @@ -625,7 +625,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_14 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

scalingInput:
Expand Down Expand Up @@ -1002,7 +1002,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_13 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

scalingInput:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/day2-ops-proxy-rancher.yml
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_15 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

scalingInput:
Expand Down Expand Up @@ -634,7 +634,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_14 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

scalingInput:
Expand Down Expand Up @@ -1023,7 +1023,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_13 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

scalingInput:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/day2-ops-rancher-prime.yml
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_14 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

clusterConfig:
Expand Down Expand Up @@ -549,7 +549,7 @@ jobs:
repo: "${{ env.RANCHER_REPO }}"
rke2Version: "${{ vars.RKE2_VERSION_2_13 }}"
terratest:
pathToRepo: "${{ secrets.PATH_TO_REPO }}"
pathToRepo: "${{ secrets.HB_PATH_TO_TFP_REPO }}"
standaloneLogging: ${{ vars.TERRAFORM_LOGGING }}

clusterConfig:
Expand Down
59 changes: 59 additions & 0 deletions actions/config/defaults/defaults.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package defaults

import (
"fmt"
"os"
"regexp"
"strings"

"github.com/rancher/shepherd/pkg/config"
Expand All @@ -15,6 +17,8 @@ const (
K3S = "k3s"
)

var placeholderRegex = regexp.MustCompile(`<[^<>]+>`)

// LoadPackageDefaults loads the specified filename in the same package as the test
func LoadPackageDefaults(cattleConfig map[string]any, filePath string) (map[string]any, error) {
var defaultsConfig map[string]any
Expand Down Expand Up @@ -112,3 +116,58 @@ func DeepMerge(mergingMap map[string]any, baseMap map[string]any, OneToOneListMa

return output, nil
}

// VerifyCattleConfig checks for unresolved required and placeholder values.
// It logs an error for each required path and a warning for each placeholder path.
func VerifyCattleConfig(cattleConfig map[string]any) error {
requiredPaths, placeholderPaths := verifyConfigValue("", cattleConfig)

for _, requiredPath := range requiredPaths {
logrus.Errorf("Required config value is not set at path: %s", requiredPath)
}

for _, placeholderPath := range placeholderPaths {
logrus.Warningf("Config value contains unresolved placeholder at path: %s", placeholderPath)
}

if len(requiredPaths) > 0 {
return fmt.Errorf("required config values are not set at: %s", strings.Join(requiredPaths, ", "))
}

return nil
}

func verifyConfigValue(path string, value any) ([]string, []string) {
var requiredPaths []string
var placeholderPaths []string

switch typedValue := value.(type) {
case map[string]any:
for key, nestedValue := range typedValue {
nextPath := key
if path != "" {
nextPath = path + "." + key
}
nestedRequired, nestedPlaceholder := verifyConfigValue(nextPath, nestedValue)
requiredPaths = append(requiredPaths, nestedRequired...)
placeholderPaths = append(placeholderPaths, nestedPlaceholder...)
}
case []any:
for i, nestedValue := range typedValue {
nextPath := fmt.Sprintf("%s[%d]", path, i)
nestedRequired, nestedPlaceholder := verifyConfigValue(nextPath, nestedValue)
requiredPaths = append(requiredPaths, nestedRequired...)
placeholderPaths = append(placeholderPaths, nestedPlaceholder...)
}
case string:
if strings.Contains(typedValue, "<required>") {
requiredPaths = append(requiredPaths, path)
}

if placeholderRegex.MatchString(typedValue) {
placeholderPaths = append(placeholderPaths, path)
}
}

return requiredPaths, placeholderPaths
}
Loading
Loading