--- tags: learn --- # React on k8s ## Running a simple react app on a azure k8s cluster ### Create the app: ```shell npx create-react-app frontend --template typescript ``` ### Containerise the app - Put in Dockerfile with contents in the frontend folder and use a Makefile to push to private container registry in gitlab. - Put in node modules in `.dockerignore` as we don't need to add it to the docker build container step. - `make push` to put it on gitlab registry - You need to login to gitlab using a token. To generate a token go to "User settings" and click on "Access token". Create a personal token checking read and write registry. Copy the token and store it. To login: docker login registry.gitlab.com -u <username> -p <token> - Access tokens are when you want to login as yourself. Deploy tokens are used when you use an automated step and Computer X is doing it. ### Create deploy token on gitlab and generate secrets - To create a deploy token go to Settings->Repository-> Deploy token - Choose read_registry under scopes - Put the deploy token in `generate_secret.sh` - Make sure that secret is applied using `apply_secret.sh` - Check in `k9s` secrets to see if it is applied - Information for creating a kubernetes secret that allows pulling of the private image: https://github.com/docker/for-mac/issues/4100#issuecomment-648977556 ### Create manifest (imperative for production) - Create 'deployment.yaml' and link it to app registry - Add imagePullsecrets under spec 'deployment.yaml'