eks-anywhere icon indicating copy to clipboard operation
eks-anywhere copied to clipboard

WIP: Nutanix provider code changes

Open deepakm-ntnx opened this issue 2 years ago • 2 comments

Issue #, if available:

Description of changes:

Testing (if applicable):

Download bundle-release.yaml as follows:

wget https://dev-release-prod-pdx.s3.us-west-2.amazonaws.com/bundle-release.yaml

Also download latest eksa-components.yaml from by taking the latest url from above yaml and copy it to respective dir

wget https://dev-release-assets.eks-anywhere.model-rocket.aws.dev/artifacts/v0.0.0-dev-build.3556/eks-anywhere/manifests/cluster-controller/v0.10.1/eksa-components.yaml
mv eksa-components.yaml config/manifest/eksa-components.yaml

Note: update following for all version of k8s in this file (total 3 times)

Eksa.components.uri:
uri: https://raw.githubusercontent.com/aws/eks-anywhere/f0e321f210522f41fd5c5a67f395f4dda8c7adbc/config/manifest/eksa-components.yaml

And add following for all version of k8s in this file (total 3/4 times based on supported k8s version) in bundle-release.yaml

      nutanix:
        clusterAPIController:
          arch:
            - amd64
          description: Container image for cluster-api-nutanix-controller image
          imageDigest: sha256:49cb349b634d6ed66b443413bc3ac01290ea441bc3743003cbbc45f7bcff7b8b
          name: cluster-api-nutanix-controller
          os: linux
          uri: ghcr.io/nutanix-cloud-native/cluster-api-provider-nutanix/controller:v0.4.0
        clusterTemplate:
          uri: https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/download/v0.4.0/cluster-template.yaml
        components:
          uri: https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/download/v0.4.0/infrastructure-components.yaml
        metadata:
          uri: https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/download/v0.4.0/metadata.yaml
        version: v0.4.0
export GO111MODULE=on
export GOPATH=/Users/deepak.muley/go

make generate-manifests

make manifests -C release
make release-manifests

BUNDLE_MANIFEST_URL=./bundle-release.yaml make eks-a

export CLUSTER_NAME=nutanix-dev-cluster
export CLUSTER_NS=eksa-system
export NUTANIX_PROVIDER=true 
bin/eksctl-anywhere generate clusterconfig ${CLUSTER_NAME} --provider nutanix > ${CLUSTER_NAME}.yaml

Create Cluster

bin/eksctl-anywhere create cluster -f ./${CLUSTER_NAME}.yaml --bundles-override ./bundle-release.yaml  
Performing setup and validations
Warning: The nutanix infrastructure provider is still in development and should not be used in production
✅ Nutanix Provider setup is valid
✅ Validate certificate for registry mirror
✅ Create preflight validations pass
Creating new bootstrap cluster
Installing cluster-api providers on bootstrap cluster
Provider specific post-setup
Creating new workload cluster
Installing networking on workload cluster
Installing storage class on workload cluster
Installing cluster-api providers on workload cluster
Installing EKS-A secrets on workload cluster
Moving cluster management from bootstrap to workload cluster
Installing EKS-A custom components (CRD and controller) on workload cluster
Creating EKS-A CRDs instances on workload cluster
Installing AddonManager and GitOps Toolkit on workload cluster
GitOps field not specified, bootstrap flux skipped
Writing cluster config file
Deleting bootstrap cluster
🎉 Cluster created!
kubectl --kubeconfig ./${CLUSTER_NAME}/${CLUSTER_NAME}-eks-a-cluster.kubeconfig get nodes,ns

kubectl --kubeconfig ./${CLUSTER_NAME}/${CLUSTER_NAME}-eks-a-cluster.kubeconfig get Cluster 

kubectl --kubeconfig ./${CLUSTER_NAME}/${CLUSTER_NAME}-eks-a-cluster.kubeconfig -n ${CLUSTER_NS} get Machine

To run tests locally for nutanix, set following env vars an then run test

export T_BUNDLES_OVERRIDE=true
export NUTANIX_PROVIDER=true

export T_NUTANIX_ENDPOINT=
export T_NUTANIX_PORT=9440
export T_NUTANIX_USER=
export T_NUTANIX_PASSWORD=
export T_NUTANIX_INSECURE=true

export T_NUTANIX_MACHINE_BOOT_TYPE=legacy
export T_NUTANIX_MACHINE_MEMORY_SIZE=4Gi
export T_NUTANIX_SYSTEMDISK_SIZE=40Gi
export T_NUTANIX_MACHINE_VCPU_PER_SOCKET=1
export T_NUTANIX_MACHINE_VCPU_SOCKET=2

export T_NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME=ubuntu-2004-kube-v1.21.10
export T_NUTANIX_PRISM_ELEMENT_CLUSTER_NAME=
export T_NUTANIX_SSH_AUTHORIZED_KEY=""
export T_NUTANIX_SUBNET_NAME=

export T_NUTANIX_CONTROL_PLANE_ENDPOINT_IP=
export T_NUTANIX_POD_CIDR="172.20.0.0/16"
export T_NUTANIX_SERVICE_CIDR="172.19.0.0/16"

LOCAL_E2E_TESTS=TestNutanixKubernetes121SimpleFlow BUNDLE_MANIFEST_URL=./bundle-release.yaml make local-e2e

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

deepakm-ntnx avatar May 23 '22 23:05 deepakm-ntnx

Hi @deepakm-ntnx. Thanks for your PR.

I'm waiting for a aws member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

eks-distro-bot avatar May 23 '22 23:05 eks-distro-bot

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: To complete the pull request process, please assign ptrivedi after the PR has been reviewed. You can assign the PR to them by writing /assign @ptrivedi in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment

eks-distro-bot avatar Jul 26 '22 23:07 eks-distro-bot

different smaller PRs have been created from this PR and merged API: https://github.com/aws/eks-anywhere/pull/3116 : Merged GenerateConfig Cmd: https://github.com/aws/eks-anywhere/pull/3288 : Merged Reconciler: https://github.com/aws/eks-anywhere/pull/3289 : Merged Provider: https://github.com/aws/eks-anywhere/pull/3291 : TBR Release: https://github.com/aws/eks-anywhere/pull/3292 : RTC

deepakm-ntnx avatar Oct 03 '22 17:10 deepakm-ntnx