Skip to content

Bare stack of OpenStack Ironic based environment to enable deployment of Genestack hardware

License

Notifications You must be signed in to change notification settings

mfencik/understack

 
 

Repository files navigation

UnderStack

An opinionated installation of OpenStack and related services to be able to provision bare metal hardware to be consumable by genestack for the full OpenStack suite.

The requirements are a Kubernetes cluster, which this repo will contain information about building different clusters and then a pile of bare metal systems that can be ingested into the stack to be available to be consumed via Openstack Ironic.

Basic Deploy

You will need a k8s cluster with PV provider (host path provisioner works).

Prereqs

You must have the following installed:

Alternatively, if you don't have those dependencies you can use the dedicated development environment including those tools by launching nix-shell in the project directory. If you don't have nix-shell on your machine, it can be downloaded here.

Bootstrapping and Operators

There's a handful of base required components to get a cluster ready to accept traffic and utilize ArgoCD to deploy the rest of the stack. We'll call that "bootstrap". Below is the easy one liner but you can look at ./bootstrap/README.md for detailed info.

kubectl kustomize --enable-helm bootstrap | kubectl apply --server-side -f -

If you get following error:

error: resource mapping not found for name: "selfsigned-cluster-issuer"
namespace: "kube-system" from "STDIN": no matches for kind "ClusterIssuer" in
version "cert-manager.io/v1"

then you may need to rerun the same command as the CRDs are not always fully established before when they are needed.

At this point ArgoCD can start doing the heavy lifting.

kubectl -n argocd apply -k apps/operators/

Secrets

To make it possible to utilize GitOps, we need to have our secrets pre-created and not randomly generated. A better solution for secrets will ultimately be needed but for now we can generate them easily for a dev environment and deploy them. Visit /components/01-secrets/README.md for specific steps. Otherwise just follow the steps below.

# generate secrets
./scripts/easy-secrets-gen.sh
# make the namespaces where the secrets will live
kubectl apply -k components/00-namespaces/
# load the secrets
kubectl apply -k components/01-secrets/

Deploy the UnderStack components

kubectl -n argocd apply -k apps/components/

ArgoCD should successfully get Nautobot deployed. Now come the OpenStack components which aren't working with GitOps methods at this time.

Install Keystone

About

Bare stack of OpenStack Ironic based environment to enable deployment of Genestack hardware

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 91.6%
  • Nix 8.4%