Skip to content

Commit

Permalink
Add e2e test
Browse files Browse the repository at this point in the history
  • Loading branch information
vikaschoudhary16 committed Sep 21, 2018
1 parent 3f2a86c commit 205721c
Show file tree
Hide file tree
Showing 9 changed files with 189 additions and 194 deletions.
2 changes: 1 addition & 1 deletion tests/e2e/generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ apiVersion: v1
kind: Secret
metadata:
name: aws-credentials-secret
namespace: default
namespace: openshift-machine-api-operator
type: Opaque
data:
awsAccessKeyId: $(echo -n $(aws configure get aws_access_key_id) | base64)
Expand Down
4 changes: 2 additions & 2 deletions tests/e2e/infra.tf
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ module "vpc" {
"10.0.103.0/24",
]

enable_nat_gateway = true
single_nat_gateway = true
enable_nat_gateway = false
single_nat_gateway = false

public_subnet_tags = {
Name = "${var.enviroment_id}-worker-foo"
Expand Down
212 changes: 42 additions & 170 deletions tests/e2e/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,12 @@ import (
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"

operatorclient "github.com/coreos-inc/tectonic-operators/operator-client/pkg/client"
operatorclienttypes "github.com/coreos-inc/tectonic-operators/operator-client/pkg/types"
"github.com/kubernetes-incubator/apiserver-builder/pkg/controller"
appsv1beta2 "k8s.io/api/apps/v1beta2"
apiv1 "k8s.io/api/core/v1"
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiextensionsclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/apimachinery/pkg/api/resource"
apiextensionsscheme "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/kubernetes"
Expand All @@ -37,7 +35,7 @@ const (
timeoutPoolMachineSetRunningInterval = 10 * time.Minute

defaultLogLevel = "info"
targetNamespace = "default"
targetNamespace = "openshift-machine-api-operator"
awsCredentialsSecretName = "aws-credentials-secret"
region = "us-east-1"
machineSetReplicas = 2
Expand All @@ -52,7 +50,6 @@ type TestConfig struct {
CAPIClient *clientset.Clientset
APIExtensionsClient *apiextensionsclientset.Clientset
KubeClient *kubernetes.Clientset
OperatorClient operatorclient.Interface
AWSClient *AWSClient
}

Expand All @@ -78,16 +75,14 @@ func NewTestConfig(kubeconfig string) *TestConfig {
glog.Fatalf("Could not create kubernetes client to talk to the apiserver: %v", err)
}

opclient := operatorclient.NewClient(kubeconfig)

return &TestConfig{
CAPIClient: capiclient,
APIExtensionsClient: apiextensionsclient,
KubeClient: kubeClient,
OperatorClient: opclient,
}
}

// Kube library
func createNamespace(testConfig *TestConfig, namespace string) error {
nsObj := &apiv1.Namespace{
ObjectMeta: metav1.ObjectMeta{
Expand Down Expand Up @@ -124,41 +119,6 @@ func createCRD(testConfig *TestConfig, crd *apiextensionsv1beta1.CustomResourceD
})
}

func createAppVersionCRD(testConfig *TestConfig) error {
appVersion := &operatorclienttypes.AppVersion{
TypeMeta: metav1.TypeMeta{
Kind: "AppVersion",
APIVersion: "tco.coreos.com/v1",
},
ObjectMeta: metav1.ObjectMeta{
Name: "machine-api",
Namespace: "tectonic-system",
Labels: map[string]string{
"managed-by-channel-operator": "true",
},
},
Spec: operatorclienttypes.AppVersionSpec{
DesiredVersion: "",
Paused: false,
},
Status: operatorclienttypes.AppVersionStatus{
CurrentVersion: "1",
Paused: false,
},
UpgradeReq: 1,
UpgradeComp: 0,
}

log.Infof("Creating %q AppVersion...", strings.Join([]string{appVersion.Namespace, appVersion.Name}, "/"))
if _, err := testConfig.OperatorClient.GetAppVersion("tectonic-system", "machine-api"); err != nil {
if _, err := testConfig.OperatorClient.CreateAppVersion(appVersion); err != nil {
return fmt.Errorf("unable to create AppVersion: %v", err)
}
}

return nil
}

func createConfigMap(testConfig *TestConfig, configMap *apiv1.ConfigMap) error {
log.Infof("Creating %q ConfigMap...", strings.Join([]string{configMap.Namespace, configMap.Name}, "/"))
if _, err := testConfig.KubeClient.CoreV1().ConfigMaps(configMap.Namespace).Get(configMap.Name, metav1.GetOptions{}); err != nil {
Expand Down Expand Up @@ -193,6 +153,7 @@ func createDeployment(testConfig *TestConfig, deployment *appsv1beta2.Deployment
return nil
}

// binary runner
func cmdRun(assetsDir string, binaryPath string, args ...string) error {
cmd := exec.Command(binaryPath, args...)
cmd.Stdin = os.Stdin
Expand Down Expand Up @@ -242,53 +203,46 @@ var rootCmd = &cobra.Command{
}

// generate assumed namespaces
if err := createNamespace(testConfig, "tectonic-system"); err != nil {
if err := createNamespace(testConfig, targetNamespace); err != nil {
return err
}

// create appVersion
crd := &apiextensionsv1beta1.CustomResourceDefinition{
ObjectMeta: metav1.ObjectMeta{
Name: "appversions.tco.coreos.com",
},
Spec: apiextensionsv1beta1.CustomResourceDefinitionSpec{
Group: "tco.coreos.com",
Version: "v1",
Names: apiextensionsv1beta1.CustomResourceDefinitionNames{
Plural: "appversions",
Kind: "AppVersion",
},
},
}

if err := createCRD(testConfig, crd); err != nil {
return err
}
// create status CRD
apiextensionsscheme.AddToScheme(scheme.Scheme)
decode := scheme.Codecs.UniversalDeserializer().Decode
if statusCRD, err := ioutil.ReadFile(filepath.Join(assetsPath, "manifests/status-crd.yaml")); err != nil {
glog.Fatalf("Error reading %#v", err)
} else {
CRDObj, _, err := decode([]byte(statusCRD), nil, nil)
if err != nil {
glog.Fatalf("Error decoding %#v", err)
}
CRD := CRDObj.(*apiextensionsv1beta1.CustomResourceDefinition)

if err := createAppVersionCRD(testConfig); err != nil {
return err
if err := createCRD(testConfig, CRD); err != nil {
return err
}
}

// genereate mao config
maoConfigTemplateData, err := ioutil.ReadFile(filepath.Join(assetsPath, "manifests/mao-config.yaml"))
if err != nil {
glog.Fatalf("Error reading %#v", err)
}

configValues := &render.OperatorConfig{
AWS: &render.AWSConfig{
ClusterID: clusterID,
ClusterName: clusterID,
Region: region,
},
}

maoConfigPopulatedData, err := render.Manifests(configValues, maoConfigTemplateData)
if err != nil {
glog.Fatalf("Unable to render manifests %q: %v", maoConfigTemplateData, err)
} else {
mapConfigMap := &apiv1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "mao-config-v1",
Name: "cluster-config-v1",
Namespace: "kube-system",
},
Data: map[string]string{
Expand All @@ -302,7 +256,6 @@ var rootCmd = &cobra.Command{

// secrets
// create cluster api server secrets
decode := scheme.Codecs.UniversalDeserializer().Decode
if secretData, err := ioutil.ReadFile(filepath.Join(assetsPath, "manifests/clusterapi-apiserver-certs.yaml")); err != nil {
glog.Fatalf("Error reading %#v", err)
} else {
Expand Down Expand Up @@ -351,112 +304,30 @@ var rootCmd = &cobra.Command{
}
testConfig.AWSClient = awsClient

// create operator
var replicas int32 = 1
runAsNonRoot := true
var runAsUser int64 = 65534

maoManifest := &appsv1beta2.Deployment{
ObjectMeta: metav1.ObjectMeta{
Name: "machine-api-operator",
Namespace: "kube-system",
Labels: map[string]string{
"k8s-app": "machine-api-operator",
"managed-by-channel-operator": "true",
},
},
Spec: appsv1beta2.DeploymentSpec{
Replicas: &replicas,
Selector: &metav1.LabelSelector{
MatchLabels: map[string]string{
"k8s-app": "machine-api-operator",
},
},
Template: apiv1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: map[string]string{
"k8s-app": "machine-api-operator",
"managed-by-channel-operator": "true",
},
},
Spec: apiv1.PodSpec{
Containers: []apiv1.Container{
{
Name: "machine-api-operator",
Image: maoImage,
Command: []string{
"/machine-api-operator",
},
Args: []string{
"-v=4",
},
Resources: apiv1.ResourceRequirements{
Limits: apiv1.ResourceList{
"cpu": resource.MustParse("20m"),
"memory": resource.MustParse("50Mi"),
},
Requests: apiv1.ResourceList{
"cpu": resource.MustParse("20m"),
"memory": resource.MustParse("50Mi"),
},
},
VolumeMounts: []apiv1.VolumeMount{
{
Name: "mao-config",
MountPath: "/etc/mao-config",
},
},
},
},
ImagePullSecrets: []apiv1.LocalObjectReference{
{
Name: "coreos-pull-secret",
},
},
NodeSelector: map[string]string{
"node-role.kubernetes.io/master": "",
},
RestartPolicy: "Always",
SecurityContext: &apiv1.PodSecurityContext{
RunAsNonRoot: &runAsNonRoot,
RunAsUser: &runAsUser,
},
Tolerations: []apiv1.Toleration{
{
Key: "node-role.kubernetes.io/master",
Operator: "Exists",
Effect: "NoSchedule",
},
},
Volumes: []apiv1.Volume{
{
Name: "mao-config",
VolumeSource: apiv1.VolumeSource{
ConfigMap: &apiv1.ConfigMapVolumeSource{
LocalObjectReference: apiv1.LocalObjectReference{
Name: "mao-config-v1",
},
Items: []apiv1.KeyToPath{
{
Key: "mao-config",
Path: "config",
},
},
},
},
},
},
},
},
},
// create operator deployment
type deploymentValues struct {
Image string
}

if err := createDeployment(testConfig, maoManifest); err != nil {
return err
dv := deploymentValues{
Image: maoImage,
}
if deploymentData, err := RenderTemplateFromFile(dv, filepath.Join(assetsPath, "manifests/operator-deployment.yaml")); err != nil {
glog.Fatalf("Error reading %#v", err)
} else {
deploymentObj, _, err := decode([]byte(deploymentData), nil, nil)
if err != nil {
glog.Fatalf("Error decoding %#v", err)
}
deployment := deploymentObj.(*appsv1beta2.Deployment)
if err := createDeployment(testConfig, deployment); err != nil {
return err
}
}

// TESTS
// verify the cluster-api is running
err = wait.Poll(pollInterval, timeoutPoolClusterAPIDeploymentInterval, func() (bool, error) {
if clusterAPIDeployment, err := testConfig.KubeClient.AppsV1beta2().Deployments("default").Get("clusterapi-apiserver", metav1.GetOptions{}); err == nil {
if clusterAPIDeployment, err := testConfig.KubeClient.AppsV1beta2().Deployments(targetNamespace).Get("clusterapi-apiserver", metav1.GetOptions{}); err == nil {
// Check all the pods are running
log.Infof("Waiting for all cluster-api deployment pods to be ready, have %v, expecting 1", clusterAPIDeployment.Status.ReadyReplicas)
if clusterAPIDeployment.Status.ReadyReplicas < 1 {
Expand Down Expand Up @@ -507,6 +378,7 @@ var rootCmd = &cobra.Command{
log.Info("The cluster-api stack is ready")
log.Info("The cluster, the machineSet and the machines have been deployed")

// verify aws instances are running
err = wait.Poll(pollInterval, timeoutPoolAWSInterval, func() (bool, error) {
log.Info("Waiting for aws instances to come up")
runningInstances, err := testConfig.AWSClient.GetRunningInstances(clusterID)
Expand Down
6 changes: 3 additions & 3 deletions tests/e2e/manifests/clusterapi-apiserver-certs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ kind: Secret
type: kubernetes.io/tls
metadata:
name: cluster-apiserver-certs
namespace: default
namespace: openshift-machine-api-operator
labels:
api: clusterapi
apiserver: "true"
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURZRENDQWtpZ0F3SUJBZ0lJVld0dEpOQWI0YzB3RFFZSktvWklodmNOQVFFTEJRQXdLekVwTUNjR0ExVUUKQXhNZ1kyeDFjM1JsY21Gd2FTMWpaWEowYVdacFkyRjBaUzFoZFhSb2IzSnBkSGt3SGhjTk1UZ3dOekV3TURnegpPRFE0V2hjTk1Ua3dOekV3TURnek9EUTVXakFoTVI4d0hRWURWUVFERXhaamJIVnpkR1Z5WVhCcExtUmxabUYxCmJIUXVjM1pqTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF5NG9mZkw5aVR2c0EKeEEraWVDcndnMVZmQTA0S2FVcEF6ODNPWVE5dUtxVXMxQWRQdTBtd2ljcXkzcW1EaHNic3QyOW1peFJ2MTNZbgpUYjFGcGNITTFteitzWjE1UDlBRGtKWnFNdXJ6RC80N1dBVXBwWERqNlJxd2xmTk55MmN1bzJiYTNxc1ZrM051CmJJK1prMFhYMFJjT3o0dXo5a1IxYk5nL3BGTU5lcDBJQ25sNDg0SVpKRUs2QldnU1l3M25pSFRjbU1CVXg5MWEKZ1NxUHJFZkN1TDBJZGMwbGk0Y1d0UUVpb0NOSUdpV3pjb2ZEU01hcUU0SUZ3Sjc0ZVlENDIzckdjVGhyUCt0MApxbW1Qa2ZSRXltUlFHeGswVDVHMzVnUXJpZnNQMENVOXNlK05rMVlMMG9mVktlc1gvZjdFRUkxL0VQNExIKzVJCmttSnBaOHdMTVFJREFRQUJvNEdSTUlHT01BNEdBMVVkRHdFQi93UUVBd0lGb0RBVEJnTlZIU1VFRERBS0JnZ3IKQmdFRkJRY0RBVEJuQmdOVkhSRUVZREJlZ2dwamJIVnpkR1Z5WVhCcGdoSmpiSFZ6ZEdWeVlYQnBMbVJsWm1GMQpiSFNDRm1Oc2RYTjBaWEpoY0drdVpHVm1ZWFZzZEM1emRtT0NKR05zZFhOMFpYSmhjR2t1WkdWbVlYVnNkQzV6CmRtTXVZMngxYzNSbGNpNXNiMk5oYkRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWRiZ00zOTBpNVhSbWVONTUKSG9Zcm5HOEUvakxqQW1kRnZTYlUzM25YY25UTnJwV083NHlSRUxYY2NjRm4vZ3FuUWI1NU5KV2M5NDdnVll6TQpwT1JSb3Z3TE5nUlpFSUdkRWhPT1JIaWorOWdNQUUyeVM2c1kzYnhnM3ZzM01aMmxJZmQ1aWpKUnFHcE1hdTBiCkthR2EzamRKYjE0R3VXWElqcDJpOUlNSkxxZUxlTVVOMFMxS055dmlzY05MYjJEQjF3VTY5SDlLZFhUWDFjK0MKSUVhYjIyeXpFZWJiT2RUK2NDOVZWbEZ2RzdlaDZ1c3Ryd3JRSDdkMkhid1krWVgvRWszY1k1M0R5WjltL1FWZgpEOFZvUFIyYmdaWE5GeEozMFlldXM0MTl0c290TUp2L01zTWJKT0l6TEVZUElBeHJab25sUVlDQXZzZ2pIT3FuCkFDS2l3UT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBeTRvZmZMOWlUdnNBeEEraWVDcndnMVZmQTA0S2FVcEF6ODNPWVE5dUtxVXMxQWRQCnUwbXdpY3F5M3FtRGhzYnN0MjltaXhSdjEzWW5UYjFGcGNITTFteitzWjE1UDlBRGtKWnFNdXJ6RC80N1dBVXAKcFhEajZScXdsZk5OeTJjdW8yYmEzcXNWazNOdWJJK1prMFhYMFJjT3o0dXo5a1IxYk5nL3BGTU5lcDBJQ25sNAo4NElaSkVLNkJXZ1NZdzNuaUhUY21NQlV4OTFhZ1NxUHJFZkN1TDBJZGMwbGk0Y1d0UUVpb0NOSUdpV3pjb2ZEClNNYXFFNElGd0o3NGVZRDQyM3JHY1RoclArdDBxbW1Qa2ZSRXltUlFHeGswVDVHMzVnUXJpZnNQMENVOXNlK04KazFZTDBvZlZLZXNYL2Y3RUVJMS9FUDRMSCs1SWttSnBaOHdMTVFJREFRQUJBb0lCQUh2WCt2aW9hbVNzRFBjKwpuQmlKNS9YQlNDSjJwWmNTK3dSMXNSRVZsbTZVT2daNHZHYTBtNW43bjRJam1rZXpXZXp5OTIzQWJaeW40NXBGCmc4OHJjRHMzN25DYjVGNlRidGZXN1o4MW5kY3BWV3BsR2NYMFBuaGpLUGJVSjQyUHBxejl0RWF2eWwwQmF6cmEKMVJMcStEbmMwY0l1dXIwcFFsbUw2bzFOaTNJQ2JFWno5bGJvZTJtS3FKTkpGRC9qUlRIQ1EzaEJnK3lXNUxscgpwN0Flbk1kOGlvTHl0algrcjB4N3QvU25nNWFQeFlZVjR5WTlCQ1RFQm05SWJBL3dyK1lDS0lqNlJidm9EcmVtClNGQkNvWjNSdllnYklOSlRqSEkvSnVrYlZLOFdzQmJYOXRadWM3RVhiU3M1V2MxbUZyamdYNVVkdHhENGs5WHgKVXNyNjdRRUNnWUVBNTRUM0JFVzIxNWxmbnpMY3Azdmk4S1grYUJKcWFrM0tCSmFWSEN2ZVBsemtaYmJZQ2R2dApudnRCYW5rNTI3d0xMbHFPd0ZHdnBVdWE0YlpkRi9HZE9sZjI2Qk1weU9uT0pyRElPdGVZek1ieU5ZWkVDWmswCkg1VmlTNys5cjJZZG1Fbm9ycHVrdXVacTIrejg3VVRwYU4yOHFyazIrMHd4VVY0ckFKejlLNGtDZ1lFQTRRL0UKWHNnTHpMYUhkMktMa3h4dUw4aTFwUkdXL0tUK1pmYk9DcnJ5YU1QeFlNYytmamJML3pEYmMxUUl4c3cvWHAwWgpmUVVCMStnN2dPQlVjcGdXc1kzTXAyc3BVdEYrVkxzUmVWcy9MdnBPMHdBZUt3TGMzdmxGMjFIeExIbDNvK0dsCkpqYU1URlFmQ2dQMDhKRVRSb0hqbVNyaG5RV2l5djVCa3VFUHNHa0NnWUVBejhRT1hTSW01TEo2RW9iMVo4UVEKczc5ellIZnVVYm0vYW9Dc0RaejhrK0NQQXd5a01helJRTlBnTDZuY2wybllhdC9QcloxZzBDamFOR2FRZ3BWTQpjUGhSMXBDajllNkVGMHFjVmRuM0FRWWtoSTRhYnJhekJRanRMbWRDMWE0Qkx4SmNvcDJBcGsxelppdjJDd1BGCnAxc2VIZU9iQ01lbWxvdTRjWk53eTJrQ2dZRUFoRXlkZGM0SXlhMGUwdm8xN0NPUlRqdWhNOGkwUmczRGtqTFUKQ2hDOVFRSzJHTnJuREpDdnVIS0MvamVPOVRYSnBwZVpEUm50YkhzU3gzNlhoY21MeFpJQ2xRUDBoYitxa0twcQo2ampPV3BJLzFkOUMzS3ZSSkszSjk5UWlmcTlrdWd5QjVZVzVVWUU5d2NoenF4ck5CdXlCMjE4T3d4dzJCemdSCldnTTlFc2tDZ1lFQWw4UWRkZTd3Vk1qY2kzRFRzdGdWdHZ1UWsvWVB0N0RNU2JXU3BrQTQ3azRWQWdtdVJyQ3QKRjBXMCtDdG1BbWhRckhYaHE3TTFUc1Z6QjNzRkY2cDlzZnN4MTVFK3lEOTJ6aGVIdEJrL0dkeU91eUlvNjFoQwpicUFzcEo0eWRRWDJKM2ttLy85azhuSFpUSThydDhUbHIwS3c0alZoR3hsMEdtS3lacWRtb0RNPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURYVENDQWtVQ0NRRHNiVVNjRmFXTmh6QU5CZ2txaGtpRzl3MEJBUVVGQURCcU1Rc3dDUVlEVlFRR0V3SjEKYmpFTE1Ba0dBMVVFQ0F3Q2MzUXhDakFJQmdOVkJBY01BV3d4Q2pBSUJnTlZCQW9NQVc4eEN6QUpCZ05WQkFzTQpBbTkxTVNrd0p3WURWUVFERENCamJIVnpkR1Z5WVhCcExXTmxjblJwWm1sallYUmxMV0YxZEdodmNtbDBlVEFlCkZ3MHhPREE1TWpBeE1EVXhNVEJhRncweE9UQTVNakF4TURVeE1UQmFNSGN4Q3pBSkJnTlZCQVlUQW5WdU1Rc3cKQ1FZRFZRUUlEQUp6ZERFS01BZ0dBMVVFQnd3QmJERUtNQWdHQTFVRUNnd0JiekVMTUFrR0ExVUVDd3dDYjNVeApOakEwQmdOVkJBTU1MV05zZFhOMFpYSmhjR2t1YjNCbGJuTm9hV1owTFcxaFkyaHBibVV0WVhCcExXOXdaWEpoCmRHOXlMbk4yWXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSjEvWFBUeXFCbEgKMkd4MThzaWh1SGt4Z0JqTmM1SlZLeWNOZFFZNjBxR1pmRk44amV4VFJvRC9tUFl5TjdFM0JzY2t4VFRuMmNnbwo5OERaNW1hRDJHRkh5dDE3VXROVnBZc0UrRW1MbXRHV2lxUmtvRW9LeHFxZG80dm1DaGNVaGtUaW5tYUFXYWxoCjNiTnJoaS9zdHE0K1FrOVdJRFZIRDBld3UrMFhQeU9NTytNVGR6VE0xZ0dZb0JWeU03UW5haHl6amd2SktFVkwKMUdJS05ZaXJpdjZSQTZLZEg1T2tMU2tOenM4aElKWlVKclFJbVBmRkZYbHQ5YjUwQmZYeHp2U05LUGZsdXNDRgpwT09jVEl1NzhXSnVWd0FRMlh5R0lMVGtsZVlzOGpod3NvSFpCcitlMjJpWkVyYXlYYVQzQmVWZVNJVjVQU25GClF0LzE4R3hwYWNNQ0F3RUFBVEFOQmdrcWhraUc5dzBCQVFVRkFBT0NBUUVBdnIxZ2lydUxnRTBUVTh2YWtDVi8Ka1VLWlUvRzRSMHNBTDl4RzFwcmJKRWd2QjREcjcxd1UvS3B5NDNldmZYTFh1SENPRTNwL1Z4a2pWd0twZzZadQp5VmNxSUdYRGY4UzRmVlcxZkdQazhFMWxnNmN6N2xyUlp3ekgyMExlVDhpUDZNZWFTSUppMUloOUdTcXRlUlZYCnpJOEpvMC9FOFJQVllPQkhxNm5hQzhDajhpYXYwdWc3UFFHTTNqaUFzYmVQL3lDb2NCUVVBeXhpVzBhS1Y2Z0QKWGRUWU90N20xYzJRSEVpRENNNGtjUzN2NDZrOW1IcDQ4S2VtYVZmY3dibjVVQjl2emthcjg5Z2hFUDFQVXhCcAoxdGZKcFpxQmI1WmlBM3h3djVsWnVETzR6QTdrSXBYT2pzcXF6ZWtCTkcrMnMwYzJTZGJ4b2tvZ2RNU1NVMTBiCkZRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ2RmMXowOHFnWlI5aHMKZGZMSW9iaDVNWUFZelhPU1ZTc25EWFVHT3RLaG1YeFRmSTNzVTBhQS81ajJNamV4TndiSEpNVTA1OW5JS1BmQQoyZVptZzloaFI4cmRlMUxUVmFXTEJQaEppNXJSbG9xa1pLQktDc2FxbmFPTDVnb1hGSVpFNHA1bWdGbXBZZDJ6CmE0WXY3TGF1UGtKUFZpQTFSdzlIc0x2dEZ6OGpqRHZqRTNjMHpOWUJtS0FWY2pPMEoyb2NzNDRMeVNoRlM5UmkKQ2pXSXE0citrUU9pblIrVHBDMHBEYzdQSVNDV1ZDYTBDSmozeFJWNWJmVytkQVgxOGM3MGpTajM1YnJBaGFUagpuRXlMdS9GaWJsY0FFTmw4aGlDMDVKWG1MUEk0Y0xLQjJRYS9udHRvbVJLMnNsMms5d1hsWGtpRmVUMHB4VUxmCjlmQnNhV25EQWdNQkFBRUNnZ0VBYWQ5UEJwNEVJQkpxeXVZeTBXbmREeU1XWUJYa0JjOVkxY1MzRVB3RDBYdlMKMW5CWkd5OFRxdTJtem9FTmJRUjNldkVkM0NXckFXR0F3bFA0REp1K25nNWJzYTBRRFY1NmpNeEhkM0R3SHNuYQo0dzE5cnFnMXlrVnp4anhhTmcrbS9yRjBGNlZhSUlIWVBaOGZNaUltMzFTYzBLWXR1b0xOSTcwTFp5S0VZQWo3CnpoeDhHUGdXcEdzZXdLeU4yUnJZMnVKTWdCOHE2QmxWSUZINC9SaGF6eWo0VkY4RlZjS3Y5N1NGZW93aGUxWmgKbXA5Zm95TXBqNTY1TDRmNFB6dXZiNU5CL3Racnl6aUdVYnY1aDVhQllTZ0V5RXVuVGdpQ0tUNG1tSGpvZC94dApSdzFlaStHMGdtcmszNWpiMTBtb2FHTE0yMEpmT1o0MHp4ZnQ0ZWtUcVFLQmdRRE1BSG5jbW12YXBLZnljM1ArClJNTTFwRzE3T3VTdkp6UWJaQ0lzMnpaKy94ellZL3NnVnZiMkNXbWluQWEvWWh0WHRsQStpUGZLbk9oN2ZMVXAKRVh2a1ZaUkw0d3BhTDlZWEwyTzhyVXFSOE9UQVp5OVB3YUIrNWdTV3NSbHAxb05DSlV0NjVVdXFoNndpVi9TNQozNFROYlU1N2dQQVNxa3h4dUg2bWJRd0lKd0tCZ1FERnBHTDY1aUQraTJOaEJGdkM4Rk5xM2cwU2JKa1RoNDgzCmo3c1ZxNTUwdmhPUXZIWGI1dSsza051L1NRRzAxUDVOK0tRNmdUSFVNUzNUcVlFaEF6eFNFajFCT2UyZEw4OWgKOGo2MjF1Zm84WVBLRVlmVFdEZVNHTW05OVc2a2VSNldER0c1QWcyQkRwUmZnRVA1VjQyUmkxZFU4OElqcFp5Lwp6b3gvd1ZoWEJRS0JnUUMrbnJzLzdYTldiSUVhUmROZkJuVzV6QmtaQ3VEZzRhc0k1VG9oMi94Q0VyT3JaMUVpCjJPQU82cUN3ZDBhKzBqZG1jRTd2QUNFNlMvL1lVNkViN09CdGJhSVNmdVlQZTU5N0xxYnRpS2VqVXdzTTFkNFoKa240YjFXYjRRQ2ZWQThMR3JmNm5xVlpZMUVsK0ZkM3hTUERZMjRoNFV2VUJHK3d1WHd6SkNpQXlCUUtCZ0ZTMwpDSUlZd0EyN08yYXJVcFcxSTF4TVAzZ2xPbHZub0JpbHNBQXk1cUdOazU5WFdJRmdkR0hQWXBHVVBubi9UZDJuCjlPVHEyYXZsUklwVVBuZ2pCZWo3em11MTQ4YWJacDNLRXQyV01pTmoyaVJ6N1M5R3dkTUtjdmJNUzVlT0h2RWIKNzRzNGVRZFhjM3VYNUFydFgwNENWdldmNGhnYmRadTFjZjJVcDBQdEFvR0FmaXFHNzNXSFcrZGc5VzJLRkpDcQpEY0RDVGRSeUpXRUpsdG14dVpIK3AwdlNHc1F6T0ZUczUrYmp3SCtPZ21DbmJFT3o0aWFFbTZvbXp0OTlkT1dXCkZpNWVvNmFPT01LS1d4bG51WXNDVU5rYXJSY0F5dHlYRlA1RklGd2Ntb3Vwa3Z4K3VzZ0o4c0YyYzZIOGNvYmMKRHh6RGZMRVB6WWs4UVZraytaM01jcms9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
# TODO: generate this dynamically
2 changes: 1 addition & 1 deletion tests/e2e/manifests/ign-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: v1
kind: Secret
metadata:
name: ignition-worker
namespace: default
namespace: openshift-machine-api-operator
type: Opaque
data:
userData: ""
Loading

0 comments on commit 205721c

Please sign in to comment.