Anuj Bansal 4a9504f7f2 Add provider to pvc | 3 years ago | |
---|---|---|
.. | ||
.gitignore | 3 years ago | |
Pulumi.yaml | 3 years ago | |
README.md | 3 years ago | |
index.ts | 3 years ago | |
package.json | 3 years ago | |
tsconfig.json | 3 years ago |
This example deploys an EKS Kubernetes cluster with custom ipfs image
To deploy your infrastructure, follow the below steps.
After cloning this repo, from this working directory, run these commands:
This installs the dependent packages needed for our Pulumi program.
$ npm install
This will initialize the Pulumi program in TypeScript.
$ pulumi stack init
Set the required configuration variables in Pulumi.<stack>.yaml
$ pulumi config set-all --plaintext aws:region=us-east-1 --plaintext aws:profile=joystream-user \
--plaintext wsProviderEndpointURI='wss://rome-rpc-endpoint.joystream.org:9944/' \
--plaintext isAnonymous=true
If running for production use the below mentioned config
$ pulumi config set-all --plaintext aws:region=us-east-1 --plaintext aws:profile=joystream-user \
--plaintext wsProviderEndpointURI='wss://rome-rpc-endpoint.joystream.org:9944/' --plaintext isAnonymous=false \
--plaintext providerId=<ID> --plaintext keyFile=<PATH> --plaintext publicURL=<DOMAIN> --secret passphrase=<PASSPHRASE>
You can also set the storage
and the colossusPort
config parameters if required
Running pulumi up -y
will deploy the EKS cluster. Note, provisioning a
new EKS cluster takes between 10-15 minutes.
Modify the config variable isLoadBalancerReady
$ pulumi config set isLoadBalancerReady true
Run pulumi up -y
to update the Caddy config
kubectl
To access your new Kubernetes cluster using kubectl
, we need to set up the
kubeconfig
file and download kubectl
. We can leverage the Pulumi
stack output in the CLI, as Pulumi facilitates exporting these objects for us.
$ pulumi stack output kubeconfig --show-secrets > kubeconfig
$ export KUBECONFIG=$PWD/kubeconfig
$ kubectl get nodes
We can also use the stack output to query the cluster for our newly created Deployment:
$ kubectl get deployment $(pulumi stack output deploymentName) --namespace=$(pulumi stack output namespaceName)
$ kubectl get service $(pulumi stack output serviceName) --namespace=$(pulumi stack output namespaceName)
To get logs
$ kubectl config set-context --current --namespace=$(pulumi stack output namespaceName)
$ kubectl get pods
$ kubectl logs <PODNAME> --all-containers
To run a command on a pod
$ kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1}
To see complete pulumi stack output
$ pulumi stack output
To execute a command
$ kubectl exec --stdin --tty <PODNAME> -c colossus -- /bin/bash
Once you've finished experimenting, tear down your stack's resources by destroying and removing it:
$ pulumi destroy --yes
$ pulumi stack rm --yes